Il existe de nombreux exemples sur la façon de supprimer un ordinateur d’une collection après Déploiement d’OS. J’ai moi-même utilisé différents scripts depuis que je me sers de SCCM.
Mais un client de Jörgen Nilsson a récemment eu une exigence avec des ports dans le pare-feu. Si vous exécutez le script à partir de la séquence de tâches du côté client pour enlever l’appareil d’une collection, vous devrez par exemple ouvrir les ports RPC.
Voilà pourquoi il a écrit ce script Powershell qui va supprimer l’ordinateur d’une collection et d’effacer le marqueur PXE en utilisant le webservice de Maik Koster. Le webservice de Maik Koster peut être téléchargé ici , (ne pas oublier de mettre le filtrage des demandes dans IIS)
- Le script Powershell
Le script suivant est utilisé pour appeler le webservice, dans cet exemple, nous utilisons le webservice de Maik Koster et l’appelons en utilisant l’UUID comme identifiant dans la ligne de commande. Les lignes suivantes doivent être configurées :
[pastacode lang= »bash » message= » » highlight= » » provider= »manual »]
[String] $ usrname = "Contoso \ wbssvc"
[String] $ UsrPW = "Pa @ ssw0rd"
[String] $ SiteCode = "123"
[String] $ URI = "http:? //sccm02/webservice/sccm.asmx WSDL"
[/pastacode]
Copiez le script et placez-le comme source d’un paquet de sorte que nous pourrons l’appeler à partir de celui-ci dans la Task Sequence.
Le script:
[pastacode lang= »bash » message= » » highlight= » » provider= »manual »]
Param(
[string]$computerName,
[string]$UUID,
[String]$CollectionID
)
[string]$UsrName = "Contoso\wbssvc"
[string]$UsrPW = "Pa@ssw0rd"
[string]$SiteCode = "123"
[string]$Macaddress = ""
[string]$URI = "http://sccm02/webservice/sccm.asmx?WSDL"
$secpasswd = ConvertTo-SecureString "$UsrPW" -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential ("$UsrName", $secpasswd)
$zip = New-WebServiceProxy -uri $URI -Credential $mycreds
# Invoke Web Service
$method = "ClearLastPXEAdvertisementForComputer"
$zip."$method".Invoke("$Macaddress","$UUID","$SiteCode")
try
{
$method = "RemoveComputerFromCollection"
$zip."$method".Invoke("$Macaddress","$UUID","$CollectionID","$ComputerName")
}
catch
{
Write-Output "$_.Exception.Message"
exit 1
}
exit 0
[/pastacode]
- L’étape de Task Sequence
Créer une étape de type ligne de commande. Et pointer sur le paquet créé.
La ligne de commande suivante peut être utilisée. Pensez à modifier la dernière partie en donnant l’ID de la collection :
“Powershell.exe -NoProfile -ExecutionPolicy ByPass -File RemoveFromOSDCollection1.ps1 %OSDcomputername% %UUID% 06000062”
Remarque:
- Le script renvoie une erreur si l’ordinateur ne peut pas être retiré de la collection, vous pouvez résoudre en cochant continuer en cas d’erreur.
- Si vous importez un ordinateur avec adresse MAC vous devrez modifier le script pour utiliser l’adresse MAC à la place de l’UUID.
Lien vers l’article original : ICI