Blogbeitrag

16 | 08 | 2016

PowerShell Hack: Hyper-V-Host einer VM remote ermitteln

Geschrieben von um 16:35 Uhr

Das ist nichts wirklich Neues, einfach aus der Reihe „gewusst wie“. Aufgabe: Den Hostnamen einer Hyper-V-VM ermitteln, während man weder mit dem Hyper-V-Host noch mit der VM eine gemeinsame Authentifizierungsbasis hat, die Credentials also explizit übergeben muss. Erschwert wird die Nummer dadurch, dass einige der betroffenen Maschinen noch Server 2003 ausführen und damit PowerShell-Remoting als Allheilmittel ausscheidet. Der gesuchte Name steht natürlich in der Registry, aber die an sich elegantere Lösung mit [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey funktioniert nicht, da sie keine explizite Authentifizierung zulässt. Aber es gibt ja noch WMI und den StdReg-Provider. Da geht natürlich deutlich mehr. Und tatsächlich, so geht’s:

$HKEY_LOCAL_MACHINE=2147483650
$my_computer = "<NAME, FQDN oder IP>"
$my_credentials = Get-Credential
(Invoke-WmiMethod -Namespace "ROOT\default" -Class "StdRegProv" -ComputerName $my_computer -Credential $my_credentials -Name GetStringValue -ArgumentList @($HKEY_LOCAL_MACHINE,"SOFTWARE\Microsoft\Virtual Machine\Guest\Parameters","PhysicalHostName")).sValue

Freilich gibt es auch https://psremoteregistry.codeplex.com/ von Shay Levi, aber das ist a. alt und muss b. eingebunden werden, was nicht immer wünschenswert oder zulässig ist.

Beitragsdetails

Tags » , , , , , , «

gravatar

Kategorie » Hyper-V, Microsoft, PowerShell «

Trackback: Trackback-URL |  Kommentar-Feed: RSS 2.0 | 217 Worte

Beitrag kommentieren

Kommentar schreiben ...

Deine E-Mail-Adresse wird nicht veröffentlicht.

(X)HTML Tags zur Formatierung der Kommentare

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>