Moderne PowerShell-Kommandos

Lesezeit
2 Minuten
Bis jetzt gelesen

Moderne PowerShell-Kommandos

20.10.2019 - 00:00
Veröffentlicht in:
Microsoft versucht schon seit Jahren, die PowerShell als neue Skriptsprache in den Köpfen der Admins zu verankern. Nichtsdestotrotz kommen noch oft alte Command-Befehle zum Einsatz, um einfache Aufgaben auf bewährtem Weg zu lösen. Ein Beispiel dafür ist der Net-Use-Befehl, um Netzlaufwerke zu verbinden. Doch für diese Zwecke gibt es inzwischen "moderne" PowerShell-Kommandos.
Nehmen wir als Beispiel einmal den Befehl Net use P: \\<Server>\<Freigabe>, der einen neuen Laufwerksbuchstaben "P" mit dem Ziel der Serverfreigabe verbindet. In der PowerShell ist dessen Äquivalent das New-PSDrive-Cmdlet. Die Hilfe des Cmdlets schlägt folgende Eingabe vor, um Laufwerke zu verbinden:
New-PSDrive -Name "PSDrive" -PSProvider "FileSystem" -Root "\\Server01\Public"
Wenn Sie diesen Befehl ausführen, werden Sie im Explorer aber kein Laufwerk namens "PSDrive" finden. Dies liegt daran, dass die Zuweisung "PSDrive" nur innerhalb der PowerShell nutzbar ist. Dies ändert sich jedoch, wenn Sie für den Parameternamen einen einzelnen Buchstaben wählen, zum Beispiel "P". Damit das Laufwerk dauerhaft verbunden bleibt, können Sie noch den Parameter "-Persist" anhängen. Der komplette Befehl
New-PSDrive -Name P -PSProvider "FileSystem" -Root "\\Server01\Public" -Persist
zeigt dann im Explorer den Laufwerksbuchstaben "P" an, der sich auch außerhalb der PowerShell nutzen lässt. Wie der Parameter "-PSProvider" vermuten lässt, kann das New-PSDrive-Cmdlet mehr als das gute alte Net-Use-Kommando. Zum Beispiel ist es möglich, ein Laufwerk zum Zertifikatsspeicher oder zur Registry zu verbinden.

Aktuelle Provider lassen sich mit dem Get-PSProvider-Cmdlet identifizieren. Standardmäßig sind das Registry, Alias, Environment, FileSystem, Function und Variable. In der PowerShell können Sie all diese Provider mit Set-Location <Name des Providers> direkt ansprechen. Wollen Sie zum Beispiel die Registry-Werte für den Key "HKLM \ Software \ Microsoft \ Windows" auslesen, wechseln Sie mit Set-Location HKLM:\SOFTWARE\Microsoft\Windows in den Provider und führen dort den Befehl Get-ChildItem aus. Der Vorteil dabei ist, dass die gleichen Kommandos für die unterschiedlichen Provider nutzbar sind. Buchstaben im Windows-Explorer werden aber nur für Laufwerke des Providers-Filesystem angezeigt und der Parameter "-Persist" ist ebenfalls exklusiv für diesen Provider gültig.

Mit dem Net-Use-Befehl lassen sich verbundene Laufwerke auch wieder trennen. Dies funktioniert unter PowerShell mit dem Cmdlet "Remove-PSDrive". Hier können Sie den Befehl wie gewohnt mit einem Get-Befehl füttern. Zuerst lesen Sie mit Get-PSDrive das entsprechende Laufwerk aus und übergeben es dann an Remove-PSDrive:
Get-PSDrive -Name PSDrive | Remove-PSDrive
Natürlich funktioniert das Ganze auch direkt mit
Remove-PSDrive -name PSDrive
Mit dem Parameter "-force" lassen sich Laufwerke entfernen, die gerade in Benutzung sind. Auch zum Verbinden von Netzwerkdruckern kam der Net-Use-Befehl gern zum Einsatz, beispielsweise mit net use LPT1 file://192.168.1.252/LaserPrinter. Dieses Kommando bindet den Drucker an den LPT-Port, was aber in der Regel nicht viel weiter hilft, da nur wenige Anwendungen direkt den LPT-Port ansprechen, sondern eher die Druckerschnittstelle von Windows. Viel besser ist da das Power-Shell-Cmdlet Add-Printer. Mit ihm können Sie sowohl lokale Drucker erstellen als auch Netzwerkdrucker verbinden. Zum Generieren eines lokalen Druckers müssen Sie den Treiber und den Port mit angeben:
Add-Printer -Name "Brother" -DriverName 
 "Brother Laser Type1 Class Driver" -PortName "LPT1:"
In der Regel dürften Sie den Befehl aber im Rahmen eines logon-Skriptes wie
Add-Printer -ConnectionName \\<printServer>\<printerName>
nutzen, um existierende Netzwerkdrucker zuzuweisen.


Matthias Wessner/ln

Ähnliche Beiträge

Download der Woche: ChrisPC DNS Switch

Das Domain Name System ist zwar insgesamt stabil, immer wieder kommt es jedoch vor, dass der in Windows hinterlegte DNS-Sever bestimmte Adressen gar nicht oder nur langsam auflöst. Wer sich dann nicht immer in die Windows-Settings begeben will, um die DNS-Einstellungen zun ändern, sollte einen Blick auf das kostenfreie "DNS Switch" von ChrisPC werfen. Das Tool erledigt das Modifizieren der DNS-Einträge mit wenigen Mausklicks.

Download der Woche: Traefik

Kommunizieren mehrere Dienste auf demselben Server über Port 80 (für HTTP) oder 443 (für HTTPS), kann dies zu Konflikten führen, da normalerweise nur ein Dienst einen bestimmten Port zu einem bestimmten Zeitpunkt belegen kann. Hier kommt die Open-Source-Software Traefik Proxy ins Spiel und agiert als Reverse-Proxy und Loadbalancer. So lassen sich alle eingehenden Anfragen auf Port 80 oder 443 an die richtigen Dienste weiterleiten.