Function Remove-WUServiceManager { <# .SYNOPSIS Remove windows update service manager. .DESCRIPTION Use Remove-WUServiceManager to unregister Windows Update Service Manager. .PARAMETER ServiceID An identifier for the service to be unregistered. .EXAMPLE Try unregister Microsoft Update Service. PS H:\> Remove-WUServiceManager -ServiceID "7971f918-a847-4430-9279-4a52d1efe18d" Confirm Are you sure you want to perform this action? Performing the operation "Unregister Windows Update Service Manager: 7971f918-a847-4430-9279-4a52d1efe18d" on target "MG". [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): Y .NOTES Author: Michal Gajda Blog : http://commandlinegeeks.com/ .LINK http://gallery.technet.microsoft.com/scriptcenter/2d191bcd-3308-4edd-9de2-88dff796b0bc .LINK http://msdn.microsoft.com/en-us/library/aa387290(v=vs.85).aspx http://support.microsoft.com/kb/926464 .LINK Get-WUServiceManager Add-WUServiceManager #> [OutputType('PSWindowsUpdate.WUServiceManager')] [CmdletBinding( SupportsShouldProcess=$True, ConfirmImpact="High" )] Param ( [parameter(Mandatory=$true)] [ValidateNotNullOrEmpty()] [String]$ServiceID ) Begin { $User = [Security.Principal.WindowsIdentity]::GetCurrent() $Role = (New-Object Security.Principal.WindowsPrincipal $user).IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator) if(!$Role) { Write-Warning "To perform some operations you must run an elevated Windows PowerShell console." } #End If !$Role } Process { $objServiceManager = New-Object -ComObject "Microsoft.Update.ServiceManager" Try { If ($pscmdlet.ShouldProcess($Env:COMPUTERNAME,"Unregister Windows Update Service Manager: $ServiceID")) { $objService = $objServiceManager.RemoveService($ServiceID) } #End If $pscmdlet.ShouldProcess($Env:COMPUTERNAME,"Unregister Windows Update Service Manager: $ServiceID" } #End Try Catch { If($_ -match "HRESULT: 0x80070005") { Write-Warning "Your security policy don't allow a non-administator identity to perform this task" } #End If $_ -match "HRESULT: 0x80070005" Else { Write-Error $_ } #End Else $_ -match "HRESULT: 0x80070005" Return } #End Catch Return $objService } #End Process End{} } #In The End :)