Bonjour à tous,
Voici un script permettant d’identifier parmi tous les ordinateurs d’un domaine, ceux qui disposent du même SID.
Pour rappel : Microsoft n’apporte pas son support dans le cas où vous disposez de systèmes clonés avec le meme SID (Lien officiel)
Notez que pour que ce script fonctionne :
- Vous devez exécuter ce script sur un système équipé du module Powershell pour ActiveDirectory
- Vous devez télécharger les outils PStools à l’adresse suivante : https://docs.microsoft.com/en-us/sysinternals/downloads/pstools
- Stocker le script dans le meme dossier que l’utilitaire PSGetSID.exe
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | $Error.Clear() Clear-Host # Initialize Computers List $computerList = New-Object -TypeName System.Collections.ArrayList # Retrieve ADCOmputers Import-Module ActiveDirectory $ADcomputers = @(Get-ADComputer -Filter * -Properties SamAccountName, SID) # Create custom object for each computers # Add information to this object (ComputerName, DomainSID, LocalSID) # Add object to Result list if ($ADcomputers.Count -gt 0) { $i = 0 foreach ($ADcomputer in $ADcomputers) { Write-Progress -Activity get-SID -Status Running -Id 0 -PercentComplete (($i/$ADcomputers.Count)*100) -CurrentOperation $computer.ComputerName $Computer = New-Object -TypeName psobject -Property @{ "ComputerName"= ([String]$ADcomputer.SamAccountName).Replace('$','') "DomainSID"=$ADcomputer.SID "LocalSID"=$null } Invoke-Expression -Command ("PsGetsid.exe " + '\\' + $computer.ComputerName) -ErrorAction SilentlyContinue| Tee-Object -Variable out | Out-Null $Computer.LocalSID = ($out | Where-Object{$_ -like "S-1-5*"}) $computerList.Add($Computer) |Out-Null $i++ } } $computerList | Group-Object -Property LocalSID | Format-Table |
Enjoy 😉