Remoting DEVOP PART II: WINDOWS POWERSHELL
Remoting Ermöglicht es, alle CMDlets auch per Remote auf einem anderen Server auszuführen Dafür gibt es zwei Möglichkeiten: Interaktive Powershell-Session mit einem Remote-System aufbauen Einzelne Befehle auf einem (oder auch mehreren) Remote-Rechner(n) ausführen Beim One-to-Multiple Remoting werden die Befehle parallel ausgeführt!
Interaktive Remote-Session Eine interaktive Remote PS-Session wird wie folgt hergestellt: Enter-PSSession Verlassen einer Session: Exit-PSSession TroubleshootingPack ;-D
DEMO
Auführen einzelner CMDlets Eine komplette Remote PS-Session wird wie folgt hergestellt: Invoke-Command -Computername -Command { } «{}» stellt dabei einen Script-Block dar, in welchem der Code platziert werden kann, welcher auf dem Remote-System ausgeführt werden soll Kurzfassung: icm { }
DEMO
Das Problem mit «Invoke- Command» Wenn dieser Befehl auf SRV101 abgesetzt wird…: invoke-command srv101 {$var = 4} Was steht dann in der Variable, wenn dieser nochmals abgefragt wird? invoke-command srv101 {$var} NICHTS… …aber weshalb? weil die Session sofort geschlossen wird!
Powershell Sessions
Aufbauen einer PS-Session Aufbau einer neuen PS-Session, mit Speicherung in einer Variable: $session = New-PSSession srv101 Anzeige der aktiven Sitzungen: Get-PSSession Verbindung mit einer Session auf einem Remote-Computer herstellen: Invoke-Command –Session $session {$var = 4} Variable abfragen: Invoke-Command –Session $session {$var}
DEMO
I just need the commands…!
Modul eines Remote-Servers gebrauchen… Aufbau einer neuen PS-Session, mit Speicherung in einer Variable: $session = New-PSSession srv101 Importieren eines Moduls aus einer Remote-Session: Import-PSSession –Session $session –Module ActiveDirectory –Prefix Remote Danach können alle CMDlets in diesem Modul auch auf dem lokalen System ausgeführt werden Die Verarbeitung geschieht jedoch innerhalb der aufgebauten PSSession!
DEMO: Remoting
Remoting über HTTPS
PSWA Ermöglicht die Verbindung über HTTPS auf eine Powershell- Session per Remote Funktioniert auf allen gängigen Browsern und Geräten (inkl. Smartphones, egal welchen Herstellers)
PSWA Installation von PSWA auf einem beliebigen Server 2012 oder höher Ausführung von «Install-PSWAWebApplication» Der Parameter «-UseTestCertificate» ermöglicht die Benutzung eines selbstsignierten Zertifikats (Gültigkeitsdauer: 90 Tage) Erstellung einer Autorization-Rule mit «Add-PSWAAutorizationRule» und den entsprechenden Parametern: User / UserGroup Wer darf darüber einloggen Computer / ComputerGroup Auf was darf man zugreifen ConfigurationName Was darf man tun (Zugriffslevel) «New-PSSessionConfigurationFile» definiert die «ConfigurationNames» «Add-PSWAAutorizationRule * * *» lässt jeden für alles auf allem zu…
DEMO: Remoting
New-PSSessionConfigurationFile -Path "$PSHome\SessionConfig\MyEndpointPS3.pssc" `-SessionType RestrictedRemoteServer `-LanguageMode NoLanguage `-ModulesToImport Microsoft.PowerShell.Management `-VisibleCmdlets Get-Service,Start-Service,Stop- Service `-VisibleProviders "FileSystem" "whoami.exe /user"};Options="AllScope"} `-VisibleFunctions 'WhoamI'