Archiv für die Kategorie ‘Hyper-V’

Hyper-V 3.0 Remote Management Einrichtung mittels HVRemote endlich Server 2012 und Windows 8 kompatibel

15 April 2013

Wer einen Microsoft Hyper-V Server 2012 installiert und von Server 2012 oder Windows 8 aus administrieren möchte, der bleibt meistens bei HVREMOTE hängen. Doch leider gab es bisher keine offizielle Unterstützung für Windows 8 und Windows Server 2012 Remote Management Maschinen. http://newyear2006.wordpress.com/2012/07/10/hyper-v-3-0-remote-management-einrichtung-mit-hvremote-und-probleme-mit-windows-8/

Nachdem wahrscheinlich schon niemand daran geglaubt hat, dass es noch eine Aktualisierung von HVREMOTE.WSF geben könnte, ist nun doch die neue Version 1.06 verfügbar: http://code.msdn.microsoft.com/windowsdesktop/Hyper-V-Remote-Management-26d127c6.

Eigentlich hatte ich immer gedacht, es braucht solange, weil gleich ein Powershell Script gebastelt wird, aber weit gefehlt, es wird immer noch alte Scriptingtechnik eingesetzt.

Problem mit Hardwareerkennung nach virtuellem Serverumzug von Virtual Server 2005 auf Hyper-V daraus resultierend fehlende Maus und fehlende Netzwerkkarte

22 März 2013

Schade, dass MS es mal wieder verbockt hat. Selbst in der virtuellen Welt, fallen einem ständig blöde Probleme auf die Füße. Wenn man eine virtuelle Maschine (nur VHD) von einem Virtual Server 2005 auf einen Hyper-V V3 umzieht, kann es passieren, dass man unter dem Hyper-V ohne Maus und ohne Netzwerkkarte dasteht. Und dies, obwohl man davor ordnungsgemäß die “Virtual Machine Additions” auf dem VS2005 deinstalliert und auf dem Hyper-V die “Hyper-V Integrationsfeatures” installiert hat. Übriges, wer das Deinstallieren vergisst oder wem es nicht möglich war diese zu deinstallieren, wird hier fündig: http://blogs.msdn.com/b/arvindsh/archive/2012/10/12/virtual-pc-to-hyper-v-vm-additions-issues.aspx.

Aber zurück zum Problem, im Gerätemanager findet man ein Ausrufezeichen beim “Microsoft Hyper-V-Bus des virtuellen Computers”, schaut man sich die Eigenschaften an steht da eine Fehlermeldung mit Code 12. Zur Abwechslung gibt es einen KB-Artikel dazu: http://support.microsoft.com/kb/954282, der auch die Lösung parat hält. Führt man dies aus, behebt sich das Problem nach dem fälligen Neustart von selber. Entscheidend dabei ist, dass man bei MSCONFIG, die HAL-Erkennung bei den erweiterten Optionen aktiviert. Hier noch eine bildliche Darstellung: http://blogs.technet.com/b/jhoward/archive/2008/02/29/vmbus-fails-to-load-device-cannot-find-enough-free-resources-code-12-on-a-windows-server-2008-x86-virtual-machine-under-hyper-v.aspx und hier mit etwas neueren Bildern: http://blog.chrislehr.com/2008/12/hyper-v-code-12-on-virtual-machine-bus_06.htm.

Interessant in diesem Zusammenhang ist noch dieser Artikel http://blogs.technet.com/b/mkorp/archive/2008/08/15/vms-von-virtual-server-nach-hyper-v-migrieren.aspx der helfen könnte, wenn man mal manuell eingreifen muss und auf der Suche nach den richtigen Registrierungseinträgen ist.

Client Hyper-V in Windows 8

22 Januar 2013

Windows 8 enthält auch den Hyper-V Server allerdings wird im Zusammenhang mit einem lokalen Hyper-V auf Windows 8 von Client Hyper-V gesprochen.

Es gibt ein paar Dinge zu beachten und ein paar Einschränkungen, wie z. B., dass Client Hyper-V nur auf 64Bit Systemen läuft und Dinge wie Replikation nicht unterstützt.

Hier das Dokument mit den Infos: http://www.microsoft.com/en-us/download/details.aspx?id=36188

Mit dieser Version von Hyper-V-Manager können keine Server mit Hyper-V unter Windows Server 2008 oder Windows Server 2008 R2 verwaltet werden.

18 Januar 2013

Nach der Installation des Hyper-V Managers auf einem Windows 8 und der Einrichtung der Zugriffe via HVREMOTE.SWF, wie hier beschrieben http://newyear2006.wordpress.com/2012/07/10/hyper-v-3-0-remote-management-einrichtung-mit-hvremote-und-probleme-mit-windows-8/, sollte eigentlich ein Zugriff auf einen Hyper-V Server hergestellt werden.

Die ersten beiden Male, also den Meldungsdialog

[Window Title]
Hyper-V-Manager

[Main Instruction]
Fehler beim Versuch, eine Verbindung mit dem Server "MYHYPERV" herzustellen. Vergewissern Sie sich, dass der Verwaltungsdienst für virtuelle Computer ausgeführt wird und Sie zum Herstellen einer Verbindung mit dem Server berechtigt sind.

[Content]
Mit dieser Version von Hyper-V-Manager können keine Server mit Hyper-V unter Windows Server 2008 oder Windows Server 2008 R2 verwaltet werden.

[Schließen]

großzügig ignoriert und kurz nochmal die Aufrufe von HVRemote gecheckt. Aber alles OK. Wie immer, wenn was nicht klappt, fängt man dann das lesen an und da steht:

[Content]
Mit dieser Version von Hyper-V-Manager können keine Server mit Hyper-V unter Windows Server 2008 oder Windows Server 2008 R2 verwaltet werden.

Ja hallo, geht es noch? Merken die die Einschläge nicht mehr? Der Server ist ein Hyper-V Server R2 mit SP1.

Hier ein Thread im MSDN-Forum welches bestätigt, dass es für das Problem keine Lösung gibt: http://social.technet.microsoft.com/Forums/en/winserverhyperv/thread/4b3e7582-dc20-4dcb-8e71-fef9fecce19c

Kommen wir wieder mal zum Punkt: Muss das sein? Es gibt keinen logischen Grund warum Windows 8 nicht einen Server 2008 R2 unterstützen können sollte. Es sind nur einfach faule Pfeifen bei MS am Werk, die keinen Plan haben was draußen in der Welt so los ist. Es wird immer eine Technologie gepusht und gehypet und am Ende wird man im Regen stehen gelassen. Sollen Sie endlich den Handyschrott sein lassen und ihre Milliarden in Leute und Dienste investieren! Da läuft mir jetzt echt die Galle über.

Schnelldiagnose mittels Powershell anstatt über die Ereignisanzeige

31 Dezember 2012

Um einen schnellen Überblick über die größten Nöte eines Systems zu finden, kann man diese Powershell Befehle verwenden:

Genereller Überblick

get-eventlog –Logname System | where {$_.EntryType –eq ‘Error’} | select –First 10

get-eventlog –Logname System | where {$_.EntryType –eq ‘Warning’} | select –First 10

get-eventlog –Logname Application | where {$_.EntryType –eq ‘Error’} | select –First 10

get-eventlog –Logname Application | where {$_.EntryType –eq ‘Warning’} | select –First 10

get-eventlog -LogName Security | where {$_.Entrytype -ne "SuccessAudit"} | select –First 10

Seit Windows Vista und Server 2008 wurde die Ereignisanzeige massiv erweitert durch die Windowsereignisse.

Einen schnellen Überblick über Hyper-V Probleme bekommt mittels:

Get-WinEvent –ProviderName "*Hyper-V*"

oder wo ein besitmmter Computername auftaucht

Get-WinEvent –ProviderName "*Hyper-V*" | where {$_.Message –match "Computername"}

oder wo ein Fehler aufgetreten ist:

Get-WinEvent –ProviderName "*Hyper-V*" | where {$_.LevelDisplayName –eq "Fehler"}

Wenn man wissen möchte, was an einem bestimmten Tag geschah:

Get-WinEvent-ProviderName "*Hyper-V*" | where {(Get-Date $_.TimeCreated –format d) –eq (Get-Date 13.10.2012 –format d)}

Wenn man wissen möchte, was zu einer bestimmten Stunde passierte:

Get-WinEvent-ProviderName "*Hyper-V*" | where {(Get-Date $_.TimeCreated –format "yyyyMMddHH") –eq (Get-Date "13.10.2012 11:00" –format "yyyyMMddHH")}

Hierbei ist zu beachten, das alles was vor 11:00Uhr also um 10:59 geschah unberücksichtigt bleibt. Wenn aber ein Ereignis um 11:01Uhr Probleme machte, sollte man natürlich den Überprüfungszeitraum auf 10:xxUhr ausdehnen!

Genau dies macht dieser Befehl, es wird etwas mit Zeiten jongliert und zwar werden dem Ursprungsereignis immer 20 Minuten hinzuaddiert, dadurch rutscht ein Ereignis von 10:45Uhr in das 11:00Uhr Zeitfenster:

