PS Remote Cmdlets¶
Die PowerShell stattet einige Kommandos mit einem Parameter aus, welcher den Zugriff auf andere Computer erlaubt. Natürlich nur, wenn entsprechende Berechtigungen und Authentifizierungen vorliegen.
Cmdlets mit Parameter –Computername: (einfache Suche - mehr s.u.)
Get-Command -ParameterName Computername
Wir erhalten Cmdlets mit eingebauter Fernwartung. Hier genauer: ohne WS Management, also bei Windows ohne WinRM (Windows Remote Management)! Erklärung: IT-Visions WS-Management
Übungen
Finde alle Cmdlets / Kommandos, die im Parameter ComputerName enthalten und gleichzeitig nicht den Begriff Session:
Get-Command | where { $_.parameters.keys -contains "ComputerName"
-and $_.parameters.keys -notcontains "Session"}
Finde alle Cmdlets/Kommandos, die im Parameter credential enthalten, also eine eigene Authentifizierung erlauben.
Get-Command | where { $_.parameters.keys -contains "credential" }
Beispiel: Cmdlet Get-WmiObject
(im Beispiel: Adminkonto benötigt mit Credential)
PS E:\_temp> Get-WmiObject -Class Win32_BIOS -ComputerName win10
Get-WmiObject : Zugriff verweigert (Ausnahme von HRESULT: 0x80070005 (E_ACCESSDENIED))
In Zeile:1 Zeichen:1
+ Get-WmiObject -Class Win32_BIOS -ComputerName win10-epz
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Get-WmiObject], UnauthorizedAccessException
+ FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.GetWmiObjectCommand
PS E:\_temp> $cred = Get-Credential win10\joebadmin
PS E:\_temp> Get-WmiObject -Class Win32_BIOS -ComputerName win10 -Credential $cred
SMBIOSBIOSVersion : VirtualBox
Manufacturer : innotek GmbH
Name : Default System BIOS
SerialNumber : 0
Version : VBOX - 1
Beispiel: Cmdlet Get-Hotfix (hier ebenfalls Adminkonto benötigt und Credential)
PS E:\_temp> Get-HotFix -ComputerName win10 -Credential $cred
Source Description HotFixID InstalledBy InstalledOn
------ ----------- -------- ----------- -----------
WIN10 Update KB3176935 NT-AUTORITÄT\SYSTEM
WIN10 Update KB3176936 NT-AUTORITÄT\SYSTEM
WIN10 Update KB3176937 NT-AUTORITÄT\SYSTEM
WIN10 Security Update KB3188128 NT-AUTORITÄT\SYSTEM
WIN10 Update KB3194496 NT-AUTORITÄT\SYSTEM 10.05.2016 00:00:00
Anm.: Get-Process, Get-EventLog machen oft ohne Domäne Probleme, obwohl nach Problemlösungen (Troubleshooting) der Dienst RemoteRegistry auf dem Zielrechner aktiviert worden ist.
PS E:\_temp> $dienst = Get-WmiObject -Class Win32_service -Filter 'Name="RemoteRegistry"' -ComputerName win10 -Credential $cred
PS E:\_temp> $dienst
ExitCode : 0
Name : RemoteRegistry
ProcessId : 340
StartMode : Auto
State : Running
Status : OK
Testskript findet heraus, ob Ports
137-139 (Namensauflösung),
445 (SMB) und
5985 (PowerShell Remoting via http)
verfügbar sind.
Weltner – 22.1.ps1 – Funktion: Test-NetworkPort - siehe PowerShellCodes
PS E:\_temp> Test-NetworkPort
Port Open Type ComputerName
---- ---- ---- ------------
139 True TCP WIN10
445 True TCP WIN10
5985 True TCP WIN10