Einführung in die PowerShell (2)

Lesezeit
4 Minuten
Bis jetzt gelesen

Einführung in die PowerShell (2)

11.07.2016 - 00:00
Veröffentlicht in:
Mit der PowerShell verwalten Sie nicht nur reine Windows-Serverdienste, sondern über zusätzliche Module auch andere Server wie Exchange, System Center, SharePoint und mehr. Der Umgang mit der Skriptsprache ist bei allen verwalteten Rechnern recht ähnlich. In diesem Workshop führen wir in die Grundlagen der PowerShell ein und geben Ihnen Tipps und Anleitungen zur Verwaltung von Servern an die Hand. Im zweiten Teil beschäftigen wir uns damit, wie Sie die PowerShell über das Netzwerk nutzen und die System-Administration über Cmdlets vornehmen.
PowerShell über das Netzwerk nutzen
Damit Sie einen Computer über die PowerShell remote verwalten können, aktivieren Sie zunächst die Remoteverwaltung auf dem Computer. Dazu geben Sie auf dem entsprechenden Computer den Befehl Enable-PSRemoting -force in der PowerShell ein. Dieses Kommando richtet praktischerweise auch die Ausnahmen in der Windows-Firewall ein. Mit DisablePSRemoting -Force deaktivieren Sie die Remoteverwaltung eines Computers über die PowerShell wieder. Sie müssen für solche administrativen Befehle die PowerShell über die App-Leiste (Klick mit der rechten Maustaste) auf der Startseite mit Administratorrechten starten.

Um den Port für die Verbindung zu überprüfen, verwenden Sie den Befehl winrm enumerate winrm/config/listener. Der Listener verwendet den Port 5985. Funktioniert der Zugriff nicht, können Sie auf dem Zielcomputer auch eine Liste von Computern pflegen, die Zugriff auf RemotePowerShell-Sitzungen haben sollen. Dazu nutzen Sie den Befehl:
winrm set winrm/config/client 
 @{TrustedHosts="[Alle Quellcomputer, durch Komma getrennt]"}
Um nun über das Netzwerk PowerShell-Befehle auf Hosts auszulösen, starten Sie auf dem Zielcomputer mit winrm quickconfig die Remoteverwaltung. Anschließend authentifizieren Sie sich, wenn Sie unter einem anderen Benutzer als dem aktuell angemeldeten am Server arbeiten möchten. Danach baut die PowerShell eine Sitzung auf und Sie können auf dem Quellserver Befehle eingeben, die auf dem Zielserver ausgeführt werden.

Auf Servern und Computern, die Mitglied einer Domäne sind, funktionieren diese Sitzungen übrigens am einfachsten. In Remote-PowerShell-Sitzungen verwenden Sie die gleichen Cmdlets wie auf den lokalen Computern. Allerdings erlauben nicht alle Befehle eine Remoteverwaltung. Sie sehen die kompatiblen Cmdlets am schnellsten, indem Sie überprüfen, ob das Cmdlet die Option "-ComputerName" unterstützt. Mit dem Befehl Get-Help * -[Parameter] [ComputerName] lassen Sie sich eine Liste all dieser Cmdlets anzeigen.


Bild 1: In der PowerShell können Sie auch Sitzungen auf anderen Computern im Netzwerk aufbauen.

Um eine Remotesitzung in der normalen PowerShell zu erstellen, verwenden Sie New-PSSession. Mit Enter-PSSession [Servername] bauen Sie eine Verbindung auf und beenden mit Exit-Session die Sitzung wieder. Neu ist die Möglichkeit, Sitzungen zu unterbrechen und erneut aufzubauen. Bei unterbrochenen Sitzungen laufen die Cmdlets weiter, auch wenn sich Administratoren vom Server getrennt haben. Dazu nutzen Sie die neuen Cmdlets Disconnect-PSSession, Connect-PSSession und Receive-PSSession.

Die PowerShell verfügt über einige Cmdlets, um Netzwerkeinstellungen eines Computers zu steuern oder abzufragen, zum Beispiel Get-NetIPAddress. Eine Liste aller Cmdlets, mit denen sich Netzwerkeinstellungen festlegen lassen, gibt der Befehl Get-Command -Noun Net* aus. Doch nicht nur die Netzwerkverwaltung können Sie in der PowerShell durchführen, sondern auch Dateien verwalten, wie wir nachfolgend zeigen.

Dateioperationen in der PowerShell
Der Befehl Remove-Item C:\Scripts\* -Exclude *.doc löscht alle Dateien, außer denen, die Sie mit "-Exclude" ausgeschlossen haben – in diesem Fall DOC-Dateien. Remove-Item C:\Scripts\* -Include .xls,.doc löscht nur die Dateien hinter "-Include". Beide Optionen können Sie auch gemeinsam verwenden, zum Beispiel mit Remove-Item C:\Scripts\* -Include *.txt -Exclude *test*. Hier löscht die PowerShell alle Textdateien im Ordner, außer Dateien mit der Zeichenfolge "test" im Dateinamen. Wenn Sie sich ob der Konsequenzen Ihres Befehls übrigens nicht ganz sicher sind, verwenden Sie zum Test den Parameter "-Whatif". Die PowerShell entfernt dann in unserem Beispiel keine Dateien, gibt aber aus, was passieren würde: Remove-Item C:\Windows\*.exe -Whatif.

