Admin-Skripte mit der Powershell

Win PowerShell-Skriptdateien

Windows PowerShell-Skriptdateien

Grundsätzliche könnten Sie auch mehrzeilige Skripte ausführen, indem Sie die Anweisungen nacheinander auf der Kommando-Shell eingeben. Die Windows PowerShell merkt sich auch in diesem Fall den aktuellen Zustand der Skriptausführung.

Wenn Sie beispielsweise den Befehl New-Variable date ein zweites Mal verwenden, erhalten Sie die Meldung, dass eine Variable mit diesem Namen bereits existiert. Gerade wenn man bestimmte Aufgaben wiederholt durchführen muss, liegt es jedoch nahe, den Code als Skriptdatei mit der Erweiterung .ps1 zu speichern:

• Editieren Sie den Code im Skriptbereich der Windows PowerShell ISE (mit dem Menübefehl Datei/Neu fügen Sie dem Fenster bei Bedarf weitere Tabs hinzu). • Klicken Sie anschließend auf Datei/Speichern oder auf das entsprechende Icon in der Symbolleiste. • Stellen Sie in der unteren Drop-Down-Liste des erscheinenden Speichern unter-Dialogs den Dateityp PowerShell-Skripte (*.ps1) ein und legen Sie Name und Speicherort für die Skriptdatei fest. • Klicken Sie schließlich auf Speichern, wenn Sie fertig sind.

Powershell unter Windows 7

© Archiv

Der Befehlsbereich der ISE: Das Cmdlet Get-Process listet alle laufenden Prozesse eines lokalen oder eines Remote-Computers.

Ein bestehendes Skript laden Sie mit dem Menübefehl Datei/Öffnen... in den Skriptbereich der Windows PowerShell ISE. Um es auszuführen, klicken Sie auf Datei/Ausführen, wählen das entsprechende Symbol oder drücken die Taste F5.

Sie können ein Skript auch teilweise ausführen lassen, indem Sie den Code zunächst markieren und dann im Datei-Manü den Befehl Auswahl ausführen verwenden. Dort finden Sie für den Notfall auch den Befehl Ausführung beenden. Dieser bricht ein laufendes Skript sofort ab.

NET-Objekte anlegen

Objekte von .NET-Klassen instanzieren Sie mit dem Cmdlet New-Object. Das folgende Skript (listallserversindomain.ps1, Heft-DVD) informiert Sie über alle Windows 2008 Server, die sich in der Domäne befinden.

$strCategory = "computer"$strOperatingSystem = "Windows*Server*2008*"$objDomain = New-Object System.DirectoryServices.DirectoryEntry$objSearcher = New-Object System.DirectoryServices.DirectorySearcher$objSearcher.SearchRoot = $objDomain$objSearcher.Filter = ("OperatingSystem=$strOperatingSystem")$colResults = $objSearcher.FindAll()foreach ($objResult in $colResults){ $objComputer = $objResult.Properties; $objComputer.name }"Es gibt $($colResults.count) " + $strOperatingSystem + " in der Domäne"

Die Methode FindAll() der DirectorySearcher-Klasse gibt alle Computer mit dem Betriebssystem $strOperatingSystem zurück. Um nach allen Servern zu suchen, weisen Sie der Variablen den Wert "Windows*Server*" zu ($strOperatingSystem = "Windows*Server*"), für Windows 2003 Server den String "Windows*Server*2003*". Für die sukzessive Ausgabe der Servernamen sorgt die foreach-Schleife.

Powershell unter Windows 7

© Archiv

Skriptbereich der ISE: Hier editieren Sie Ihre PowerShell-Skripte und speichern sie anschließend als .ps1-Dateien.

Auf der Heft-DVD finden Sie außerdem noch die Skripte listallusersindomain.ps1 und listlallmailsindomain.ps1, die ähnlich aufgebaut sind und die Benutzernamen und E-Mail-Adressen aller Mitglieder einer Domäne ausgeben. Vergleichsweise ungewöhnlich erscheint das Zeichen `n, welches die Ausgabe in der nächsten Zeile fortsetzt (die meisten Skriptsprachen verwenden dazu das Zeichen \n).

Computer einer Domäne hinzufügen

Häufig ist mit einem PowerShell-Skript mit nur geringem Aufwand sehr viel zu erreichen, wenn es um Administrationsaufgaben geht. Um beispielsweise einen lokalen Computer einer Domäne hinzuzufügen, benötigen Sie nur ein einziges Cmdlet!

Diesem (Add-Computer) übergeben Sie den Namen der Domäne, der das Computerkonto hinzugefügt werden soll, fragen mit dem Parameter Credential die Anmeldinformationen ab und geben die gewünschte Organisationseinheit für das Computerkonto in der Domäne an (Parameter OUPath). Anschließend starten Sie den Computer neu (Restart-Compute). Das war's dann auch schon. Hier der Beispielcode:

Add-Computer CONTOSO -Credential (Get-Credential CONTOSO\administrator) -OUPath "ou=SBSTraining,ou=Computers,ou=MyBusiness,dc=CONTOSO,dc=local"Restart-Computer

Domänenname (hier: CONTOSO) und Organisationseinheit müssen Sie natürlich ersetzen.

Mehr zum Thema

HTML 5
Webgestaltung

Google Web Designer ist spezialisiert auf HTML5. Ein Vorteil dieses Standards ist das einfache Einbinden von Videos mit dem Element video. Wir zeigen…
Wir verraten, wie Sie Fritzboxen und andere Router vor Hackern schützen.
Fritzbox, Asus, Belkin und Co.

Fritzbox, Asus, Belkin oder DLink - die Liste der geknackten Router ist lang. Hacker stahlen Passwörter oder NAS-Daten. So machen Sie Ihren Router…
Wir führen Sie zur eigenen Windows-App - unserem PC-Magazin-RSS-Feed.
C# und XAML

Wir zeigen, wie Sie Windows 8.1 Apps selbst programmieren können. Lernen Sie das App erstellen an Hand unseres Beispiels: dem RSS-Feed von PC…
Windows Tipps & Tricks: Benutzerrechte unter Windows 8.1
Programme richtig installieren

Wir zeigen Ihnen, wie Sie sich unter Windows 8.1 alle Benutzerrechte verschaffen und Programme richtig installieren.
Windows 8: Starbildschirm
Microsoft Project Siena

Erstellen Sie sich selbst eine App für Windows 8, die auf alle Funktionen Ihres Tablets zugreifen kann, inklusive Kamera, Mikrofon und Lautsprecher.…