Machine domain group policy failed to apply

In this case, domain joined workstation with Windows 7 operating system was failing to register itself on new WSUS server. Settings for the new WSUS server were entered into domain GPO. I tried to refresh the settings with gpupdate /force. But, the command was failing to apply computer settings from domain GPO, with following error message:
Computer policy could not be updated successfully. The following errors were encountered: The processing of Group Policy failed. Windows could not apply the registry-based policy settings for the Group Policy object LocalGPO. Group Policy settings will not be resolved until this event is resolved. View the event details for more information on the file name and path that caused the failure.
The output from Gpresult /h gpresult.html was showing failed status for Registry in component status:

 

Error event was logged into System event log with ID 1096 and same description:

The processing of Group Policy failed. Windows could not apply the registry-based policy settings for the Group Policy object LocalGPO. Group Policy settings will not be resolved until this event is resolved. View the event details for more information on the file name and path that caused the failure.

So, all errors were pointing for local policy corruption.
Navigating to c:\windows\system32\GroupPolicy\Machine folder and renaming the registry.pol file into registry-pol.bakup (for example), and running the gpupdate /force again, has resulted the command to successfully complete and apply the computer and user policy settings. The workstation has received new settings for the WSUS server and successfully registered itself on this new WSUS server.

I was using the same method for resolution in my article The processing of Group Policy failed. Event ID 1096, and the reason for not applying the domain GPOs was again the local policy corruption.
 

High CPU Usage from System Interrupts Process

In this case, a colleague of mine was complaining that her workstation was running very slow even tough the workstation was memory upgraded. Since the term "running slow" is very relative, I needed info about the hardware and OS. The operating system was Windows 8.1 Enterprise x64, and hardware was HP ProDesk 600 G1.
The reason for this "running slow" behavior was the CPU usage of system interrupts process. 20-30% of the CPU usage was dedicated to this process all the time. From my experience the reason for this kind of behavior is hardware or driver related. The OS was fully patched with latest updates. So, I've started updating the drivers and BIOS. After updating the drivers and BIOS to the latest HP official versions the behavior was still the same, system interrupts process was holding 20-30% of the CPU. There were no pending restarts. And, the CPU usage behavior was the same on every restart. This behavior of high CPU usage from System Interrupts process has stopped, when I have shut down and power on the workstation. It's very strange, but I have successfully succeeded to reproduce this behavior on this HP model PC. And, this is the scenario when this high CPU usage of system interrupts process will happen for this PC model:

Whenever there is memory size change, BIOS will "alert 164 memory size error " press F1 to continue, the OS will boot and system interrupts process will run high CPU usage. This behaviour will continue, even if the OS is restarted several times. But, if you shut down, and power on the workstation, the CPU usage will be back to normal !

I'll call this a bug, so in case you're doing memory upgrade on this PC model, do not forget to power off and power on the PC after successful memory upgrading.

 

How to move Azure VM to different Cloud Service

In this case I wanted to move Azure VM from one cloud service to another cloud service in same Azure Subscription. Using Microsoft Azure Web Portal this task can be achieved in following three steps:
  • Note the disk(s) that were attached on Azure VM, and other configuration settings like VM size, virtual network, endpoints and so on.
  • Delete the Azure VM with option to keep the attached disks
  • Create new VM from Gallery, and on first Wizard page (Chose an Image) select MY DISKS option, and select the disk noted in first step. Complete the wizard with assigning the VM to the new Cloud Service.
In my case the VM was having couple of additional data disk drives, and I was unable to attached them using Azure Web Portal Create New Virtual Machine from Gallery Wizard. But, this can be easily achieved using Powershell. The script is very easy to read, and is consisted of:
  • Setting the currentStorageAccount for the Azure Subscription
  • Setting basic variables for the VM, like Name, disks, virtual network, subnet and cloud service
  • Creating new configuration for the VM
  • And, finally creating the new VM

Set-AzureSubscription -SubscriptionName 'Name of the subscription' -CurrentStorageAccount 'teststorageaccount'