Get-WinEvent-ProviderName "*Hyper-V*" | where {(Get-Date (Get-Date $_.TimeCreated).AddMinutes(20) –format "yyyyMMddHH") –eq (Get-Date "13.10.2012 11:00" –format "yyyyMMddHH")}

Logischerweise fallen dann Ereignisse nach 11:40 unter den Tisch.

Wer kompliziertere Abfragen oder gar Remoteabfragen braucht, der sollte sich bei Get-WinEvent einen Filter basteln und diesen angeben, weitere Infos dazu: http://newyear2006.wordpress.com/2011/04/28/ereignisanzeige-query-builder-fr-powershell/

Hyper-V Remotedateibrowser GUID

11 September 2012

Nur so aus Interesse, führe ich hier mal die GUID auf, welche vom Hyper-V Remotedateibrowser verwendet wird. Die GUID wird von einer Shell Erweiterung verwendet, welche es erlaubt auf das Dateiverzeichnis eines Hyper-V Servers von einem Verwaltungsclient zuzugreifen. http://blogs.technet.com/b/robse/archive/2008/10/08/q-what-is-hyper-v-remote-file-browsing.aspx

0907616E-F5E6-48D8-9D61-A91C3D28106D

Die GUID kommt in dieser Form zum Einsatz

::{0907616E-F5E6-48D8-9D61-A91C3D28106D}\HYPER-V-Name

Die GUID findet auch im aktuellen Hyper-V 3.0 noch Anwendung.

Konvertieren von virtuellen VMware Maschinen in virtuelle Hyper-V Maschinen

4 September 2012

Microsoft bietet nun ein offiziell unterstütztes Tool an, mit dem VMWare basierende virtuelle Maschine automatisch in Hyper-V kompatible virtuelle Maschinen übersetzt. Teilweise werden z. B. Netzwerkkartentreiber gleich aktualisiert. Auch VMDK-Dateien werden in VHD-Dateien gewandelt.

http://www.microsoft.com/en-us/download/details.aspx?id=34591&WT.mc_id=rss_alldownloads_all

Man sollte aber unbedingt die Readme lesen, denn es gibt einige Konstellationen wo eine automatische Konvertierung nicht unterstützt wird, oder wo nur bestimmte Teile übernommen werden.

Hyper-V 3.0 Remote Management Einrichtung mit HVRemote und Probleme mit Windows 8

10 Juli 2012

Wer sich z. B. einen Microsoft Hyper-V Server 2012 installiert und diesen von einem Windows 8 Rechner verwalten möchte, der sollte bitte unbedingt darauf achten, dass Befehle auf Windows 8 immer mit dem /mode:client Parameter angegeben werden.

Der 10 Second guide von http://archive.msdn.microsoft.com/HVRemote sollte also so aussehen:

Configuration Where Purpose Commands
Client and Server both workgroup Server Create a local account (eg "john") Use net user /? or Computer Management
  Server Grant the user access cscript hvremote.wsf /add:accountname ***
  Client Allow Anonymous Logon remote DCOM access cscript hvremote.wsf /mode:client /anondcom:grant
  Client Logon with matching local account. Ctrl+Alt+Del :)
  Client If passwords do not match cmdkey /add:servername /user:servername\account /pass
  Client Set firewall exception cscript hvremote.wsf /mode:client /mmc:enable
  Both Verify configuration for errors cscript hvremote.wsf /[mode:client] /show /target:othercomputername
————————-      
Client workgroup, Server domain Server Grant domain account access cscript hvremote.wsf /add:domain\account ***
  Client Allow Anonymous Logon remote DCOM access cscript hvremote.wsf /mode:client /anondcom:grant
  Client Set credentials for domain account cmdkey /add:servername /user:domain\account /pass
  Client Set firewall exception cscript hvremote.wsf /mode:client /mmc:enable
  Both Verify configuration for errors cscript hvremote.wsf /[mode:client] /show /target:othercomputername
————————-      
Client domain, Server workgroup Server Create a local account (eg "john") Use net user /? or Computer Management
  Server Grant the user access cscript hvremote.wsf /add:accountname ***
  Client Allow Anonymous Logon remote DCOM access cscript hvremote.wsf /mode:client /anondcom:grant
  Client Set credentials for local account Use cmdkey /add:servername /user:servername\accountname /pass
  Client Set firewall exception cscript hvremote.wsf /mode:client /mmc:enable
  Both Verify configuration for errors cscript hvremote.wsf /[mode:client] /show /target:othercomputername
