windows:powershell

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
windows:powershell [2015/05/26 22:57] stwindows:powershell [2023/01/17 21:30] (aktuell) – [Links] st
Zeile 1: Zeile 1:
 +====== Powershell ======
  
 +===== Links =====
 +
 +  * [[http://www.heise.de/ct/hotline/FAQ-Windows-PowerShell-2055719.html|Windows PowerShell FAQ]]
 +  * [[https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_quoting_rules?view=powershell-7.3&viewFallbackFrom=powershell-7.1|rules for using single and double quotation marks in PowerShell]]
 +
 +
 +===== Besonderheiten =====
 +
 +  - In der Standardeinstellung können nur signierte cmdlets ausgeführt werden (s.u.)
 +  - Befehle müssen PowerShell-Remoting explizit unterstützen
 +
 +
 +===== Ausführung erlauben (ExecutionPolicy) =====
 +
 +In der Standardeinstellung können nur signierte cmdlets ausgeführt werden, falls man das nicht leisten kann (oder will) muss die "ExecutionPolicy" verändert werden.
 +
 +Set-ExecutionPolicy erlaubt diese Einstellungen, nähere Informationen siehe <code>help about_Execution_Policies</code>
 +
 +  * Restricted (Standard): einzelne Befehle sind erlaubt, aber keine Skripte (bloß keinen tieferen Sinn suchen)
 +  * Allsigned: Alle Skripte müssen signiert sein (trusted oder unstrusted mit Nachfrage) ausser solche die nicht aus dem Internet stammen
 +  * RemoteSigned: Skripte aus dem Internet müssen vertrauenswürdig signiert sein, bei lokal oder Netzwerk nicht
 +  * Unrestricted: alle Skripte können laufen, bei Internetquelle Warnung
 +  * Bypass: keine Warnungen, alles startet
 +  * Undefined: nicht definiert 
 +
 +Um die Einstellunge zu verändern muss eine Powershell gestartet werden (für diese Einstellung als Administrator):
 +<file>
 +PS C:\Windows\system32> Set-ExecutionPolicy Unrestricted
 +
 +Execution Policy Change
 +The execution policy helps protect you from scripts that you do not trust. Changing the execution policy might expose
 +you to the security risks described in the about_Execution_Policies help topic. Do you want to change the execution
 +policy?
 +[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): y
 +</file>
 +
 +Die Einstellung findet sich auch in ''HKLM\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell'' mit REG_SZ-Wert "ExecutionPolicy".
 +
 +:!: Überprüfen lässt sich die aktuell Einstellung mit "Get-ExecutionPolicy".
 +
 +Die Execution Policy lässt sich explizit für bestimmte Skripte setzen:
 +<code>powershell -ep RemoteSigned -file MyScript.ps1</code>
 +
 +
 +===== Befehle ===== 
 +
 +^ Funktion ^ Powershell ^ Linux ((wenn Befehl Shellspezifisch dann angegeben)) ^
 +| Grundkonzept | komplexe und lange Befehle ("cmdlets") die Objekte mit Eigenschaften sind | einfache Befehle die   |
 +| Hilfe zu einem Befehl anzeigen | <code>Get-Help COMMAND</code> bzw. Online: <code>Get-Help COMMAND -online </code>  | <code bash>man COMMAND</code> |
 +| freien Speicherplatz anzeigen | gemountete Datenträger ((keine Netzwerkfreigaben)): <code>Get-WMIObject Win32_LogicalDisk</code> alle Laufwerke((auch wenn ihnen kein Laufwerksbuchstabe zugewiesen wurde, allerdings keine Netzwerkfreigaben)):<code>Get-WMIObject Win32_Volume</code>, Netzlaufwerke: <code>Get-WMIObject Win32_Share</code>  | gemountete Datenträger:<code bash>df -h</code> |
 +| freier Arbeitsspeicher anzeigen (in Megabyte) |  | <code bash>free -m</code> |
 +| Filtern einer Befehlsausgabe (Spalten) | <code>BEFEHL | select ATTRIBUT1, ATTRIBUT2</code>((Beispiel: freien Speicherplatz, links Laufwerksbuchstaben, rechts freier Speicherplatz:<code>Get-WMIObject Win32_LogicalDisk | select name, freespace</code>)) | <code bash>cut -f2</code>  |
 +| Datei bearbeiten: In Datei name.txt Zeichenkette Apfel durch Birne ersetzen und in name2.txt schreiben |  | <code bash>sed 's/Apfel/Birne/g' name.txt > name2.txt</code> |