La fonction ci-dessous permet de supprimer un agent scom en se connectant a distance a un management server donné.
Function Remove-SCOMAgent
{
[CmdletBinding()]
Param
(
[Parameter(Mandatory=$true, Position=0)]
[string]$MServer,
[Parameter(Mandatory=$true, Position=1)]
[string]$AgentName,
[Parameter(Mandatory=$true, Position=2)]
[string]$User,
[Parameter(Mandatory=$true, Position=3)]
[string]$Domain
)
$Cred = Get-Credential -Message "password" -Username "$Domain\$User"
#Import-Module OperationsManager
New-SCOMManagementGroupConnection -ComputerName $MServer -Credential $Cred
Start-Sleep -s 3
$administration = (Get-SCOMManagementGroup).GetAdministration();
Start-Sleep -Milliseconds 500
$agentManagedComputerType = [Microsoft.EnterpriseManagement.Administration.AgentManagedComputer];
$genericListType = [System.Collections.Generic.List``1]
$genericList = $genericListType.MakeGenericType($agentManagedComputerType)
$agentList = new-object $genericList.FullName
$agent = Get-SCOMAgent *$AgentName*
If(!($agent))
{
$message = "No agent found with name `"$AgentName`""
$message
exit
}
Start-Sleep -S 5
$agentList.Add($agent);
$genericReadOnlyCollectionType = [System.Collections.ObjectModel.ReadOnlyCollection``1]
$genericReadOnlyCollection = $genericReadOnlyCollectionType.MakeGenericType($agentManagedComputerType)
$agentReadOnlyCollection = new-object $genericReadOnlyCollection.FullName @(,$agentList);
$administration.DeleteAgentManagedComputers($agentReadOnlyCollection);
}
Remove-SCOMAgent -MServer MyMS -AgentName serv1 -User Myaccount -Domain MyDomain