VMware Remote Console [VMRC]

Wenn man mit dem ESXi Virtualiesierungssystem arbeitet gibt es immer ein Problem. Will man nur schnell eine laufende VM verwenden um etwas nachzusehen oder zu testen benötigt man immer den vSphere Client um die Konsole zu öffnen.
Um diesen Umstand zu beseitigen braucht man nur im Internet etwas suchen und man erhält die Aufrufparameter für die VMware Remote Console (vmrc).
Dort wird dann beschrieben wie man einen Link erstellt unter Windows mit den passenden Parametern.

Das sieht dann ungefähr so aus:
„… erstellen Sie eine neue Verknüpfung zur vmware-vmrc.exe auf dem Desktop mit dem Kontextmenü …“
„… bearbeiten Sie das Ziel der Verknüpfung und fügen die folgenden Parameter hinzu:“

Resultat
Link mit Ziel:
„C:\Program Files (x86)\Common Files\VMware\VMware VMRC Plug-in\Internet Explorer\vmware-vmrc.exe“ -h <ESX-IP> -u <user> -p <password> „[DATASTORE] /VMxy/VMxy.vmx“

Nun wenn man nur 1 oder 2 VMs auf dem ESX-System hat mag das ja noch praktikabel sein. Bei 5 oder mehr sollte man jedoch daran denken die zu automatisieren.
Mit Hilfe der VMware vSphere PowerCLI geht das wunderbar.
Das folgende Script muss innerhalb der PowerCLI ausgeführt werden, es meldet sich beim ESX an und erstellt dann für jede VM einen solchen Link auf dem Desktop des angemeldeten Benutzers, abschließend trennt es die Verbindung wieder.


$WshShell = New-Object -comObject WScript.Shell

$esxhost = "10.10.47.11"
$esxuser = "your user"
$esxpass = "user password"
$vmrcpath = "%programfiles%\Common Files\VMware\VMware VMRC Plug-in\Internet Explorer\vmware-vmrc.exe"

$server = Connect-VIServer $esxhost -User $esxuser -Password $esxpass

Foreach ($VM in (Get-VM | Sort Name | Get-View)){
$MyDetails = "" | Select-Object VMName,VMXLocation
$MyDetails.VMName = $VM.Name
$MyDetails.VMXLocation = $VM.Config.Files.VmPathName

$Shortcut = $WshShell.CreateShortcut("%userprofile%\desktop\" + $esxuser + "_" + $MyDetails.VMName + ".lnk")
$Shortcut.TargetPath = $vmrcpath
$Shortcut.Arguments = "-h " + $esxhost + " -u " + $esxuser + " -p " + $esxpass + " " + """" + $MyDetails.VMXLocation + """"
$Shortcut.Save()
}

Disconnect-VIServer -Server $server -Force -Confirm:$false

Auf eines muss ich noch hinweisen: Bitte verwendet nicht den root zugang für dieses Script!! Der Benutzer und das Passwort sind bei diesen Links klartextparameter. Richtet also vorher ein Benutzerkonto auf dem ESX ein.

VMLinks Script [Download]

Update: Um die VMRC ohne die Fehlermeldung „VMWare Player ist nicht korrekt installiert. Bitte Installieren Sie diesen neu.“ verwenden zu können, muss der vSphere Client mit der Version 5.0.0-623373 installiert sein. Ist nur die Version 5.1.x installiert funktioniert es nicht.

ESXi Network connection with 65535Mbps [solved]

During the last days I had the problem on my ESXi Server that it was not reachable.

The Server itself and the VMs were running fine. So it was no crash or something like that. After I took a closer look at the problem with the support console, I noticed that my management network connection had some weird values.

Link: Up <- with the cable disconnected?

Linkspeed: 65535Mbs <- Hmm, cool in an Gigabit network

Duplex: Half

The first thing I tried was to restart my management network via the menu but this time it doesn’t helped. So I tried my luck in the support console by typing esxcfg-nics -a vmnic0.

The result was that my Server was reachable again and the values of the network connection were back to normal.

To automate this action I wrote a little Python Script which detects these abnormal values and resets them to normal by executing esxcfg-nics –a <interface>.

All I had to do is to place the script on the ESXi Server in a directory which is not deleted or overwritten if the server gets restarted and to add it as a cronjob which is executed every 30minutes.

In my case I placed the Script on the VMFS-Data storage.

The only thing which is left to do is to save the cronjobs so that they were persistent even if I reboot the Server. But I didn’t figured this out how to do it.

The Script is available here to Download: nic_check.py

ESXi Netzwerkverbindung mit 65535Mbps [gelöst]

Bei meinem ESXi Server hatte ich das Problem das er nach ein paar Tagen nicht mehr erreichbar war.

Der Server selbst und die VMs waren aber nicht betroffen. Kein Absturz oder sowas.

Als ich mit der Support Konsole mir das Problem näher angesehn habe, musste ich feststellen dass mein Netzwerkadapter für das Management etwas komische Werte hatte.

Link: Up <- auch bei abgezogenen Netzwerkkabel ?

Linkspeed: 65535Mbs <- bei einem Gigabit Netzwerk ?

Duplex: Half

Da ein neustart des Management Netzwerks nichts gebracht hat versuchte ich mein Glück mit esxcfg-nics -a vmnic0.

Das resultat war das die werte wieder korrekt waren und der Server wieder mit dem vSphere Client erreichbar war.

Damit ich nicht immer zum Server hinrennen muss hab ich ein kleines Python Script geschrieben das dass Management Netzwerk automatisch wieder zurechtrückt.

Das Script: nic_check.py
Viel Spaß