windows:powershell

Powershell

  1. In der Standardeinstellung können nur signierte cmdlets ausgeführt werden (s.u.)
  2. Befehle müssen PowerShell-Remoting explizit unterstützen

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
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