Inhaltsverzeichnis

Powershell

Besonderheiten

  1. In der Standardeinstellung können nur signierte cmdlets ausgeführt werden (s.u.)
  2. 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

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

4)

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