December 10 2012

Enabling verbose logging on SCCM server

I use a maximum of one Google Ad per post to help offset some of my blog hosting costs.


I’ve needed to do this a number of times in the past for SCCM 2007, the process is similar for SCCM 2012. Note that this is verbose logging for server components – it’s nothing to do with the SCCM client side.  In the registry of the server, navigate to HKEY_LOCAL_MACHINESOFTWAREMicrosoftSMSCOMPONENTS and then find the component that you want to need to enable verbose logging for. Select that key and then find the DWORD “Verbose Logging” as shown below:

Update the DWORD “Verbose Logging” to one of the following values:

Default is value 0.

Value 0: Errors and key messages;
Value 1: Everything in value 0 and Warnings and more general information;
Value 2: Verbose (everything)

Then restart the ‘SMS Executive’ service on the server.

Give it a few minutes to start writing to the logs, then check the logs of the component you are interested in, for example:

offermgr.log – SMS_OFFER_MANAGER
policypv.log – SMS_POLICY_PROVIDER
statesys.log – SMS_STATE_SYSTEM
wsyncmgr.log – SMS_WSUS_SYNC_MANAGER

The log should now hold a lot more information.

As I was writing this article, I came across another similar article that has a lot more detail in it, some it may be worth a look too –


I use a maximum of one Google Ad per post to help offset some of my blog hosting costs.


September 17 2012

VMWare ESX support for Windows Server 2012

I found it quite hard to find this information so I figured I would share it. I was looking for an official line from VMWare on the versions of ESX that would Windows Server 2012 as a guest operating system.

Directly quoted from :

The release of vSphere 5.1 introduces support for Windows Server 2012 on ESXi 5.1, with the following support considerations:

  • Installation instruction can be found here
  • Snapshots, checkpoints and VMotion actions for virtual machines with Windows 8 or Windows Server 2012 are incompatible between hosts running ESXi 5.0 Update 1 or ESXi 5.0 P03 with host running later versions of ESXi ( ESXi 5.0 Update 2, ESXi 5.1, etc.). Please refer to KB-2033723 for more information.
  • The Guest OS Customization feature in vCenter does not support Windows 8 or Windows Server 2012 in vSphere 5.1.
  • vSphere client will use EFI BIOS for VMs configured for Windows 8 or Windows Server 2012 with hardware version 9, however, EFI BIOS is not compatible with the Fault Tolerance feature. Therefore to use Fault Tolerance feature, it is recommended to use Legacy BIOS instead of EFI BIOS.

For more information about software support, please check the VMware Compatibility Guide

Also from  I have extracted this one liner:

Windows 8 / Windows Server 2012 will not be supported on ESXi/ESX 4.0 or 4.1.

And finally, from (page 103) I read that supported releases are ESXi 5.1 or ESXi 5.0 U1.

More information:

Category: Windows | LEAVE A COMMENT
July 31 2012

Windows Server 2012 Editions

Microsoft have released details on the different editions that will be available for Windows Server 2012. It looks like Enterprise Edition has been dropped:

More info here –



Category: Windows | LEAVE A COMMENT
April 15 2012

How to tell which PXE/WDS server a machine booted from

I had a requirement to be able to tell which PXE or WDS server my Windows machine had booted from. If a Windows machine boots from PXE, a response packet containing boot server information (such as the IP address and name of the network boot server) is inserted into the registry at HKLMSystemCurrentControlSetControlPXE. I simply used a VBScript to grab this IP address and then used NBTSTAT to resolve the name.

' Obtain IP address of PXE from registry
Const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\" & strComputer & "rootdefault:StdregProv")
strKeypath = "SYSTEMCurrentControlSetControlPXE"
strEntryName = "BootServerReply"
objReg.GetBinaryValue HKEY_LOCAL_MACHINE, strKeyPath, strEntryName, arrValue
PXEServerIP = arrvalue(20) & "." & arrValue(21) & "." & arrValue(22) & "." & arrValue(23)

' Resolve PXE Server IP address to name using NBTSTAT
Dim sIP : sIP = PXEServerIP
Dim oWAN : Set oWAN = WScript.Arguments.Named
If oWAN.Exists( "ip" ) Then sIP = oWAN( "ip" )
Dim oWSH : Set oWSH = CreateObject( "WScript.Shell" )
Dim sCmd : sCmd = "nbtstat -A " & sIP
Dim sText : sText = oWSH.Exec( sCmd ).Stdout.ReadAll
Dim PXEServerName : PXEServerName = "Name not resolved"
Dim oRE : Set oRE = New RegExp
oRE.Pattern = "s*(w+)s+<20>"
Dim oMTS : Set oMTS = oRE.Execute( sText )
If 1 = oMTS.Count Then
PXEServerName = oMTS( 0 ).SubMatches( 0 )
End if

' Output PXE Server IP and Name
Wscript.Echo "This machine started via PXE boot from PXE server " & PXEServerIP & " (" & PXEServerName & ")"


December 7 2011

Set custom SCCM task sequence variable to client DHCP server

I had a requirement to be able set a custom SCCM Task Sequence variable to the value (IP address) of the DHCP server that had issued the IP address to the client . This meant that later in the Task Sequence I could re-use this value for other things, in this case it was to map a network drive, eg \%DHCP_Server%temp. I used a VB script to set this:

' Purpose: Set SCCM task sequence variable 'DHCP_Server' to the value of the DHCP server IP address
' Date: 06/12/2011
' Version: 1.0

strComputer = "."

' Create Task Sequence environment object
dim osd: set env = CreateObject("Microsoft.SMS.TSEnvironment")

Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\" & strComputer & "rootcimv2")

' Find active network adapter
Set colAdapters = objWMIService.ExecQuery _
("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
n = 1

For Each objAdapter in colAdapters

' Set variable in the Operating System Deployment environment
env("DHCP_Server") = objAdapter.DHCPServer

n = n + 1

When you dump out the Task Sequence variables, you can then see it at the top of the list: