Powershell
Links
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
help about_Execution_Policies
- 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):
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
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:
powershell -ep RemoteSigned -file MyScript.ps1
Befehle
Funktion | Powershell | Linux 1) |
---|---|---|
Grundkonzept | komplexe und lange Befehle („cmdlets“) die Objekte mit Eigenschaften sind | einfache Befehle die |
Hilfe zu einem Befehl anzeigen | Get-Help COMMAND bzw. Online: Get-Help COMMAND -online | man COMMAND
|
freien Speicherplatz anzeigen | gemountete Datenträger 2): Get-WMIObject Win32_LogicalDisk alle Laufwerke3): Get-WMIObject Win32_Volume , Netzlaufwerke: Get-WMIObject Win32_Share | gemountete Datenträger:df -h |
freier Arbeitsspeicher anzeigen (in Megabyte) | free -m |
|
Filtern einer Befehlsausgabe (Spalten) | BEFEHL | select ATTRIBUT1, ATTRIBUT2 | cut -f2 |
Datei bearbeiten: In Datei name.txt Zeichenkette Apfel durch Birne ersetzen und in name2.txt schreiben | sed 's/Apfel/Birne/g' name.txt > name2.txt |
1)
wenn Befehl Shellspezifisch dann angegeben
2)
keine Netzwerkfreigaben
3)
auch wenn ihnen kein Laufwerksbuchstabe zugewiesen wurde, allerdings keine Netzwerkfreigaben
4)
Beispiel: freien Speicherplatz, links Laufwerksbuchstaben, rechts freier Speicherplatz:
Get-WMIObject Win32_LogicalDisk | select name, freespace