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 :)