Mit Copy-Item kopieren Sie Dateien oder Ordner. Der Befehl Copy-Item C:\Scripts\ test.txt C:\Test etwa kopiert die Datei "test.txt". Die Syntax ähnelt dem Copy-Befehl in der herkömmlichen Eingabeaufforderung. Auch hier können Sie mit dem Platzhalter "*" arbeiten. Möchten Sie einen ganzen Ordner samt Inhalt kopieren , verwenden Sie den Parameter "-Recurse". So legt der Befehl Copy-Item C:\Scripts C:\Test –Recurse eine Kopie des Ordners "C:\Scripts" im Ordner "C:\Test" an. Ohne die Option "-Recurse" wird in "C:\ Test" zwar ein Ordner "Scripts" angelegt, es werden aber keine Dateien und Ordner kopiert.

Das Cmdlet Move-Item verschiebt Objekte: Move-Item C:\Scripts\test.zip c:\test. Auch hier können Sie wieder mit Platzhaltern arbeiten, genauso wie beim Kopieren. Standardmäßig überschreibt Move-Item vorhandene Dateien im Zielordner nicht. Mit dem Parameter "-Force" werden jedoch vorhandene Zieldateien oder Ordner überschrieben: Move-Item C:\Scripts\ test.zip C:\Test –Force. Mit dem Befehl Move-Item C:\Scripts\test.log C:\Test\ad.log verschieben Sie Dateien und benennen diese gleichzeitig um.

Mit dem Cmdlet New-Item erstellen Sie neue Dateien oder Ordner. So legen Sie mit New-Item C:\Temp\PowerShell -Type Directory im Ordner "C:\Temp" einen leeren Ordner mit der Bezeichnung "PowerShell" an. Um eine neue Datei zu erstellen, verwenden Sie die gleiche Syntax, aber den Typ "File": New-Item C:\Scripts\ skript.txt -Type File. Mit New-Item C:\ Scripts\skript.txt -Type File –Force ersetzen Sie dabei eine vorhandene Datei durch eine neue. Mit New-Item C:\Scripts\skript.txt -Type File -Force -Value "[Text]" erstellen Sie eine neue Datei mit dem in Anführungszeichen angegebenen Text als Inhalt. Über Add-Content fügen Sie Daten an eine Textdatei an: Add-Content C:\Scripts\test.txt "[Text]". Standardmäßig fügt Add-Content den neuen Wert hinter dem letzten Zeichen in der Textdatei ein.

Den Inhalt einer Datei ersetzen Sie mit Set-Content, während das Cmdlet ClearContent den Inhalt löscht. Auch hier können Sie mit Platzhaltern: Clear-Content C:\Test\e*. Neben Textdateien unterstützt das Cmdlet auch Excel-Tabellen, WordDokumente und andere Dateien.

Mit Remove-Item löschen Sie Objekte: Remove-Item C:\Scripts\test.txt. Um etwa alle Dateien im Ordner "Scripts" ohne Rückfrage zu entfernen, nutzen Sie RemoveItem C:\Scripts\* -Recurse. Über RemoveItem C:\Scripts\* -Exclude *.doc löschen Sie alle Dateien, außer solchen, die Sie mit "-Exclude" ausgeschlossen haben. Remove-Item C:\Scripts\* -Include .xls,.doc löscht nur die Dateien hinter "-Include". Beide Optionen lassen sich auch gemeinsam verwenden, zum Beispiel mit Remove-Item C:\Scripts\* -Include *.txt -Exclude *test*.

Das Cmdlet Get-ChildItem hat eine ähnliche Funktionalität wie der Befehl dir und kann auch den Inhalt von Registry-Schlüsseln anzeigen. Mit Get-ChildItem –Recurse wird zusätzlich der Inhalt der Unterordner angegeben. Die Anweisung Get-ChildItem HKLM:\SOFTWARE zeigt den Inhalt des Registry-Schlüssels "HKLM\SOFTWARE" an.

Seite 1: PowerShell über das Netzwerk nutzen
Seite 2: System-Administration über Cmdlets


Seite 1 von 2 Nächste Seite >>


dr/ln/Thomas Joos


Ähnliche Beiträge

Im Test: Heimdal Patch & Asset Management

Ein zeitgemäßes Patchmanagement darf sich angesichts der vielfältigen Bedrohungen nicht allein auf die Microsoft-Produkte konzentrieren, sondern muss sich auch verbreiteten Drittanbieteranwendungen widmen. Der dänische Anbieter Heimdal Security geht noch einen Schritt weiter und hat eine ganze Suite zum Schutz vor Cyberbedrohungen im Programm. Mit dem Fokus auf das Patchen haben wir uns das cloudbasierte Angebot genauer angesehen.

Device-Management mit Microsoft Intune und Office 365 - Zwei Wege, ein Ziel

Um Geräte im Netzwerk oder mobile Geräte, die auf das Netzwerk zugreifen, zu verwalten, bietet sich für Unternehmen entweder Office 365 Mobile Device Management oder Microsoft Intune an. Ein Unterschied zwischen den beiden Lösungen besteht vor allem im Preis. Während das Device-Management zu vielen Abonnements in Office 365 gehört, muss Microsoft Intune gesondert abonniert werden. In diesem Beitrag stellen wir beide Ansätze vor.