Know-how
Get-History: PowerShell-Befehle wiederholen auf der Kommandozeile
Wie jeder ordentliche Kommandointerpreter merkt sich auch PowerShell die während einer Sitzung eingegebenen Befehle, so dass man diese bei Bedarf zurückholen kann, ohne sie erneut eintippen zu müssen. Neben mehreren Funktionstasten helfen dabei einige Cmdlets, um die Befehlshistorie zu nutzen.
Disk-Management mit PowerShell: initialisieren, partitionieren, formatieren
Microsoft wertet PowerShell in Windows 8 und Server 2012 zum bevorzugten Management-Werkzeug auf, das mit neuen Modulen fast alle Aspekte des Systems abdecken kann. Das trifft auch auf das Storage-Subsystem zu, das sich nun auf eine konsistente Weise via Kommandozeile oder über Scripts verwalten lässt.
NUMA und Dynamic Memory in Hyper-V konfigurieren
Seit Windows Server 2008 R2 SP1 ermöglicht Hyper-V die
dynamische Zuweisung von Arbeitsspeicher zu VMs, um eine höhere Dichte an virtuellen Maschinen pro Host zu erzielen. Parallel dazu unterstützt der Microsoft-Hypervisor NUMA, wobei der Support dafür in Windows Server 2012 deutlich erweitert wurde. Die meisten neuen Server implementieren NUMA, um die Performance des Systems zu
verbessern. Im Zusammenspiel mit einem ungünstig konfigurierten dynamischen RAM kann NUMA aber auch das Gegenteil bewirken.
icacls, Get-ACL: Dateirechte anzeigen auf der Kommandozeile und in PowerShell
Lässt sich beispielsweise eine Datei nicht löschen oder anlegen, dann liegt dies meist an fehlenden Rechten. Befindet man sich auf der Kommandozeile, dann ist unter cmd.exe das Dienstprogramm icacls das Mittel der Wahl, um die Dateirechte zu überprüfen. Unter PowerShell ist dafür das Cmdlet Get-Acl zuständig.
Freien Festplattenplatz (remote) berechnen mit PowerShell
Wenn man den freien Speicherplatz für einzelne Laufwerke auf dem lokalen Rechner ermitteln will, dann geht das recht einfach über den Explorer. Möchte man diese Informationen remote erfragen und vielleicht in Scripts weiterverarbeiten, dann empfiehlt sich der Einsatz von PowerShell.
Windows 8 aktivieren: Fehlercode 0x8007232B (Der DNS-Name ist nicht vorhanden)
Installiert man eine Kopie von Windows 8, die über eine Volumenlizenz erworben wurde, dann fragt das Setup nicht nach einem Lizenzschlüssel. Nach dem ersten Start fordert das Betriebssystem jedoch seine Aktivierung. Folgt man diesem Hinweis in das Wartungscenter, um diese Aufgabe dort zu erledigen, dann scheitert dieser Versuch mit einer irreführenden Fehlermeldung.
Bytes in Megabytes und Gigabytes umrechnen in PowerShell
Wenn man Systeminformationen wie etwa den freien Plattenplatz über WMI abfragt, dann erhält man die Angaben in Bytes. Das Gleiche gilt bei Get-ChildItem, dem Äquivalent zum dir-Befehl, das Dateigrößen ebenfalls nur in Bytes anzeigt. Gerade bei großen Werten ist diese aber nicht besonders nützlich. PowerShell bietet aber einfache Möglichkeiten, Bytes in Megabytes oder Gigabytes zu konvertieren.
Reguläre Ausdrücke (RegEx) in PowerShell verwenden
Die Unterstützung für reguläre Ausdrücke gehört zum
Pflichtprogramm für eine moderne Script-Sprache. PowerShell bietet mehrere Sprachkonstrukte, die eine Verwendung von RegEx zulassen. Bei der syntaktischen Umsetzung orientierte sich Microsoft - anders als etwa bei Word - weitgehend an Perl, so dass für die meisten RegEx-erfahrenen Anwender der Lernaufwand gering bleibt.
Storage Spaces (Speicherplätze) unter Windows 8 einrichten
Die neue Windows-Generation bringt mit Storage Spaces ein Feature zur Speicher-Virtualisierung, das in allen Server- und Client-Editionen enthalten ist (ausgenommen Windows RT). Es erlaubt das Zusammenfassen mehrerer Disks zu einem Pool, der sich dann gegenüber den Anwendungen und dem User als ein einziges Laufwerk präsentiert. Obwohl Windows 8 und Server 2012 dabei die gleiche Basistechnik verwenden, bietet der Client andere Tools und verzichtet auf ein paar fortgeschrittene Funktionen.
Umgebungsvariablen setzen, anzeigen und löschen mit PowerShell
Wie alle anderen Programme erhält auch PowerShell beim Start eine Kopie des Master-Environments mit allen darin enthaltenen Variablen. Diese kann man auslesen, neue setzen oder vorhandene löschen. Wie schon bei cmd.exe oder anderen Shells wirken sich diese Operationen nur auf die aktuelle Instanz von PowerShell aus.