————————-      
Client and Server both domain Server Grant the non-admin user access cscript hvremote.wsf /add:domain\account ***
  Client Set firewall exception cscript hvremote.wsf /mode:client /mmc:enable
  Both Verify configuration for errors cscript hvremote.wsf [/mode:client] /show /target:othercomputername

Warum? Weil HVRemote.WSF beim Start überprüft ob auf dem lokalen Rechner die Hyper-V-Rolle installiert ist. Wer diese also auf seinem Windows 8 Rechner aus Neugier installiert hat, wundert sich unweigerlich, warum die Konfiguration nicht klappt.

Eigentlich ein Armutszeugnis, dass man in der neuen Version immer noch solche Klimmzüge veranstalten muss, um einen Hyper-V Server administrieren zu können. Ja ja es gibt ja nun den neuen Server-Manager aber der hilft nicht beim Anlegen von neuen virtuellen Maschinen! Teilweise wird trotz WSMan 3.0 immer noch DCOM zum Administrieren benötigt. Traurig, Traurig…

Dies spiegelt sich auch im Web wieder, hier ein netter Vergleich Hyper-V 3.0 und VMWare ESXi: http://social.technet.microsoft.com/Forums/en-US/winserverhyperv/thread/e91635ce-0891-40ac-a186-21da60dfd494/

Wird Zeit, dass HVRemote.WSF durch ein ordentliches Powershell Cmdlet ersetzt wird.

Sinnvolle Größe für Microsoft Hyper-V Server Auslagerungsdatei (Pagefile.sys)

30 März 2012

Ein oft nicht beachtete Sache bei der Konfiguration eines Microsoft Hyper-V Server 2008 R2 ist der verwendete Anteil der Auslagerungsdatei mit Namen Pagefile.SYS. Diese ist z. B. bei einer einfachen Einrichtung eines 16GB-Rechners gleich 8GB groß. In dieser Größenordnung noch verschmerzbar.

Aber was ist wenn das Hostsystem 64GB oder noch mehr Arbeitsspeicher hat? Dann geht es schnell ans eingemachte. Wenn man dann noch eine teure SSD mit wenig Speicherplatz hat, kommt es auf jedes GB an.

Mittels dieser Zeilen kann man es per Commandline steuern:

wmic computersystem set AutomaticManagedPagefile=False
wmic pagefileset where name="c:\\pagefile.sys" set InitialSize=4000,MaximumSize=6000

Weitere Infos enthält dieser Forumseintrag: http://social.technet.microsoft.com/Forums/en-US/winserverhyperv/thread/336924fc-21a8-4654-bdb8-7dc151b54d9a

Vor allem diese Links sind interessant:

How big Should PageFile.sys be on a Server 2008 Hyper-V Server?

http://blogs.technet.com/b/rwagg/archive/2010/03/08/how-big-should-pagefile-sys-be-on-a-server-2008-hyper-v-server.aspx

 

Pagefile setting on a Hyper-V host

http://www.hyper-v.nu/archives/pnoorderijk/2011/07/pagefile-setting-on-a-hyper-v-host/

 

What’s the story of Pagefile size on Hyper-V Servers?

http://blogs.technet.com/b/mghazai/archive/2011/05/26/what-s-the-story-of-pagefile-size-on-hyper-v-servers.aspx

 

How to determine the appropriate page file size on my server

http://blogs.technet.com/mghazai/archive/2008/09/29/how-to-determine-the-appropriate-page-file-size-on-my-server.aspx

Microsoft Hyper-V Server Passwortablauf aussetzen also PasswordNeverExpires setzen

9 März 2012

Wer einen Standalone Microsoft Hyper-V Server laufen hat, der wird von Zeit zu Zeit sich auf dem Server aufschalten wollen um zu schauen wie die Lage so ist, oder man möchte eine neue VM einrichten und stellt dann auf einmal fest, dass kein Zugang mehr zum Server über die MMC möglich ist.

Was ist in so einem Fall passiert? Ganz einfach, dass Passwort ist abgelaufen und schon klappts nicht mehr mit der Kommunikation. In der Grundkonfiguration ist immer alle sechs Wochen Schluss!

Was hilft? Natürlich Powershell. Also zuerst Powershell installieren: http://newyear2006.wordpress.com/2011/04/15/powershell-beim-microsoft-hyper-v-server-installieren/ 

