VMM 2012 Technical Documentation, including Step-by Step Guides
VMM 2012 Official Cmdlet Reference
VMM 2012 TechNet Launchpad
VMM 2012 PowerShell Cheat Sheet
VMM 2008 PowerShell Cheat Sheet
2008 R2 Guides and Reference Downloads!
VMM 2008 Interactive Decision Flow
Jonathan's Virtual Blog
Virtual Machine Manager - Orchestrator - Solutions and Guidance
What is WinRM?
New in Windows Vista, Windows Server 2003 R2, Windows Server 2008 (and Server 2008 Core) are WinRM & WinRS. Windows Remote Management (known as WinRM) is a handy new remote management service. WinRM is the “server” component of this remote management application and WinRS (Windows Remote Shell) is the “client” for WinRM, which runs on the remote computer attempting to remotely manage the WinRM server. However, I should note that BOTH computers must have WinRM installed and enabled on them for WinRS to work and retrieve information from the remote system.
While WinRM listens on port 80 by default, it doesn't mean traffic is unencrypted. Traffic by default is only accepted by WinRM when it is encrypted using the Negotiate or Kerberos SSP. WinRM uses HTTP (TCP 80) or HTTPS (TCP 443). WinRM also includes helper code that lets the WinRM listener to share port 80 with IIS or any other application that may need to use that port.
WinRM with SCVMM uses Kerberos for authentication, and does not support fall-back to NTLM. There will be an error instead. If no credentials are specified, then the logged-on credentials are used to authenticate against the remote machine. This allows for a single sign-on experience.
What is WinRS?
Remote Shell, (WinRS) is used to execute a program on a remote host. Similar in operation to the former Sysinternals tool PSExec, WinRS leverages Windows Remote Management to let you launch processes on remote machines. For example, if you want to perform a directory listing on the system drive on a remote machine, you can remotely launch ‘dir’ using this syntax:
winrs -r:machinename dir
Another handy use of WinRS can be when installing software on remote systems. If you want to quietly install an application using an MSI file onto a remote machine, use the following syntax. This syntax assumes the MSI file has already been deposited into the C:\ folder.
winrs -r:machinename msiexec.exe /i c:\install.msi /quiet
When specifying the remote machine, the following are valid:
· Localhost
· NetBIOS name
· Fully Qualified Domain Name (FQDN)
· IP address
How to install WinRM
The WinRM is not dependent on any other service except WinHttp. If the IIS Admin Service is installed on the same computer, you may see messages that indicate WinRM cannot be loaded before Interent Information Services (IIS). However, WinRM does not actually depend on IIS: these messages occur because the load order ensures that the IIS service starts before the HTTP service. WinRM does require that WinHTTP.dll be registered.
(Stated simply: WinRM service should be set to Automatic (Delayed Start) on Windows Vista and Server 2008)
· The WinRM service starts automatically on Windows Server 2008.
· On Windows Vista, the service must be started manually.
· UPDATE! Windows 2003 requires an update for WinRM
936059 An update is available for the Windows Remote Management feature in Windows Server 2003 and in Windows XP
http://support.microsoft.com/default.aspx?scid=kb;EN-US;936059
How to configure WinRM
To set the default configuration type:
winrm quickconfig (or the abbreviated version, winrm qc)
‘winrm qc’ performs the following operations:
1. Starts the WinRM service and sets the service startup type to auto-start.
2. Configures a listener for the ports that send and receive WS-Management protocol messages using either HTTP or HTTPS on any IP address.
3. Defines ICF exceptions for the WinRM service and opens the ports for HTTP and HTTPS.
(Note: Winrm quickconfig also configures Winrs default settings)
If ‘winrm qc’ throws an error:
If the firewall is disabled the quick config command will fail. The firewall can either be started in Services long enough to run ‘winrm qc’ or the commands below can be run:
sc config "WinRM" start= auto
net start WinRM
winrm create winrm/config/listener?Address=*+Transport=HTTP
netsh firewall add portopening TCP 80 "Windows Remote Management"
Group Policy configuration:
WinRM can be configured by group policies.
1. Type gpedit at a command prompt. The Group Policy Object Editor window opens.
2. Look for the Windows Remote Management and Windows Remote Shell Group Policy Objects (GPO) under Administrative Templates and Windows Components.
Troubleshoot WinRM
Common Issues:
1. If the ISA2004 firewall client is installed on the computer, it can cause a Web Services for Management (WS-Management) client to stop responding. To avoid this issue, install ISA2004 Firewall SP1.
2. Antivirus software can prevent proper WinRM communication. Disable antivirus software and reboot the machine if the Antivirus software is known to scan processes and protocols, or if there is any doubt about the software.
Test WinRM communication on the local and remote machines
This section addresses how to test whether WinRM is working on the local system, and whether it can communicate with the remote system. Test remote communication in both directions between machines.
Local communication:
Locate listeners and addresses: (No output means WinRM is not installed)
winrm e winrm/config/listener
Localhost Ping:
(Successfully completing this step pretty much insure complete access to WSMan on the local system)
Winrm id
Further:
Check state of configuration settings:
winrm get winrm/config
Check the state of WinRM service:
winrm get wmicimv2/Win32_Service?Name=WinRM
Remote communication:
Locate listeners and addresses:
Remote Ping:
(Successfully completing this step pretty much insure complete access to WSMan on the remote system)
Winrm id –r:machinename
winrm get winrm/config -r:machinename
winrm get wmicimv2/Win32_Service?Name=WinRM -r:machinename
Sample Commands
Here are some sample commands to play with. If you cannot get the ‘Test WS-Man...' step to work, none of the steps following will work either (you're probably not using the right credentials to access the remote machine). One more caveat, the remote commands work best on domain joined machines. For workgroup machines, the WinRM service needs additional configuration.
Description
Command
Run from an Elevated Command prompt
Quickly configure the WS-Man service
winrm QuickConfig
Quickly delete the WS-Man listener
winrm invoke Restore winrm/Config @{}
Run from an standard Command prompt
Display your machine's basic hardware info
winrm enumerate wmicimv2/Win32_ComputerSystem
Display your operating system properties
winrm get wmicimv2/Win32_OperatingSystem
Output your OS info in XML
winrm get wmicimv2/Win32_OperatingSystem -format:pretty
Test WS-Man access to a remote machine**
winrm id -remote:<some machine>
Grab a remote machine's WS-Man config
winrm get winrm/Config -r:<some machine>
Grab a remote machine's CPU load
winrm g wmicimv2/Win32_Processor?DeviceID=CPU0 -fragment:LoadPercentage -r:<some computer>
Grab a remote machine's free memory
winrm g wmicimv2/Win32_OperatingSystem -fragment:FreePhysicalMemory -r:<some computer>
Stop a service on a remote machine
winrm invoke stopservice wmicimv2/Win32_Service?name=w32time -r:<some computer>
Start a service on a remote machine
winrm invoke startservice wmicimv2/Win32_Service?name=w32time -r:<some computer>
Reboot a remote machine
winrm invoke reboot wmicimv2/Win32_OperatingSystem -r:<some computer>
Run a command on a remote machine (this uses winrS, not winrM)
winrs -r:<some computer> ipconfig /all
Run from PowerShell
Use PowerShell to grab the WS-Man Win32_OperatingSystem XML output
[xml]$osInfo = winrm get wmicimv2/Win32_OperatingSystem /format:pretty
Display the OS version property
$osInfo.Win32_OperatingSystem.Version
Display the last boot time
$osInfo.Win32_OperatingSystem.LastBootupTime.DateTime
Put free memory metric into an XML variable
[xml]$freemem = cmd /c "winrm get wmicimv2/Win32_OperatingSystem -fragment:FreePhysicalMemory -f:pretty -r:<some computer>"
Display the free memory value
$freemem.XMLFragment.FreePhysicalMemory
**Note: This step verifies that you have good connectivity to the remote machine, WS-Man is running and properly configured on the remote machine, AND you have the correct permissions to fully leverage WS-Man on the remote machine. If this step fails, it's probably a permissions issue.
Advanced Concepts
URI Aliases
URI aliases can simplify the Winrm command line. The following URI aliases are supported:
wmi = http://schemas.microsoft.com/wsman/2005/06/wmi
wsman = wsman:microsoft.com/wsman/2005/06/
cimv2.9 = http://schemas.dmtf.org/wsman/2005/06/cimv2.9
cimv2 = http://schemas.microsoft.com/wsman/2005/06/wmi/root/cimv2
For example, the following command:
winrm get http://schemas.microsoft.com/wsman/2005/06/wmi/root/cimv2/Win32_Service?Name=WSMan
Gets replaced with:
winrm get wmi/root/cimv2/Win32_Service?Name=WinRM
Performing an Invoke Operation
‘Invoke’ initiates commands
winrm invoke StartService wmicimv2/Win32_Service?Name=WinRM -r:machinename @{}
This will likely return ‘ReturnValue = 10’ on a remote system where WinRM is running
WS-Man (WinRM) Architecture
The following diagram shows a high-level overview of the WS-Man (WinRM) architecture. In the diagram the 'Client' is querying the 'Server' for WS-Man information. Note that HTTP.sys and WinHTTP support the HTTP(s) transport for WS-Man, not IIS. In addition, IIS (or another web publishing service) can co-exist with WS-Man and share port 80.
Remember:
WinHTTP = Client
HTTP.SYS = Server
The Windows Remote Management architecture consists of components on the client and server computers. The following illustration shows the components on both computers, how the components interact with other components, and the protocol that is used to communicate between the computers.
The following WinRM components reside on the computer that is running the script that requests data.
· WinRM application
This is the script or Winrm command-line tool that uses the WinRM scripting API to make calls to request data or to execute methods. For more information, see the WinRM Scripting API [ http://msdn.microsoft.com/en-us/library/aa384469(VS.85).aspx ] .
· WsmAuto.dll
The OLE automation layer that provides scripting support.
· WsmCL.dll
C API layer within the operating system.
· HTTP API
WinRM requires support for HTTP and HTTPS transport.
The following WinRM components reside on the responding computer.
· WsmSvc.dll
WinRM listener [ http://msdn.microsoft.com/en-us/library/aa384465(VS.85).aspx ] service.
· WsmProv.dll
Provider subsystem.
· WsmRes.dll
Resource file.
· WsmWmiPl.dll
WMI plug-in [ http://msdn.microsoft.com/en-us/library/aa384465(VS.85).aspx ] . This allows you to obtain WMI data through WinRM.
· Intelligent Platform Management Interface (IPMI) driver and WMI IPMI provider
These components supply any hardware data that is requested using the IPMI classes. For more information, see Intelligent Platform Management Interface (IPMI) Classes [ http://msdn.microsoft.com/en-us/library/aa390891(VS.85).aspx ] . BMC hardware must have been detected by the SMBIOS or the device created manually by loading the driver. For more information, see Installation and Configuration for Windows Remote Management [ http://msdn.microsoft.com/en-us/library/aa384372(VS.85).aspx ] .
References
Installation and Configuration for Windows Remote Management
http://msdn.microsoft.com/en-us/library/aa384372(VS.85).aspx
Windows Remote Management Command-Line Tool (Winrm.cmd)
http://technet.microsoft.com/en-us/library/cc781778.aspx
How can Windows Server 2008 WinRM & WinRS help you
http://windowsnetworking.com/articles_tutorials/How-Windows-Server-2008-WinRM-WinRS.html
The things that are better left unspoken Remotely managing your Server Core using WinRM and WinRS
http://blogs.dirteam.com/blogs/sanderberkouwer/archive/2008/02/23/remotely-managing-your-server-core-using-winrm-and-winrs.aspx
Redmond Print First Look WinRM & WinRS
http://redmondmag.com/columns/article.asp?EditorialsID=2262
Otto Helweg - Management Matters A Few Good Vista WS-Man (WinRM) Commands
http://blogs.technet.com/otto/archive/2007/02/09/sample-vista-ws-man-winrm-commands.aspx
Windows Remote Management Architecture
http://msdn.microsoft.com/en-us/library/aa384464(VS.85).aspx
There are many errors that may appear, based on events in SCVMM, to be WMI related. An understandable response would be to troubleshoot WMI. On the other hand, many ‘Access Denied’ errors, while pointing to WMI in no way, are actually the result of WMI issues. Below are a number of error examples that in one way or another are related to WMI. The best way to deal with these errors is divide and conquer. First, determine if WMI itself is responding correctly. By this I mean that we test WMI functionality alone, not in combination with SCVMM which has its own detached namespace. Second, with no fundamental problems found with WMI due to NIC teaming or otherwise, there are three updates that may very well resolve your issue. These should be installed on all Windows 2008 servers that hold SCVMM components. The updates are at the bottom of this post. Good luck!
_____ERRORS_____
SCVMM Admin Console typical errors for Hosts 'Connection Status: Not responding' 'Virtualization service status: unknown" WMI typical errors Example #1 Log Name: ApplicationSource: Microsoft-Windows-WMI Event ID: 10 Task Category: none Description: Event filter with query "select * from __instancemodificationevent within 30 where targetinstance isa 'Win32_PerfFormattedData_PerfOS_Processor' and targetinstance.PercentProcessorTime > 99 and targetinstance.Name != '_Total'" could not be reactivated in namespace "//./root/CIMV2" because of error 0x80041010. Events cannot be delivered through this filter until the problem is corrected.
Example #2 Log Name: Application Source: Application Error Event ID: 1000 Task Category: (100) Description: Faulting application wmiprvse.exe, version 6.0.6001.18000, time stamp 0x4791950f, faulting module ntdll.dll, version 6.0.6001.18000, time stamp 0x4791adec, exception code 0xc0000005, fault offset 0x000000000003e39c, process id 0x944, application start time 0x01c95ba1faa603ce. Jobs list errors in SCVMM Admin Console Example #1
Error (2911) Insufficient resources are available to complete this operation on the server.contoso.com server. (Not enough storage is available to complete this operation (0x8007000E)) Recommended Action Ensure that the virtual machine host has sufficient memory and disk space to perform this action. Try the operation again. Example #2
Warning (10803) Unable to refresh \\server.contoso.com\ISOS$\WinPE_X86_with_HyperV_ICs.iso because the file is in use by another process. Recommended Action Wait for the next automatic library refresh, or manually refresh the library share after the process completes. Example #3 Error (2912) An internal error has occurred trying to contact an agent on the server.contoso.com server. (No more threads can be created in the system (0x800700A4)) Recommended Action Ensure the agent is installed and running. Ensure the WS-Management service is installed and running, then restart the agent. Example #4 Error (2912) An internal error has occurred trying to contact an agent on the ephypv01.constrution.enet server. (The paging file is too small for this operation to complete (0x800705AF)
_____TEST_____ Verify that various WMI namespaces can be connected to, then update WMI on all involved Windows 2008 machines Using wbemtest - Click the 'Start' button - Start> Run> wbemtest - Click 'Connect' and enter 'root\cimv2' then click 'Connect' again. This should not prompt with an error - Click 'Connect' and enter 'root\default' then click 'Connect' again. This should not prompt with an error On a Hyper-V server, this should also work - Click 'Connect' and enter 'root\virtualization' then click 'Connect' again. This should not prompt with an error.
On an SCVMM Server (Host) this should also work - Click 'Connect' and enter 'root\scvmm' then click 'Connect' again. This should not prompt with an error - Close 'wbemtest'
Using command line - From an elevated command prompt type 'wmic nic' and press Enter - This should return information, not an error. If there is an error, and all other tests work, this is likely due to NIC TEAMING. Uninstall all NIC Teaming software, reboot and try again - From an elevated command prompt type 'wmic diskdrive list brief' and press Enter - This should return information, not an error
_____UPDATE_____
Install WMI Updates and Hotfixes Each requires a reboot
954563 Memory corruption may occur with the Windows Management Instrumentation (WMI) service on a computer that is running Windows Server 2008 or Windows Vista Service Pack 1 http://support.microsoft.com/default.aspx?scid=kb;EN-US;954563
958124 A wmiprvse.exe process may leak memory when a WMI notification query is used heavily on a Windows Server 2008-based or Windows Vista-based computer http://support.microsoft.com/default.aspx?scid=kb;EN-US;958124
955805 Certain applications become very slow on a Windows Server 2008-based or Windows Vista SP1-based computer when a certificate with SIA extension is installed
http://support.microsoft.com/kb/955805
Technorati Tags: microsoft,scvmm,hyper-v,virtual,virtualization,windows
New article published in Microsoft Support. It should be available soon. In the meantime, here’s what I’ve put together. Hope it helps some people out there!
Error when performing online P2V. Stops at 40 percent every time.
Job result in SCVMM Admin Console Error (13243) The snapshot creation failed because the VSS writer {4dc3bdd4-ab48-4d07-adb0-3bee2926fd7f} on source machine xxx did not respond within the expected time interval. (Internal error code: 0x809933BB)
Recommended action: Ensure that VSS writer is functioning properly and then try the operation again. 4dc3bdd4-ab48-4d07-adb0-3bee2926fd7f is the Shadow Copy Optimization Writer
Event in Application Event Log on Source machine Log Name: Application Source: VSS Date: 2/15/2010 6:19:11 PM Event ID: 8193 Task Category: None Level: Error Keywords: Classic User: N/A Computer: ServerName.Domain.com Description: Volume Shadow Copy Service error: Unexpected error calling routine ConvertStringSidToSid. hr = 0x80070539.
Operation: OnIdentify event Gathering Writer Data
Context: Execution Context: Shadow Copy Optimization Writer Writer Class Id: {4dc3bdd4-ab48-4d07-adb0-3bee2926fd7f} Writer Name: Shadow Copy Optimization Writer Writer Instance ID: {d19e5030-d027-4b0d-b783-02d87be808f4}
Note SID is a placeholder for the security identifier (SID) of the user account that is experiencing the problem. The SID.bak subkey should contain a ProfileImagePath registry entry that points to the original profile folder of the user account that is experiencing the problem.
The writer name string for this writer is "Shadow Copy Optimization Writer".
The writer ID for the shadow copy optimization writer is 4DC3BDD4-AB48-4D07-ADB0-3BEE2926FD7F.
In-Box VSS Writers http://msdn.microsoft.com/en-us/library/bb968827(VS.85).aspx
So you perform a successful P2V using SCVMM. Or perhaps you use it’s cousin, ‘Disk2VHD’ from Sysinternals. All is well until you boot the new VM… FAILURE. For those situations where you simply get a black screen, maybe with a blinking cursor but definitely no Windows load, I have some solutions. (If you are experiencing a blue screen this article is not for you).
First! Do not fear the black screen. It simply means the path to load Windows cannot be found by the boot loader. This may be due to the boot loader, or it may be due to the MBR or Boot Sector. Let’s just say we aren’t concerned with all of the technicalities and want to fix it. Here’s how.
Windows 2008 R2 (Vista, Windows 7, Windows 2008)
We’re going to fix the entire boot path, despite what part of it is broken. Go find an ISO or DVD of any of the operating systems just listed in the title. Prepare to boot your VM from this media. We’re going to use the recovery console. We’ll assume you are using Windows 7 media.
You are now either booting into Windows, or you are not… Any blue screens I cannot help you with at this time. Search the internet for a solution, and in the meantime I intend to write an article on this as well. Comments welcome as always.
Further Information:
How to use the Bootrec.exe tool in the Windows Recovery Environment to troubleshoot and repair startup issues in Windows http://support.microsoft.com/kb/927392
Windows 2003 R2 (Windows XP, Windows 2003)
Again, we’re off to fix the boot path. Things are a bit different in Windows 2003. Same basic goal as with Windows 2008. Go find an ISO or DVD of any of the operating systems just listed in the title. Prepare to boot your VM from this media. We’re going to use the recovery console. We’ll assume you are using Windows 2003 media.
Further Information
How To Use the Recovery Console on a Windows Server 2003-Based Computer That Does Not Start http://support.microsoft.com/kb/326215
Description of the Windows XP Recovery Console for advanced users http://support.microsoft.com/kb/314058
jonjor
You find yourself with one of the following situations
1. Deployment or migration of data utilizing LAN (not SAN Transfer) is very slow in general
2. BITS is slow in one direction only: Fast from Host01 to Host02, but slow from Host02 to Host01 for example
3. Host reports in SCVMM Admin Console "Host not responding" or "Needs attention"
4. Under 'Status' of the Host the following may show "Not Responding" - Connection status - Agent Status
All of these issues can be related to networking components. Three common tasks can be performed to address this
1. Test for BITS errors
2. Verify GPO settings
3. Correct vendor specific and Windows system settings for ‘Task Offloading’ (This item will likely have the greatest effect)
Additional Items that just make sense
Verify all network settings on all involved SCVMM and Hyper-V systems. Set the network speed on the NICs and switches. Do not leave as auto negotiate. Also, remove all NIC teaming software. Network Card drivers currently do not always play nice with virtualization technologies. (Uninstall the teaming software. Disabling will not prevent drivers from loading at startup). If you cannot remove your teaming software at this time, at least make sure the namespace is available by typing ‘wmic nic’ at an elevated command prompt. If you get a screen full of data, you may be ok. If you get any kind of error, yank teaming software now and reboot.
1 - BITS Errors Determine if BITS (Background Intelligent Transfer Service) is encountering errors. Attempt a P2V/Migration/Deployment transfer with SCVMM. While the transfer is occurring between servers, run the following commands on both servers: Bitsadmin /list /allusers /verbose >bitsadmin.txt Example BITS output below shows how long the transfer lasted (MODIFICATION TIME minus CREATED TIME). Retry delay shows that there were no errors. This is a clean run. If there are errors review the system and application event logs for errors that are BITS related. Involve your network team as well for a trace. Example output…
BITSADMIN version 1.0 [ 5.1.2600.0 ] BITS administration utility. (C) Copyright 2000-2001 Microsoft Corp. GUID: {BA568D81-B234-47F2-9BA3-686743F89794} DISPLAY: https://cotoso.com:443/8272f226d8b8cd818406b28de9b6ad0f012b9a55/C:A5cProgramDataA5cM icrosoftA5cWindowsA5cHyperVA5calbtest1A5cvmguest.iso/E:A5cVirtualMachinesA5calbtest 1A5cvmguest.iso TYPE: UNKNOWN STATE: TRANSFERRED OWNER: NT AUTHORITY\SYSTEM PRIORITY: FOREGROUND FILES: 1 / 1 BYTES: 42948608 / 42948608 CREATION TIME: 12/3/2008 9:04:48 AM MODIFICATION TIME: 12/3/2008 9:16:44 AM COMPLETION TIME: 12/3/2008 9:16:44 AM NOTIFY INTERFACE: UNREGISTERED NOTIFICATION FLAGS: 3 RETRY DELAY: 60 NO PROGRESS TIMEOUT: 0 ERROR COUNT: 0 PROXY USAGE: NO_PROXY PROXY LIST: NULL PROXY BYPASS LIST: NULL DESCRIPTION: VMM LAN Transfer Job JOB FILES: 42948608 / 42948608 WORKING https://contoso.com:443/8272f226d8b8cd818406b28de9b6ad0f012b9a55/C:A5cProgramDataA5c MicrosoftA5cWindowsA5cHyperVA5calbtest1A5cvmguest.iso/E:A5cVirtualMachinesA5calbtes t1A5cvmguest.iso -> E:\VirtualMachines\albtest1\vmguest.iso
2 - Verify GPO settings By default, BITS transfers are wide open, not throttled down. Follow the MDSN article and look for the following settings in case they have been changed from default values. - Any setting with 'Peercache' in the name is not relevant - The rest of the settings should be set to 'Not Configured' or 'Disabled' to ensure that BITS is not being throttled at all. 'Maximum network bandwidth for BITS background transfers' is most important to be set to 'Not Configured' or 'Disabled'
BITS uses the following Group Policies to configure BITS http://msdn.microsoft.com/en-us/library/aa362844(VS.85).aspx
The group policies for BITS are located in the registry here…
HKLM\Software\Policies\Microsoft\Windows\BITS
(Note that only those policies that are configured are listed in the registry.)REMEMBER: Run ‘gpupdate /force’ following any changes from an elevated command prompt
3 - Disable Task Offloading This work can be done easily on a non-Core server by disabling all properties on the 'Advanced' tab of all NICs. You should then follow the manual directions below to verify the rest of the Offload related settings for the NICs, and to disable this feature in Windows. If working with a core server you may want to connect via remote registry and make these changes. This MDSN article lists all values available.
Using Registry Values to Enable and Disable Task Offloading http://msdn.microsoft.com/en-us/library/aa938424.aspx
All values should be set to '0' EXCEPT for the last one which is related to IPSEC, and thus Kerberos. Leave this one alone. 'HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Ipsec\EnabledOffload'
A. Locate all physical NICs in the registry under: 'HKLM\System\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}' B. There will be folders with four digits, starting with '0000'. Locate the ones that show the physical NIC names on the right. Look for the 'DriverDesc' value on the right; this should have the name of a NIC such as 'HP NC360T PCIe Gigabit Server Adapter.' For each of these, make the changes below. C. Disable All Vendor specific Offloading Set values for any entries below that include the word 'Offload' to '0' (Disabled) *FlowControl
No description available
*IPChecksumOffloadIPv4 Describes whether the device enabled or disabled the calculation of IPv4 checksums. *TCPChecksumOffloadIPv4 Describes whether the device enabled or disabled the calculation of TCP Checksum over IPv4 packets. *TCPChecksumOffloadIPv6 Describes whether the device enabled or disabled the calculation of TCP checksum over IPv6 packets. *UDPChecksumOffloadIPv4 Describes whether the device enabled or disabled the calculation of UDP Checksum over IPv4 packets. *UDPChecksumOffloadIPv6 Describes whether the device enabled or disabled the calculation of UDP Checksum over IPv6 packets. *LsoV1IPv4 Describes whether the device enabled or disabled the segmentation of large TCP packets over IPv4 for large send offload version 1 (LSOv1). *LsoV2IPv4 Describes whether the device enabled or disabled the segmentation of large TCP packets over IPv4 for large send offload version 2 (LSOv2). *LsoV2IPv6 Describes whether the device enabled or disabled the segmentation of large TCP packets over IPv6 for large send offload version 2 (LSOv2). *IPsecOffloadV1IPv4 Describes whether the device enabled or disabled the calculation of IPsec headers over IPv4. *IPsecOffloadV2 Describes whether the device enabled or disabled IPsec offload version 2 (IPsecOV2). IPsecOV2 provides support for additional crypto-algorithms, IPv6, and co-existence with large send offload version 2 (LSOv2). *IPsecOffloadV2IPv4 Describes whether the device enabled or disabled IPsecOV2 for IPv4 only. *RSS Receive side scaling *TCPUDPChecksumOffloadIPv4 Describes whether the device enabled or disabled the calculation of TCP or UDP checksum over IPv4. *TCPUDPChecksumOffloadIPv6 Describes whether the device enabled or disabled the calculation of TCP or UDP checksum over IPv6. D. Disable Offloading in Windows. Use the following registry values to enable or disable task offloading for the TCP/IP protocol: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\TCPIP\Parameters\DisableTaskOffload
Setting this DWORD value to ‘1’ disables all of the task offloads from the TCP/IP transport. Setting this value to zero enables all of the task offloads. Related Links Network Issues with Windows Server 2008 RDP and VS/Hyper-V on Dell Servers http://www.petri.co.il/network-issues-with-windows-server-2008-rdp-on-dell-servers.htm
Templates save time! Templates make multiple custom deployments easy! Learn to use Templates!
So, essentially I have marked up two great TechNet articles on creating virtual machines from templates. This sounds a bit backwards, but these articles provide all the information needed to Create A Template. I have pointed out important points and added comments where a newbie may easily go astray. Consider this a ‘Best Practices’ for simply creating a usable template. As you learn to master this process you may find yourself branching out into greater and greater customizations. Note that there are TWO DOCUMENTS BELOW.
Having trouble reading the documents below? Links available for direct download: Doc1 Doc2
Annotated for Newbies! [Comments in RED are mine.] Items in BOLD ITALICS are emphasis I added. My comments are not corrections to the document, but instead should help you understand better how to create Templates.
Creating Virtual Machines from a Template
Updated: November 5, 2009
Applies To: Virtual Machine Manager 2008, Virtual Machine Manager 2008 R2
http://technet.microsoft.com/en-us/library/cc764306.aspx
A virtual machine template is a library resource that consists of a hardware profile, a virtual hard disk, and an optional guest operating system profile. Templates provide a standardized group of hardware and software settings that you can use to create multiple new virtual machines configured with those settings. VMM supports:
Note
VMM 2008 R2 supports customization of Windows Server 2008 operating systems on virtual machines that are deployed on ESX Server hosts managed by VirtualCenter 2.5 Update 4.
A virtual machine template consists of the following parts: [These are the three items required. Remember them.]
Creating a Template
The following table describes the different ways of creating templates.
Template Type
Templates created from an existing virtual hard disk
[This is the hard way. You run Sysprep with no customizations then save the VHD to the Library. Use the third method below instead.]
To create a virtual machine template from an existing virtual hard disk, prepare the source virtual hard disk, which has the operating system installed, by removing computer identity information. With Windows operating systems, for example, you can prepare the virtual hard disk with the Sysprep tool. Add the source virtual hard disk file to the Library and complete the New Template Wizard. For more information see How to Create a Template from a Virtual Hard Disk (http://go.microsoft.com/fwlink/?LinkID=162949).
You can also create a template from an existing VHD that is not sysprepped by using a non-customized template.
Templates imported from VMware
After you add a VMware VirtualCenter server to VMM, use the Import templates action in Administration view to import your VMware templates to the Virtual Machine Manager library so that you can use the templates in VMM. For more information, see How to Import VMware Templates.
To successfully import a VMware template, the VMM library server must be able to resolve the ESX Server.
Templates created from an existing deployed virtual machine
[This is the method of choice. Create a VM the way you like it, then shut it down. Tell SCVMM to turn this VM into a Template so you can deploy copies of this VM.]
[NOTE:
Make a copy of the great VM before you have SCVMM turn it into a Template. Why? Just in case you want to make a change to it or otherwise and make another template. Making a copy of a VM is called CLONING. Right click the VM, Select 'Clone' and make a copy running on a Host, not stored in the Library.]
When you create a template from an existing virtual machine, consider the following:
· The virtual machine that you use as a source to create a template must be a virtual machine that is deployed on a host (not stored in the library).
· The source virtual machine becomes the new template and is therefore no longer available as a virtual machine after the New Template Wizard completes.
· If the source virtual machine contains checkpoints, you must:
1. Delete all checkpoints from the virtual machine in the VMM Administrator Console
2. Stop or do a Save State on the virtual machine
3. Open the Hyper-V Manager on the host and check the status of the merge operation for the virtual machine
4. After the merge process is complete, create the template within the VMM Administrator Console
Caution
You cannot avoid destroying the virtual machine if you use the virtual machine to create a template. However, before you run the New Template Wizard, you can first create an identical copy of the source virtual machine by using the Clone virtual machine action in the Administrator Console in the Actions pane in Virtual Machines view.
For more information, see How to Create a Template from a Virtual Machine (http://go.microsoft.com/fwlink/?LinkID=162950).
Templates created for use by self-service users
[We will ignore this part of the article as we are not interested in this right now.]
When you create a self-service user role (to enable a user or group of users to create or manage their own virtual machines), you can optionally specify one or more templates to enable users to perform the following tasks:
· All self-service users can modify the computer name on the guest operating system profile on a template.
· Users to whom you grant appropriate privileges can also modify the Administrator password and Product Key number on the guest operating system profile on a template.
Self-service users cannot modify any settings on the hardware profile on a template.
For more information about self-service user roles, see About Virtual Machine Self-Service and Role-Based Security in VMM (http://go.microsoft.com/fwlink/?LinkId=119337).
Non-customized templates
[Do this on your own. I do not recommend this method.]
Non-customized templates do not have an operating system profile attached and can be used for operating systems that you cannot sysprep. For example, you can create a virtual machine for Linux from a template, but the customization must be done by the user. When creating a template from VHD or from an existing virtual machine, in the guest Operating System Profile selection page, choose Customization Not Required.
Creating a Virtual Machine from a Template [How to use the great Template you just created]
When you start the New Virtual Machine Wizard and select a template from the library, the virtual machine settings will be set to those specified in the template. You can override the settings if you choose. With a customized template, VMM will build the virtual machine per your virtual hardware profile and apply the sysprep settings. [These are the settings you entered in the OS Profile to automate VM deployment entirely.]
If you want to want to use scripting to build several virtual machines from a template and place them in the library, start by creating a maintenance host group with one or more hosts. Have your script scope placement to that host group and once customization completes, you can script the saving of the resulting virtual machine into your library.
Requirements
If you create a new virtual machine from a template, you cannot store the virtual machine in the library but must place it on a host. That is because the customization step cannot be completed offline.
For more information, see How to Create a Virtual Machine from a Template (http://go.microsoft.com/fwlink/?LinkId=163808).
How to Create a Virtual Machine from a Template
Updated: August 14, 2009
http://technet.microsoft.com/en-us/library/cc917940.aspx
This topic describes how to create a virtual machine from a virtual machine template.
Considerations
Optionally, you can use a non-customized template without an operating system profile.
Procedure
To create a virtual machine from a template:
1. In the Virtual Machine Manager Administrator Console, in Virtual Machines view, click New virtual machine.
2. Complete the New Virtual Machine Wizard.
Wizard Page
Action
Virtual Machine Identity
Configure the following options:
· Virtual machine name (required). Type a unique name for the virtual machine.
· Owner (required). The owner must have a domain account in Active Directory.
· Description (optional). Type a description for the new virtual machine.
Configure Hardware
To configure additional hardware for the virtual machine, use the following procedures:
· Startup Order —Select the order of devices to start the operating system.
· CPU Requirements —Specify processor requirements for the virtual machine.
· Memory —Specify the amount of memory to allocate to the virtual machine
· Floppy Drive —Configure the virtual floppy drive to read a physical floppy disk on the host or to read a virtual floppy disk file stored in the library.
· DVD or CD Drive —Add a virtual DVD or CD drive to an IDE bus.
· Virtual Hard Disk —Add a virtual hard disk to an IDE device or a SCSI adapter.
· Network Adapters —Configure one or more virtual network adapters for a virtual machine.
· Priority and Availability —Configure the virtual machine's priority for CPU resources on the host. Configure the virtual machine to be highly available.
Guest Operating System
(for customizable templates only)
[Set the 'Operating System' first. Everything else will work a bit better this way.]
Configure identity information, administrative credentials, and user access to computers based on the template.
· General Settings: Enter the following settings:
· Identity Information: Specify a computer name. To generate a computer name randomly for virtual machines based on the template, enter an asterisk in the Computer name field.
· Admin Password: Specify the local administrator password for the virtual machine. If virtual machines created with this template will not be in a domain, users must use this password to gain access to the local computer.
To prompt for a password when the user creates a virtual machine with the template, enter an asterisk (*) in the Admin Password field. If you leave the field blank, virtual machine creation fails. [Don't want to be prompted for a password? Want the Template to be deployed successfully? Fill in a password here! Do not leave blank or use an '*' asterisk.]
· Product key: If you want the template to provide a product key for virtual machines, enter a product key in the Product key field. To require users to provide their own product key when they create a virtual machine, leave the field blank. [Windows Vista/Windows 2008 and up: Use this link to enter a Sysprep product key to allow the full deployment to be automated. Once the new VM is up and running you can enter your correct KMS or MAK key.
Configuring KMS Clients
http://technet.microsoft.com/en-us/library/ff793406.aspx]
· Time Zone: Select the appropriate option from the Time Zone list, or accept the default time zone.
· Operating System: Select the operating system that will run on the virtual machine. This selection does not install an operating system. [Set this first! Trust me!]
· Networking: Configure settings to determine network access for virtual machines:
· Domain/Workgroup: If you want virtual machines that are created from this template to be in a domain, click Domain. Then specify a user account that will be used to add the computer to the domain at first log on. If the virtual machines that are created from this template will not be in a domain, click Workgroup, and then enter the name of the workgroup. [New to Templates? Having difficulty? Choose Workgroup! See if this works. Joining a domain can sometimes be a tricky process. Make sure everything else is working first.]
· Scripts: Use the options under Scripts to provide additional settings for Sysprep: [If you are a Sysprep veteran and know all there is to know about Sysprep please read this section. Otherwise, skip this! Make no changes in the Template.]
· Answer File: You can attach a Sysprep file (for Windows XP, Windows Server 2000, or Windows Server 2003) or an Unattend.xml file (for Windows Vista or Windows Server 2008) to the guest operating system profile. The answer file script must be stored on a library share. To select an answer file, click Browse to open the Select sysprep.inf script dialog box, and then select the file. To add settings, in the Answer file field, specify the Sysprep or Unattend file to run. The settings in the answer file will be appended to those from the wizard.
· [GUIRunOnce] Commands: If you want to specify one or more commands to run the first time a user logs on to a virtual machine, type a command that you want to add in the Command to add field, and then click Add. This action adds the command to the [GuiRunOnce] section of the Sysprep file.
To enable environment variable expansion when you create a new virtual machine from a template, you must precede GuiRunOnce commands with cmd.exe /c.
Select Destination
When creating a virtual machine from a template, you must choose the Place the virtual machine on a host option.
Select Host
Review the rating for each host to determine the most suitable host on which to deploy this virtual machine.
If many hosts are listed, you can use the Host group, Look for, or Group by fields to display a smaller set of potential hosts.
All hosts that are available for placement are given a rating of 0-5 stars based on their suitability to host the virtual machine. The host ratings are based on the virtual machine's hardware and resource requirements and expected resource usage. They are also based on placement settings that you can customize for VMM or for individual virtual machine deployments. The ratings are recommendations. You can select any host that has the required disk space and memory available. For more information about how VMM rates hosts, see How Virtual Machine Manager Rates Hosts.
Important
In VMM 2008 R2, for hosts that are running Windows Server 2008 R2 or for ESX Server hosts, the ratings that first appear on the Select Host wizard page are based on a preliminary evaluation by VMM. To see the host rating based on a more thorough evaluation, you must select the host by clicking it.
1. To see the placement settings that VMM used to rate the hosts, and optionally to change those settings, click Customize Ratings.
2. To view additional information about a host rating, select the host in the list, and then use the tabs in this section to view the following information:
· Details -- This tab displays the status of the host and lists the virtual machines that are currently deployed on it.
· Ratings Explanation -- If a host receives a zero rating, this tab lists the conditions that caused the rating.
· SAN Explanation -- If a SAN transfer cannot be used to move the virtual machine's files to the host, this tab lists the conditions that prevent a SAN transfer.
If a host has network optimization enabled, a green arrow appears in the Network Optimization column. VMM 2008 R2 lets you take advantage of network optimization capabilities that are available on Hyper-V hosts that are running Windows Server 2008 R2. For information about network optimization and the hardware that supports it, see the Windows Server 2008 R2 documentation. After a virtual machine is deployed, this feature is displayed only for virtual machines that are deployed on a host that is running Windows Server 2008 R2. If no host in the list has sufficient disk space to host the new virtual machine, click Previous to return to the Volume Configuration page and either remove or reduce the size of one or more volumes. You can also override the default placement options that VMM uses to calculate the host ratings. Any changes that you make apply only for this virtual machine deployment. For more information about how VMM rates hosts, see How Virtual Machine Manager Rates Hosts.
Select Path
Accept the default virtual machine path on the host to store the files associated with this virtual machine. You can also click the down arrow to select a different path, or click Browse to specify a different path on the host. You can also choose the following options:
· If you selected a path other than an existing default path and want to store other virtual machines on that path, select the Add this path to the list of host default paths check box. For information about how to configure default virtual machine paths, see How to Set Placement Options for a Host.
· If you chose Store the virtual machine in the library, specify the library server that will store the virtual machine, and then select a path on the available library shares to store the virtual machine's files.
The wizard will continue with the Summary page.
Select Networks
Attach the physical network adapters to either Not Connected or to any of the virtual networks on the selected host.
Additional Properties
On the Additional Properties page, accept the default settings, or modify these settings as described in How to Configure Automatic Start and Stop Actions for a Virtual Machine
Summary
Review the configuration settings. To change settings, click Previous.
Optionally, click View Script to view (and copy) the Windows PowerShell script that runs this wizard and performs the conversion. All administrative tasks in VMM can be scripted or performed at the command line. For more information, see Windows PowerShell Scripting in Virtual Machine Manager 2008 (http://go.microsoft.com/fwlink/?LinkId=110911).
Optionally, select the Start the virtual machine after deploying it on the host check box.
In Jobs view, monitor the progress of job as the new virtual machine is created and confirm that the virtual machine is created successfully. If the job fails, review the error message at the bottom of the Jobs pane for information about the cause of the failure and the recommended action to resolve the issue.
See Also
Concepts
Creating New Virtual Machines
…
It’s not often I get excited about Hotfixes… ok, that may not be entirely true, but I am very excited about these two. Why? They address WMI issues.
‘Why, Jonathan, would I care about WMI? That’s one of those obscure process things that I’ve never even seen…’, you say. ‘You’re right!’ I say, over-enthusiastically. ‘But WMI is the basis for most of the actions SCVMM takes on Hosts, whether it be refreshes or migrations.’ ‘Wow! That *is* exciting!’, you say… mockingly.
‘Why, Jonathan, would I care about WMI? That’s one of those obscure process things that I’ve never even seen…’, you say.
‘You’re right!’ I say, over-enthusiastically. ‘But WMI is the basis for most of the actions SCVMM takes on Hosts, whether it be refreshes or migrations.’
‘Wow! That *is* exciting!’, you say… mockingly.
You get the point… Direct link to the updates at bottom. Read on for why this matters, and when it matters. (Hint: Always!)
I came across these updates when working a customer case that involved SCVMM Hosts with SCOM (OpsMgr) Agents installed as well. Bottom line is the WMI service was taking a pounding and crashing occasionally. No WMI, no communication with SCVMM, and SCOM throws alerts. The WMI service will restart itself, but in the meantime anything depending on it is out of luck.
WMI or WinRM?
You can’t discuss SCVMM without mentioning WinRM at least once… Prior to hotfixes being installed, WinRM settings that are known to ease intermittent connectivity issues were implemented. While there is nothing inherently wrong with making these changes, install the hotfixes below first and see if the issue is resolved first. The less registry tweaking the better.
Specifically, we saw Errors and hex codes in refresh jobs. The details may state WinRM is experiencing issues, but it is only reporting back results on the last action it performed. WMI errors bubble up through WinRM reporting often, so WMI was the real source in some instances.
WinRM Issues
Either of the below messages indicate there is likely a WinRM issue to address. In this case, follow the steps to update the registry on all Hosts. Make sure you install the updates further down as well!
Error (2912) An internal error has occurred trying to contact an agent on the server.contoso.com server. (No more threads can be created in the system (0x800700A4)) Recommended Action Ensure the agent is installed and running. Ensure the WS-Management service is installed and running, then restart the agent.
Error (2912) An internal error has occurred trying to contact an agent on the server.contoso.com server. (No more threads can be created in the system (0x800700A4))
Recommended Action Ensure the agent is installed and running. Ensure the WS-Management service is installed and running, then restart the agent.
WinRM Resolution Steps
MaxConcurrentOperationsPerUser (Increase threads)
In Windows Server 2008 R2, the MaxConcurrentOperations for WinRM was deprecated. However it was replaced with MaxConcurrentOperationsPerUser, which we can modify. Let also raise the value for MaxConcurrentOperationsPerUser using the following command. The default is '200' and we will double that to '400'.
Open an elevated command prompt on each Host to execute this and all commands below.
winrm set winrm/config/Service @{MaxConcurrentOperationsPerUser="400"}
Start with the above value. This can be increased over the next week or so if the issue reoccurs. Once this value has been set, you’ll need to stop/restart WinRM and the VMMAgent.
net stop winrm net start winrm net start vmmagent
WinRM Timeout Use the following command to increase the default value for WinRM timeout.
winrm set winrm/config @{MaxTimeoutms = "1800000"}
Start with the above value, and then we can increase it over the next week or so if the issue reoccurs. Once this value has been set, you’ll need to stop/restart WinRM and the VMMAgent.
Reference Installation and Configuration for Windows Remote Management http://msdn.microsoft.com/en-us/library/aa384372(VS.85).aspx
WinRM or WMI Issues
Install all previous updates and the two new ones below as indicated for your environment.
Error (2916) VMM is unable to complete the request. The connection to the agent server.contoso.com was lost. (Unknown error (0x80338012))
Recommended Action Ensure that the WS-Management service and the agent are installed and running and that a firewall is not blocking HTTP traffic. If the error persists, reboot server.contoso.com and then try the operation again. Error (2927) A Hardware Management error has occurred trying to contact server server.contoso.com. (Unknown error (0x803381b9)) Recommended Action Check that WinRM is installed and running on server server.contoso.com. For more information use the command "winrm helpmsg hresult".
Recommended Action Ensure that the WS-Management service and the agent are installed and running and that a firewall is not blocking HTTP traffic. If the error persists, reboot server.contoso.com and then try the operation again.
Error (2927) A Hardware Management error has occurred trying to contact server server.contoso.com. (Unknown error (0x803381b9))
Recommended Action Check that WinRM is installed and running on server server.contoso.com. For more information use the command "winrm helpmsg hresult".
What Do the Hotfixes Address?
1. This hotfix specifically addresses this issue (found in the Application log), along with general memory leaks.
The "Win32_Service" WMI class leaks memory in Windows Server 2008 R2 and in Windows 7 http://support.microsoft.com/kb/981314
Example Application log error:
Faulting application name: wmiprvse.exe, version: 6.1.7600.16385 Symptoms Wmiprvse.exe crashing randomly on Windows 2008 R2 server. This continues even after increasing memory quota for wmiprvse.exe Event: Source: Application Error Event ID: 1000 Description: Faulting application name: wmiprvse.exe, version: 6.1.7600.16385, time stamp: 0x4a5bc794
Faulting application name: wmiprvse.exe, version: 6.1.7600.16385
Symptoms
Wmiprvse.exe crashing randomly on Windows 2008 R2 server.
This continues even after increasing memory quota for wmiprvse.exe
Event:
Source: Application Error
Event ID: 1000
Description:
Faulting application name: wmiprvse.exe, version: 6.1.7600.16385, time stamp: 0x4a5bc794
2. This hotfix addresses SCVMM Failover Cluster refresh times, among other things.
An application or service that queries information about a failover cluster by using the WMI provider may experience low performance or a time-out exception http://support.microsoft.com/?id=974930
Get your updates!
Now Supports SCVMM 2008 R2 SP1 and VMM 2012!
WHAT IS VMMTRACE?
VMMTrace and VMMTraceALT capture detailed information on systems participating in a reproducible VMM problem. This is a verbose data capture and should be run for a short period of time while the problem is reproduced. VMMTrace has been used by IT professionals in the user community and at Microsoft for years.
Why are there two versions of this tool?!?
VMMTrace uses DebugView from Sysinternals to capture VMM data and produce readable text. The downside to the tool is that it must restart the VMMAgent and VMMService services prior to each trace. This is usually not a problem, but if you have many jobs running this will stop them and they will have to be restarted manually. VMMTraceALT does not require these two services to be restarted and thus may have less impact if you are continuously running jobs. Both tools produce the same output and are nearly identical in use.
WHEN?
VMMTrace and VMMTraceALT are a solid last step. When you’ve made it through the items below and are still are no closer to resolution you should consider capturing a trace.
Review Application and System Event logs on the SCVMM server and Hosts involved in the problem
Install all Updates and verify using the VMMUpdate utility
Verify required basics again:
DNS resolution in all directions
Account running VMMService is located in ‘Administrators’ and ‘Virtual Machine Manager Servers’ groups on SCVMM server and Hosts
Hyper-V, Cluster and so on are healthy
HOW?
Download the tool below by clicking a big GREEN BUTTON. Then identify your scenario and run the tool on the right systems at the same time. Use an elevated command prompt. Generally, the trace must be run on the SCVMM server, in addition to systems as indicated below.
WHICH SYSTEMS DO I RUN THE TRACE ON? Issue 1: Console crash or unable to connect Collect traces from both the computer where you run Admin Console and the SCVMM Server Issue 2: Add Hosts issues Collect traces from the SCVMM Server and the Host system Issue 3: Host status or VM issue Collect traces from both the SCVMM Server and the Host in question Issue 4: Cluster issues Collect traces from a single Cluster Node and the SCVMM Server
WHICH SYSTEMS DO I RUN THE TRACE ON?
Issue 1: Console crash or unable to connect Collect traces from both the computer where you run Admin Console and the SCVMM Server
Issue 2: Add Hosts issues Collect traces from the SCVMM Server and the Host system
Issue 3: Host status or VM issue Collect traces from both the SCVMM Server and the Host in question
Issue 4: Cluster issues Collect traces from a single Cluster Node and the SCVMM Server
Download VMMTrace Download VMMTraceALT
Quick link: http://tiny.cc/vmmtrace
PowerShell. You keep meaning to learn it. You just need a push. Maybe a CubeNote (Cheat Sheet) would help.
Think about this… every single command you perform in the SCVMM Admin Console can be performed in PowerShell. There isn’t a single thing in the Admin Console that is not available by interactive command or script. In fact, there are many things that can be done only in PowerShell. Further, when scripts (.ps1 files) are saved to the Library they are available to run immediately by right clicking them and selecting ‘Run Script.’ I published a script last year that determines which network settings on which Host are causing your virtual machines to show up as ‘Unsupported Cluster Configuration.’ Cool huh? That article is here. Below I’ve right clicked the script to show other available options.
So what’s a CubeNote?
Basically, a quick reference of all SCVMM specific commands. Sure, you could type the line below, but then you’d have to sort it all out yourself. I’ve formatted the commands to fit on a single sheet, organized by function. I glance at it all the time to find the right command. The sheet is organized by command type, so find the action (verb) you are interested in, then locate the object you want to act on (noun). Possible actions are: Add, Get, Move, New, Refresh, Set, Update, and various others.
Tip: Make sure you open a PowerShell console that has the SCVMM cmdlets already loaded by clicking the PowerShell button shown below. Open the Admin Console on the SCVMM Server itself to save yourself some headache. (PowerShell guru’s do what you like…)
Get-Command -PSSnapIn "microsoft.systemcenter.virtualmachinemanager" | write-outfile c:\temp\SCVMM_Commands.txt
PowerShell Resources
If you’re a complete newb to PowerShell, I’ve got that covered too. Links below provide the best ramp and reference material online. There are great books too. Check some of the Microsoft Press books in particular.
TechNet Script Center
Hey, Scripting Guy! BLOG
SCVMM PowerShell Resources
SCVMM specific URLs with plenty of examples ready to run now.
SCVMM Scripting on TechNet – EXAMPLES!
Virtual Machine Manager 2008 R2 Scripting Guide (Word Doc)
System Center Virtual Machine Manager 2008 R2 Cmdlet Reference (Word Doc)
Troubleshooting VMM Cmdlet Issues
SCVMM CubeNote Downloads
...
When the P2V process fails there can be a number of issues to identify. A number of situations are discussed below. The machine being virtualized is referred to as the Source machine. The location where the virtualized machine is being copied is the Destination Host. Use this article as your main reference for all P2V issues P2V: Converting Physical Computers to Virtual Machines in VMM http://technet.microsoft.com/en-us/library/cc764232.aspx
Requirements for the Source Machine To perform a P2V conversion, your source computer: - Must have at least 512 MB of RAM. - Must have an Advanced Configuration and Power Interface (ACPI) BIOS - Vista WinPE will not install on a non-ACPI BIOS. - Must be accessible by VMM and by the host computer. - Cannot be in a perimeter network (also known as a DMZ, demilitarized zone, and screened subnet) where the firewalls or IPsec settings prohibit communication. - Must contain one of the following supported operating systems: - Windows Server 2008 (32-bit) - Windows Server 2008 (64-bit) - Windows Server 2003 (32-bit) SP1 or later - Windows Server 2003 (64-bit) SP1 or later - Windows 2000 Server SP4 or later (Offline P2V only) - Windows 2000 Advanced Server SP4 or later (Offline P2V only) - Windows XP Professional (32-bit) SP2 or later - Windows XP Professional (64-bit) SP2 or later - Windows Vista (32-bit) SP1 or later - Windows Vista (64-bit) SP1 or later Errors and Resolutions - Third party applications can lead to failures - Disable all antivirus using MSCONFIG and reboot - Disable all monitoring software such as Insight Manager (optional) - Disable IIS on the source machine if running Network Related - Source machine Make sure that when rebooted into WinPE there is an IP address. There is a command prompt on the console. Type 'ipconfig /all' and verify with the customer that all IP settings are correct and match that of the SCVMM Server and Destination Host
If the IP starts with 169.254.x.x this is an auto-configed IP. This means there is no DHCP serve to provide an IP address or there are problems with the NIC drivers. It is preferable that the source and destination host are on the same subnet. If not test all routing by pinging… - Ping the SCVMM and Host SCVMM servers by DNS name, not IP. If they do not resolve, correct DNS - Ping the IP address of the default gateway and DNS servers. If they do not reply, correct IP settings - If IP information needs to be set manually in WinPE, at a command prompt type: ‘netsh interface ipv4 set address "Local Area Connection" static 10.241.0.7 255.255.0.0 10.241.0.2 1’ Where: ‘netsh interface ipv4 set address "Local Area Connection" static %ipaddr% %subnet% %dns server% 1’ Network Related - Source and SCVMM machines On Windows 2003 machines follow the 'Workaround' in this article (disregard the fact that it is a SQL KB. It is correct). This will disable TCP Offloading in Windows 2003 SP2, which can lead to a number of networking issues.
942861 Error message when an application connects to SQL Server on a server that is running Windows Server 2003: "General Network error," "Communication link failure," or "A transport-level error" http://support.microsoft.com/default.aspx?scid=kb;EN-US;942861
WMI and 'Access Denied' errors Follow the article on this site ‘WMI Errors and SCVMM’
During 'Scan System' operation Example Error VMM does not have appropriate permissions to access the resource on the <destination_computer> server. Ensure that Virtual Machine Manager has the appropriate rights to perform this action. ID: 2910 Details: Access is denied (0x80070005) Resolution #1 - Make sure the computer object for the SCVMM server is in the Administrators group on the source machine - Make sure the account specified in the SCVMM Admin Console is a member of the Administrators group on the source machine. - SCVMM 2008 - If the machine is in a workgroup, make sure the Domain specified along with the Account and Password is actually the name of the source machine, not the domain of the SCVMM server Resolution #2 Ensure that the following services are not set to 'Disabled,' and that you can start them successfully on the source machine - WMI - Background Intelligent Transfer Service (BITS) - HTTP SSL - RPC Resolution #3 Enable auditing of object access to determine if the account specified in SCVMM or the SCVMM computer object are failing to access the source machine as required. Look for 'Failure' in the security log once configured and tested. - Follow the first section of the article below 'For the local computer' 325898 How to set up and manage operation-based auditing for Windows Server 2003, Enterprise Edition http://support.microsoft.com/default.aspx?scid=kb;EN-US;325898
- Record any settings under 'Audit Policy' that are already configured - Change configure all Policies to record Success and Failure - If any Policies have an icon of gray servers instead of blue 0's and 1's you will not be able to make this change and must involve the customer's Group Policy administrator - Back at a command prompt type 'gpupdate /force' - Try the scan again, then check the Security log for ’Failure’ audits - Set all Policies back to the state you recorded them as before making changes
Resolution #4 Make sure the DCOM (DCOMLaunch) service is set to Automatic and running. (Thanks to Pramod for this tip)
Non-ACPI HAL If the source machine has a non ACPI HAL P2V cannot be performed. P2V: Converting Physical Computers to Virtual Machines in VMM http://technet.microsoft.com/en-us/library/cc764232.aspx
309283 HAL options after Windows XP or Windows Server 2003 Setup http://support.microsoft.com/default.aspx?scid=kb;EN-US;309283
249694 How to move a Windows installation to different hardware http://support.microsoft.com/default.aspx?scid=kb;EN-US;249694
Technorati Tags: microsoft,scvmm,hyper-v,virtual,virtualization,windows,P2V
This tool has been deprecated. Please see the new tool!
Click here to use VMMTrace
So you’ve run into a problem with VMM. Maybe your Hosts have lost connectivity with the SCVMM Server. Or, P2V fails for a certain machine every time. If you’ve searched many TechNet blogs or forums for answers you have probably come to one conclusion: you’re going to have to run a trace to collect the required information.
How do I capture a trace? Armed with DbgView (available from Sysinternals.com) and a number of registry modifications, followed by service restarts on each involved machine, you’re ready to begin. Problem is, configuring a server for tracing is time consuming, tedious, and prone to human error. I’ve worked to alleviate your pain.
Easy? Seriously?
True. You need two files on each server you wish to run the trace on. The process is automated, requires very little input, and works. I’ll skip how it works other than to say it performs the work in Cheng’s article for you. Manual steps are below. If you would like to download a zip file with everything ready click the button below.
Instructions
1. DOWNLOAD SCTrace from the 'Download' button above.
2. SAVE ‘SCTrace_x.x.zip to a directory near the root of C: such as ‘C:\Temp’. (Remaining instructions assume this is where you saved the file...)
3. EXTRACT 'sctrace.zip'. By default this will create a folder named 'SCTrace_x.x' in 'C:\Temp'
4. From an ELEVATED command prompt change to the directory where the files are extracted (C:\Temp\SCTrace_x.x) and type sctrace.cmd
5. FOLLOW the prompts in the COMMAND WINDOW at all times
Tips for Successful Tracing
Follow the instructions in the command prompt. Remember that the goal is to capture the issue while is is reproduced. If the problem is between a Host and the SCVMM Server, run this same script on both machines at the SAME TIME. We need both ends of the conversation to figure out what is going on. The script will provide an opportunity to get things kicked off on all servers then start all the traces at once.
Disclaimer
Every effort has been made to accommodate various environments, while at the same time keeping the length of the script to a minimum. This script may not work if you have a locked down system. This script is provided as is. That said, I would love to hear what you think of it. Corrections appreciated as well. Check back for version updates.
:: START SCRIPT COPY HERE
:: sctrace.cmd :: v1.6
@echo off
if (%1)==(/?) goto :HELP if (%1)==(-?) goto :HELP if (%1)==(odsoff) goto :ODSOFF
:: Test Running Elevated if not exist %windir%\SCVMM_TRACE\test ( mkdir %windir%\SCVMM_TRACE\test ) If Not %ERRORLEVEL% EQU 0 ( echo Error: You must run this from an elevated command prompt Goto End )
:: Check for DbgView if not exist dbgview.exe ( cls echo DbgView is required to capture a trace. echo Please download from http://live.sysinternals.com/dbgview.exe echo and place in same directory as script. echo. echo. Goto End )
:: BIG NOTICE cls echo v1.6 echo. echo YOU MUST FOLLOW 3 STEPS TO CAPTURE A TRACE echo. echo FOLLOW THE DIRECTIONS ON THIS SCREEN AT ALL TIMES echo. echo READ CAREFULLY echo. pause
:: Verify DbgView Settings cls echo. echo STEP 1 of 3 - CONFIGURE DEBUGVIEW - STEP 1 of 3 echo. echo - DebugView will open. Select the CAPTURE menu. echo. echo - Verify 'Capture Win32' and 'Capture Global Win32' are checked. echo. echo - Exit DebugView and return to this window. echo. echo. CHOICE /C C /N /M "Press [C] to configure DbgView now." IF errorlevel 1 dbgview.exe
:: Cleanup rmdir %windir%\SCVMM_TRACE\test Start taskkill /IM debugview.exe Start taskkill /IM dbgview.exe
:Begin :: Verify Environment if not exist %windir%\SCVMM_TRACE\logs ( mkdir %windir%\SCVMM_TRACE\logs )
:: Capture Exact Time to Prevent Overwrites set hh=%time:~0,2% if "%time:~0,1%"==" " set hh=0%hh:~1,1% set yymmdd_hhmmss=%date:~12,2%%date:~4,2%%date:~7,2%_%hh%%time:~3,2%%time:~6,2%
:: Format and Remove Spaces set Filepath=%windir%\SCVMM_TRACE\logs set Filename=%Filepath%\%COMPUTERNAME%_%yymmdd_hhmmss%.log set Filename=%filename: =%
::Enable Tracing Reg Add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Tracing\Microsoft\Carmine" /v ODS /t REG_DWORD /d 00000001 /f Reg Add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Tracing\Microsoft\Carmine" /v ODSFLAGS /t REG_DWORD /d 255 /f
:: Restart Services cls net stop vmmagent net stop vmmservice
net start vmmagent net start vmmservice
:: IISRESET will NOT occur unless /IIS switch is used if (%1)==(iis) iisreset
:: Choose Systems cls echo. echo STEP 2 of 3 - STAGE OTHER SERVERS - STEP 2 of 3 echo. echo MAKE A DECISION... ONE SERVER OR MANY? echo. echo Start this trace on other involved systems now if needed. echo When all systems are sitting at STEP 2 of 3 proceed below. echo. CHOICE /C C /N /M "Press [C] to continue when all systems ready." IF errorlevel 1 Start Dbgview.exe /t /f /l %Filename%
:: All Systems GO! :STOPDBGVIEW cls echo. echo STEP 3 of 3 - TRACING NOW - STEP 3 of 3 echo. echo Trace is capturing all activity on this system now. echo Make sure all systems involved show STEP 3 of 3 then... echo REPRODUCE YOUR ISSUE NOW. echo. echo Press [F] to Finish on all systems AFTER reproducing issue echo. CHOICE /C F /N IF errorlevel 1 ( Start taskkill /IM debugview.exe Start taskkill /IM dbgview.exe cls echo Writing out log file... Please wait timeout /t 5 )
:: Disable Tracing Reg Add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Tracing\Microsoft\Carmine" /v ODS /t REG_DWORD /d 00000000 /f
:: Open Explorer Showing Trace File start %Filepath% cls echo DONE! echo. echo Provide the latest file in %FilePath% to support echo. echo.
Goto End
:HELP cls @echo Trace Options @echo. @echo From an elevated command prompt type Trace.cmd @echo Options: /?, -? This Help Menu @echo /odsoff Disable tracing @echo /iis Perform iisreset @echo. @echo. Goto End
:ODSOFF Reg Add HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Tracing\Microsoft\Carmine /v ODS /t REG_DWORD /d 00000000 /f
:END
:: STOP SCRIPT COPY HERE
CURRENT VERSION: 2.7, RELEASED 12/07/11
Windows and SCVMM SP1 updates included in scan
“Are your Hosts and SCVMM Server up to date? And, does it really matter?'” …YES!
WHAT IS VMMUPDATE?
VMMUpdate creates a report of required updates for technologies used by the SCVMM server and all Hosts.
As well as components SCVMM and other technologies leverage…
VMMUpdate should be run on the SCVMM server and all Hosts once a month.
WHY?
Be Proactive. Prevent Problems.
Doesn’t Windows Update take care of updates for me? Not necessarily. There are certain Hotfixes that need to be downloaded manually, but for the most part Windows Update is the key. Unfortunately, rules in WSUS are sometimes set up such that all updates required do not find their way to SCVMM systems. So, there are layers of complexity in keeping systems up to date.
Doesn’t Windows Update take care of updates for me?
Not necessarily. There are certain Hotfixes that need to be downloaded manually, but for the most part Windows Update is the key. Unfortunately, rules in WSUS are sometimes set up such that all updates required do not find their way to SCVMM systems. So, there are layers of complexity in keeping systems up to date.
Download the tool below by clicking the big GREEN BUTTON. Run ‘VMMUpdate.x’ from an elevated command prompt, or simply right click it and run as Administrator. Download the latest script version every few months below.
Instructions: Download, extract, right click VMMUpdate.x and run as Administrator!
Feedback
This script has been tested on many systems. That said, if you run into problems follow the directions below.
A colleague of mine has posted a great article on one cause of these errors. Turns out there are specific refreshers that can be targeted providing WinRM and SCVMM the extra time needed to complete the job. Be sure to read the entire article carefully as there are implications with upgrading to SCVMM 2008 R2. Great article Robert!
Error in SCVMM
Error (2927) A Hardware Management error has occurred trying to contact server <your host name comes here>. (Unknown error (0x80338029))
Error (2927) A Hardware Management error has occurred trying to contact server <your host name comes here>.
(Unknown error (0x80338029))
As it turned out, during refresh we did not wait long enough for a wsman response. The operation that timed out was to enumerate the SAN LUNs.
In SCVMM 2008 this timeout is 120 seconds by default. Fortunately, we can increase this timeout to a maximum of 300 seconds.
Read the entire article:
SCVMM 2008 Error (2927) A Hardware Management error has occurred trying to contact server http://blogs.msdn.com/robertvi/archive/2009/10/23/scvmm-2008-error-2927-a-hardware-management-error-has-occurred-trying-to-contact-server.aspx
There are a number of reasons a Virtual Machine (VM) can fall into a status of ‘Unsupported Cluster Configuration.’ A brief list, pulled from TechNet, shows that storage, networking, and other factors can cause this status. (Source: http://technet.microsoft.com/en-us/library/cc967323.aspx)
This article deals with the third bullet, which effectively means, ‘settings are not identical on all virtual network (VN) adapters.’ Here are the TechNet instructions. Next we’ll discuss checking these automatically.
For a virtual network to be considered common by VMM and available to highly available virtual machines on a host cluster, each virtual network in the host cluster must meet the following requirements: The virtual network name must be identical on each host in the cluster. Virtual network names are case-sensitive, so the cases of all characters must match. The host network adapters to which the virtual network is attached on each host in the cluster must have the same location. The virtual network must have the same tag on each host in the cluster. After you update the virtual network configurations on all nodes, refresh the cluster to ensure that each virtual network is detected as common. Then check the Networks tab in the host cluster properties to verify that the networks have been added to it.
For a virtual network to be considered common by VMM and available to highly available virtual machines on a host cluster, each virtual network in the host cluster must meet the following requirements:
After you update the virtual network configurations on all nodes, refresh the cluster to ensure that each virtual network is detected as common. Then check the Networks tab in the host cluster properties to verify that the networks have been added to it.
So, check the Network Name, Location and Tag for inconsistencies. Once you have done this for all VNs on each Host in the Host Cluster, corrected any inconsistencies and refreshed the Host Cluster, the VMs will change back to a healthy status. Verifying all of this can take some time, and is prone to human error as these settings are case sensitive and take into account spaces. Instead, why not run a PowerShell script that will report all settings for you? (Scroll to the bottom to download the script).
Here are the three settings that must be consistent on all nodes.
Here’s the PowerShell script we’re going to use.
The script is saved as ‘VMNicInfo.ps1’ in the VMM Library. This way, it can be run from within the Admin console. I’ve created a folder named ‘Scripts’ to place it in. Refresh the library to see it.
Now we run the script by right clicking on it and answering a few prompts. Enter ‘r’ to run the script if prompted. Next, enter the name of your Host Cluster and press Enter. (This script must be run from an Admin console running on the VMM Server. To run it from the Admin console on a different system change ‘localhost’ to the name of your VMM Server and surround it with quotes.)
You see in the image above that the Name and Location are the same. There is no entry for Tag on either VN, so they match as well. In the example below we add a value to Tag on one of the systems.
Now we run the script again and see that the output reflects this change. (If this does not work for you make sure you have refreshed the Host Cluster, in the red box). You will also notice that the VMs running on the Host Cluster change to a state of ‘Unsupported Cluster Configuration.’
Change the Tag back to its previous value (nothing in my case) and perform another refresh to see your VMs change back to a healthy state.
That’s it. I hope this clears up any questions or misconceptions you may have had. Below is the script. Be sure to copy this to Notepad as it will remove all formatting characters. Or, download the script here, then run from a VMM PowerShell prompt.
#####################################################################
function DisplayNicInfo($VMHostName)
{
$yy= get-VirtualNetwork -VMHost $VMHostName;
$yy | ForEach-object {write-host " Name " $_.Name;
write-host " Locations " $_.Locations;
write-host " Tag " $_.Tag;
}
$clusname = read-host "Host Cluster name to check"
Write-Host ""
$VMMServer = get-vmmserver -computername localhost
$Cluster = get-vmhostcluster -name $clusname
$VMHosts = get-vmhost -vmhostcluster $Cluster
$VMHosts | ForEach-object {Write-Host "VMHost: " $_.Name;
DisplayNicInfo($_.Name);
Write-Host ""}
Big thanks to Austin, who reworked the script into a thing of beauty. Go Perf! (http://blogs.technet.com/askperf)
Some new x64 systems boot from a GPT disk that contains an EFI or UEFI boot partition with an EFI BIOS. Traditionally this meant that the system was of Itanium architecture. SCVMM does not support P2V of Itanium systems as is documented in 'P2V: Requirements for Physical Source Computers' http://technet.microsoft.com/en-us/library/cc917954.aspx. There are now x64 (non-Itanium) systems that boot with EFI. These conversions will fail as well due to EFI boot structure.
Simply check Disk Management on the source machine to see if the boot disk is GPT or MBR. If it is GPT, we do not support P2V as a GPT boot drive requires an EFI or UEFI BIOS.
This deals with a simple architecture incompatibility. Let’s assume a system uses an EFI or UEFI disk to boot. This also means it is a GPT disk. We are attempting to convert this to a virtual machine so that it can run on a virtual platform. Only Itanium and some newer servers with UEFI architecture can boot EFI as it requires a special BIOS. Hyper-V, and other virtualization platforms, cannot emulate this as they have a generic BIOS based on classic x86 and x64 systems. Therefore, the system disk must be an MBR type to boot in any Windows virtualization implementation. This requirement is not isolated to Hyper-V as any Windows installation cannot boot from GPT disks unless the processor architecture is Itanium or UEFI. During initial Windows installation boot disk type is detected, EFI or MBR, and the appropriate files and registry settings are written out to disk. Windows installations are thus tied to disk type.
There are no workarounds for moving a Windows system with an EFI partition to non-EFI architecture. EFI and Itanium are in lockstep. Classic x86 and x64 cannot boot EFI, and there and is no simple switch back to MBR boot.
More Information
EFI and Windows:
KB951985 - How to set up dynamic boot partition mirroring on GUID partition table (GPT) disks in Windows Server 2008
EFI/GPT not supported by P2V:
P2V: Converting Physical Computers to Virtual Machines in VMM
'The information below specifies Itanium systems, with the reason being that an EFI based system will not boot in Hyper-V. The following restrictions apply to P2V operation system support: VMM does not support P2V conversion for computers with Itanium architecture–based operating systems.'
EFI Support Information:
Firmware and Boot Environment
UEFI Support and Requirements for Windows Operating Systems
Extensible Firmware Interface Specification overview - Intel
Extensible Firmware Interface