Windows PowerShell ist eine Windows-Befehlszeilen-Shell, die speziell für Systemadministratoren entwickelt wurde. Sie umfasst ein interaktives Befehlszeilenfenster im DOS-Stil und eine Skriptumgebung und kann unabhängig oder gemeinsam verwendet werden. Im Gegensatz zu den meisten Shells, die Textnachrichten empfangen und senden, basiert Windows PowerShell auf der .NET Common Language Runtime und dem .NET Framework, um .NET-Objekte zu empfangen und darauf zu antworten. Solche Funktionen stellen neue Tools und Methoden für die Windows-Verwaltung und -Konfiguration bereit.
PowerShell
Ein wichtiges Konzept in Windows PowerShell ist das „Cmdlet“, ein einfaches, in die Shell integriertes Befehlszeilentool mit einer einzigen Funktion. Benutzer können die Befehle unabhängig voneinander verwenden, ihre Auswirkungen hängen jedoch von den Aufgaben und der Umgebung der Anwendung ab. Windows PowerShell enthält mehr als 100 grundlegende Befehlszeilen, und Benutzer können ihre eigenen Befehlszeilen schreiben und diese mit anderen Benutzern teilen.
Wie die meisten Shells ermöglicht Ihnen Windows PowerShell den Zugriff auf das Dateisystem Ihres Computers. Darüber hinaus können Sie mit Windows PowerShell genauso einfach auf andere gespeicherte Daten wie die Registrierung und digitale Signaturzertifikate zugreifen.
PowerShell in Windows Server 2008 R2 wurde auf 2.0 aktualisiert, wodurch viele neue Funktionen eingeführt wurden, wie z. B. Remote-Verwaltung, eine vollständige Skriptumgebung, Debug-Tools usw. Schauen wir uns die neuen Features von ISE und die erweiterten Remote-Funktionen in PowerShell V2 genauer an .
1. Integrierte Skriptumgebung ISE (Integrated Script Environment)
Eine Grundvoraussetzung für PowerShell ist das einfache Schreiben und Debuggen von PowerShell v2 mit einer integrierten Skriptumgebung ISE (Integrated Script Environment), die das Schreiben von PowerShell-Skripten erleichtert Ein Befehlszeilenpanel.
ISE-Panel
Das ISE-Befehlszeilenfenster ist dem PowerShell-Befehlszeilenfenster sehr ähnlich. Benutzer können darin Befehle eingeben und die Eingabetaste drücken, um den Befehl auszuführen. Die Ausführungsergebnisse des Befehls werden im Ausgabefeld angezeigt und die Ergebnisse aller vorherigen Befehlsausführungen können klar nachverfolgt werden. Das Skriptfenster oben kann zum Schreiben und Debuggen von Skripten verwendet werden. Das Skriptfenster unterstützt die Zusammenarbeit mehrerer Skripte und erleichtert so die Bedienung.
Um Benutzern das Debuggen von Skripten zu erleichtern, ermöglicht die ISE Benutzern das Festlegen von Debugging-Haltepunkten. Diese können unter bestimmten besonderen Bedingungen manuell oder automatisch festgelegt werden. Im Befehl zum Festlegen eines Haltepunkts muss der Benutzer den Namen und die Koordinaten des Debug-Skripts angeben.
Set-PSBreakpoint .[Skriptdateiname].ps1 -line X
Wenn Sie mehrere Haltepunkte festlegen möchten, müssen Sie diese bei der Angabe von Koordinaten durch Kommas trennen, z
Set-PSBreakpoint .[Skriptdateiname].ps1 -line X,Y,Z
Wenn Sie beim Aufruf einer bestimmten Funktion einen Haltepunkt festlegen möchten, müssen Sie den Befehl „Set-PSBreakpoint“, den Parameter „-Command“ und den Funktionsnamen verwenden:
Set-PSBreakPoint -Befehl [Name-Of-Function]
Der ISE-Debugger kann beim Lesen oder Schreiben einer bestimmten Variablen auch einen Haltepunkt festlegen. Der folgende Befehl dient zum Festlegen eines Haltepunkts beim Lesen oder Schreiben einer Variablen:
Set-PSBreakpoint -Variable [Variablenname] -Modus gelesen
Set-PSBreakpoint -Variable [Variablenname] -Schreibmodus
Nachdem ein Haltepunkt festgelegt wurde, verfügt er über eine eindeutige Kennung. Sie können den Haltepunkt löschen, indem Sie die Kennung mit dem Befehl Disable-PSBreakpoint löschen:
Disable-PSBreakpointX
2. Remote-Funktionserweiterung von PowerShell v2
Ein weiteres wichtiges Feature von PowerShell v2 ist die Verbesserung der Remote-Betriebsfunktionen (PowerSell-Remoting) durch das Hinzufügen eines neuen Befehlszeilenbefehls „Invoke-Command“. Es ist zu beachten, dass PowerSell-Remoting derzeit nur Computer mit Vista SP1, Windows Server 2008 und Windows 7 unterstützt und die entsprechende Version des Remote-Management-Tools WinRM installiert sein muss. Dies bedeutet, dass Benutzer nur Vista SP1/Win 2008-Computer mit PowerShell v2 und WinRM über PowerShell-Remoting verbinden können. Computer mit Vista (nur PowerShell kann installiert werden) und WinXP-Systeme werden nicht unterstützt.
Systemanforderungen und Verbesserungen für PowerShell v2
In der CTP-Vorabversion von PowerShell 2.0 wird der Befehl Invoke-Expression verwendet, um eine Verbindung zum Remotecomputer herzustellen:
Invoke-Expression –computerName atl-fs-001 –command Get-Process
Wenn der Benutzer den Get-Process-Befehl auf dem Remote-Computer atl-fs-001 ausführen möchte, kann der neue Invoke-Command-Befehl verwendet werden:
Invoke-Command –computerName atl-fs-001 –scriptblock
Es ist ersichtlich, dass die Grundparameter in den beiden Befehlen identisch sind. Das PowerShell-Team hat den Befehl „Invoke-Expression“ durch „Invoke-Command“ ersetzt und den Parameter „–scriptblock“ ersetzt Es verfügt über eine verbesserte Betriebsstabilität, Sicherheit und Leistung.
Natürlich kann dieser Befehl auch mehrere Remote-Computer unterstützen. Wenn Sie Prozessinformationen von den Remote-Computern atl-fs-001, atl-fs-002 und atl-fs-003 benötigen, können Sie den folgenden Befehl verwenden:
Invoke-Command –Computername atl-fs-001, atl-fs-002, atl-fs-003 –scriptblock
Unterstützt mehrere Remote-Computer
Wie der Befehl „Invoke-Expression“ kann auch „Invoke-Command“ eine Verbindung zum Remotecomputer herstellen und den Befehl ausführen, die Verbindung wird jedoch sofort unterbrochen. Wenn Sie eine dauerhafte Verbindung zum Remotecomputer benötigen, können Sie mit dem folgenden Befehl eine PowerShell-Sitzung erstellen:
$objRunspace = New-Runspace atl-fs-001, atl-fs-002, atl-fs-003
Wenn Sie weitere Informationen zum Befehl Invoke-Command benötigen, können Sie Anweisungen und Beispiele über den folgenden Befehl erhalten:
Get-Help Invoke-Command –voll mehr |