Dieser Artikel beschreibt, wie man mittels Powershell auf die lokalen Gruppen und Benutzer zugreifen kann, nämlich mittels WinNT-Management Provider. http://blogs.technet.com/b/heyscriptingguy/archive/2008/03/11/how-can-i-use-windows-powershell-to-add-a-domain-user-to-a-local-group.aspx, weitere Infos gibt es hier: http://msdn.microsoft.com/en-us/library/windows/desktop/aa772237(v=vs.85).aspx

Der Aufruf

$user = [adsi]"WinNT://./Benutzername"

sorgt für die Initialisierung eines Objekts vom lokalen Rechner (.) des angegebenen Benutzers.

Gibt man nun

$user

ein, wird nicht viel angezeigt:

distinguishedName :
Path              : WinNT://./Benutzername

Wenn man aber

$user | fl *

verwendet, wird es interessant:

UserFlags                  : {513}
MaxStorage                 : {-1}
PasswordAge                : {322374}
PasswordExpired            : {0}
LoginHours                 : {255 255 255 255 255 255 255 255 255 255 255 255 2
                             55 255 255 255 255 255 255 255 255}
FullName                   : {}
Description                : {}
BadPasswordAttempts        : {0}
LastLogin                  : {09.03.2012 15:13:47}
HomeDirectory              : {}
LoginScript                : {}
Profile                    : {}
HomeDirDrive               : {}
Parameters                 : {}
PrimaryGroupID             : {513}
Name                       : {Benutzername}
MinPasswordLength          : {0}
MaxPasswordAge             : {3628800}
MinPasswordAge             : {0}
PasswordHistoryLength      : {0}
AutoUnlockInterval         : {1800}
LockoutObservationInterval : {1800}
MaxBadPasswordsAllowed     : {0}
objectSid                  : {1 5 0 0 0 0 0 5 21 …}
AuthenticationType         : Secure
Children                   : {}
Guid                      : {xxx}
ObjectSecurity             :
NativeGuid                 : {xxx}
NativeObject               : System.__ComObject
Parent                     : WinNT://WORKGROUP/.
Password                   :
Path                       : WinNT://./Benutzername
Properties                 : {UserFlags, MaxStorage,
PasswordAge, PasswordExpired…}
SchemaClassName            : User
SchemaEntry                : System.DirectoryServices.DirectoryEntry
UsePropertyCache           : True
Username                   :
Options                    :
Site                       :
Container                  :

Interessant sind davon die UserFlags, welche als Custom User Properties laufen: http://msdn.microsoft.com/en-us/library/windows/desktop/aa746535(v=vs.85).aspx. Den UserFlags können Werte aus einer Auflistung ADS_USER_FLAG_ENUM zugewiesen werden, welche hier beschrieben wird: http://msdn.microsoft.com/en-us/library/windows/desktop/aa772300(v=vs.85).aspx. Dort gibt es nun auch den Eintrag:

ADS_UF_DONT_EXPIRE_PASSWD    = 65536,     // 0x10000

welcher diese Umschreibung hat:

ADS_UF_DONT_EXPIRE_PASSWD

When set, the password will not expire on this account.

Also lange Rede, kurzer Sinn, man gibt

$user.UserFlags.value = $user.UserFlags.value –bor 0×10000

ein und schon ist es vorbei. OK, nicht ganz, denn man muss die Änderung noch abspeichern:

$user.CommitChanges()

Aber das wars jetzt.

Überprüfen lässt es sich ganz einfach durch ein kurzes

net user  <Benutzername>

welches zuvor so aussah

Konto aktiv                         Ja

Konto abgelaufen                    Nie

Letztes Setzen des Kennworts       05.03.2012 22:36:58

Kennwort läuft ab                  16.04.2012 22:36:58

Kennwort änderbar                  05.03.2012 22:36:58

Kennwort erforderlich               Ja

Benutzer kann Kennwort ändern       Ja

und danach

Konto aktiv                         Ja

Konto abgelaufen                    Nie

Letztes Setzen des Kennworts       05.03.2012 22:36:58

Kennwort läuft ab                   Nie

Kennwort änderbar                  05.03.2012 22:36:58

Kennwort erforderlich               Ja

Benutzer kann Kennwort ändern       Ja

Wer diese Funktion auf einem anderen Windows Server, der in einer Domäne läuft, ausführen möchte, wird an diesen Scripts gefallen finden: http://richardspowershellblog.wordpress.com/2012/02/08/setting-password-to-never-expire/

Und für alle alten VBler: http://msdn.microsoft.com/en-us/library/windows/desktop/aa746537(v=vs.85).aspx die Variante in VB.


Follow

Bekomme jeden neuen Artikel in deinen Posteingang.