$vmName='test'
$disk0Name = 'test-os-disk0'
$disk1Name = 'test-data-disk-1'
$disk2Name = 'test-data-disk-2'
$vNetName = 'test-VirtualNetwork'
$subNet = 'Sub-1'
$cloudSvcName = 'test-Cloud-Service2'


$vm1 = New-AzureVMConfig -DiskName $disk0Name -InstanceSize Medium -Name $vmName -Label $vmName |
Add-AzureDataDisk -DiskName $disk1Name -Import -LUN 0 |
Add-AzureDataDisk -DiskName $disk2Name -Import -LUN 1 |
Set-AzureSubnet $subNet |
Add-AzureEndpoint -LocalPort 3389 -Name 'RDP' -Protocol tcp -PublicPort 3390 |
Add-AzureEndpoint -LocalPort 5986 -Name 'WinRmHTTPs' -Protocol tcp -PublicPort 5987 |
Add-AzureEndpoint -LocalPort 80 -Name 'http' -Protocol tcp -PublicPort 80 |
Add-AzureEndpoint -LocalPort 443 -Name 'https' -Protocol tcp -PublicPort 443


New-AzureVM -ServiceName $cloudSvcName -VMs $vm1 -VNetName $vNetName

In bold are the two additional data disk, that will be attached during creation of the VM in the new cloud service.
 

How to create predictible (static) ip address for Azure VMs

In Microsoft Azure all created VMs have internal IP addresses assigned from DHCP server, and those IP addresses are within the defined virtual network scope if you have created virtual network. The IP address assigned by the DHCP to the Azure VM, will remain the same for the vm's lifetime as long as the VM is not in Stop (Deallocated) state. Here is output from the ipconfig /all from the Azure VM:


This means that when the VM is shut down from the operating system (you're paying for the VM in this state), it will obtain the same IP (in this example 10.0.0.5) when the VM will start up again. Also, while this VM is in Stopped state (shut down from the OS), no other VM will be offered the same 10.0.0.5 address. And here is the state of the VM from Azure Portal:


In case when you don't want to pay for the VM, you have to shut down the VM from the Azure portal or Powershell, and the VM will be in Stopped (Deallocated) state :


Starting the VM from this (Stopped -Deallocated) state, the VM will start the new provisioning process and there is a chance to obtain some other IP address. So, here is a question: Is there a way to define some preferred address for the VM, when the VM is starting from Stopped (Deallocated) state ?
And, the answer is fortunately Yes. There is Set-AzureStaticVNetIP cmdlet which can set preferred IP address for the VM when starting from Stopped (Deallocated) state. For example the syntax for assigning the static (preferred) IP address for previously created Azure VM is:

Get-AzureVM -ServiceName testService -Name test | Set-AzureStaticVNetIP -IPAddress 10.0.0.5 | Update-AzureVM

Note that running this command will trigger reboot of the VM. Related cmdlets for checking, testing and removing the assigned static IP addresses from the Azure VMs are also available ( Get-AzureStaticVNetIP, Test-AzureStaticVNetIP, Remove-AzureStaticVNetIP )

It's important to understand that, this static IP address assigned with Set-AzureStaticVNetIP will NOT create reservation of the IP address for that VM. Instead, it will create preferred IP address for the VM when starting from Stopped (Deallocated) state, which means that that IP address might be already taken by other virtual machine, while the VM with static assigned IP was in Stopped (deallocated) state !
 

The Software Protection service entered the running state

In this case I have experienced Event ID 7036 from Service Control Manager source with following information:
The Software Protection service entered the running state.
This event was filling up the System event log, because the same event was generated every 30 seconds.
In my case I have stopped this event from logging by starting the system from Control Panel (the system was already activated), but anyway clicked the View Details in Windows Activation and click the Activate with a new key. On Windows Activation wizard page, clicked cancel and new event with same ID 7036 was logged but with information that:
The Software Protection service entered the stopped state.
After this event, there were no more events with id 7036 logged for every 30 seconds in system event log with information that software protection service entered the running state.

 
 

How to check EMBG (Unique Master Citizen Number) using regex

In this post, I will share my implementation of how to check if some number looks like EMBG or Unique Master Citizen Number. For those of yo...