Remote Cmdlets

Cmdlets mit Parameter –Computername: Get-Command -ParameterName Computername (einfache Suche - mehr s.u.)

Cmdlets also mit eingebauter „Fernwartung“

Hier genauer: ohne WS Management, also bei Windows ohne WinRM (Windows Remote Management)!

Erkl.: 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 (hier Adminkonto benötigt und 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 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 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 für Ports 137-139 (Namensauflösung), 445 (SMB) und 5985 (PowerShell Remoting via http)

PowerShell Skript „Weltner – 22.1.ps1 – Funktion: Test-NetworkPort

PS E:\_temp> Test-NetworkPort

Port Open Type ComputerName
---- ---- ---- ------------
139  True TCP  WIN10
445  True TCP  WIN10
5985 True TCP  WIN10