Kurztipp: DHCP-Server migrieren

21. August 2017

Microsoft hat das Format der VM-Konfigurationsdateien verändert, um eine höhere Zuverlässigkeit zu erzeugen. Auch Sicherheitsbedenken spielten laut Microsoft dabei eine Rolle, so ist es deutlich schwieriger (etwa für Schadsoftware oder Hacker) eine Datei im binären Format zu manipulieren, als eine XML- oder  Textdatei. Vielleicht möchte Microsoft auch zudem noch die Systembetreuer an dieser Stelle etwas „aussperren“, damit diese keine (ungetesteten) Änderungen vornehmen, was zu Lasten der VM-Stabilität gehen könnte.

 

Seit Hyper-V Version 2016 wurden die VM-Konfigurationsdateien umgestellt: Statt XML-Dateien sind die benötigten Konfigurationsparameter nun in einer Binären Datei (mit der Dateiendung VMCX) abgespeichert. Wie können die Infos trotzdem schnell und effizient ausgelesen werden?

Falls sich die Systembetreuer Fragen, auf welche Weise sich die Konfigurationsdateien von virtuellen Maschinen (VMs) unter Hyper-V-2016 auslesen können, liefert John Savill eine Antwort: Ein temporäres Objekt mit dem kopierten Inhalt der Konfig-Datei erzeugen:

$tempVM = (Compare-VM -Copy -Path .\yourvmcxfile.vmcx -GenerateNewID).VM

Dabei lassen sich beispielsweise alle Schlüsseleigenschaften wie folgt auslesen:

$tempVM | select *

Zudem können die Admins auch eine Auswahl der Eigenschaften definieren. Etwa falls nur die Netzwerkadapter oder die virtuellen Festplatten von Interesse sind:

$tempVM.NetworkAdapters
$tempVM.HardDrives
$tempVM.FibreChannelHostBusAdapters

Dabei lässt sich auch die Autovervollständigen-Funktion (Taste „TAB“) der Powershell nutzen, wenn TAB nach dem folgenden Eingabe (mehrfach) gedrückt wird, lassen sich alle vorhandenen Einträge nacheinander durchsehen:

$tempVM.

Hier ein Codebeispiel beim Einsatz des Cmclets:

PS C:\> $tempVM = (Compare-VM -Copy -Path .\DF8560F4-4A6A-49B7-8E87-3B54D4101B40.vmcx -GenerateNewID).VM

 

PS C:\> $tempVM

 

Name         State CPUUsage(%) MemoryAssigned(M) Uptime Status

----         ----- ----------- ----------------- ------ ------

savdaldemo01 Off   0           0                        Operating normally

 

 

 

PS C:\> $tempVM | select *

 

 

VMName: savdaldemo01

VMId  : 904f432b-d545-4a9f-9560-8dc9145a56ae

Id    : 904f432b-d545-4a9f-9560-8dc9145a56ae

Name  : savdaldemo01

State : Off

IntegrationServicesState            :

OperationalStatus                   : {Ok}

PrimaryOperationalStatus            : Ok

SecondaryOperationalStatus          :

StatusDescriptions                  : {Operating normally}

PrimaryStatusDescription            : Operating normally

SecondaryStatusDescription          :

Status: Operating normally

Heartbeat                           :

ReplicationState                    :

ReplicationHealth                   :

ReplicationMode                     :

CPUUsage                            : 0

MemoryAssigned                      : 0

MemoryDemand                        : 0

MemoryStatus                        :

SmartPagingFileInUse                :

Uptime:

IntegrationServicesVersion          :

ResourceMeteringEnabled             : False

AutomaticCriticalErrorAction        : Pause

AutomaticCriticalErrorActionTimeout : 30

ConfigurationLocation               : C:\Virtuals

SnapshotFileLocation                : C:\Virtuals

CheckpointType                      : Production

AutomaticStartAction                : StartIfRunning

AutomaticStopAction                 : Save

AutomaticStartDelay                 : 0

SmartPagingFilePath                 : C:\Virtuals

NumaAligned                         :

NumaNodesCount                      :

NumaSocketCount                     :

Key   : Microsoft.HyperV.PowerShell.VirtualMachineObjectKey

IsDeleted                           : False

ComputerName                        : SAVDALHVFX

Version                             : 6.0

Notes : #CLUSTER-INVARIANT#:{94838b88-2846-4e3d-9caa-850fb785fe3b}

Generation                          : 2

Path  : C:\Virtuals

CreationTime                        : 8/5/2015 12:35:11 PM

IsClustered                         : False

SizeOfSystemFiles                   : 0

ParentSnapshotId                    :

ParentSnapshotName                  :

MemoryStartup                       : 2147483648

DynamicMemoryEnabled                : False

MemoryMinimum                       : 536870912

MemoryMaximum                       : 1099511627776

ProcessorCount                      : 1

RemoteFxAdapter                     :

NetworkAdapters                     : {Network Adapter}

FibreChannelHostBusAdapters         : {}

ComPort1                            : Microsoft.HyperV.PowerShell.VMComPort

ComPort2                            : Microsoft.HyperV.PowerShell.VMComPort

FloppyDrive                         :

DVDDrives                           : {}

HardDrives                          : {Hard Drive on SCSI controller number 0 at location 0}

VMIntegrationService                : {Time Synchronization, Heartbeat, Key-Value Pair Exchange,

Shutdown...}

 

 

 

PS C:\> $tempVM.NetworkAdapters

 

Name            IsManagementOs VMName       SwitchName      MacAddress   Status IPAddresses

----            -------------- ------       ----------      ----------   ------ -----------

Network Adapter False          savdaldemo01 External Switch 000000000000

John Savill / FAH

Lesen Sie auch