I’ve devised a handy way of regenerating SID’s on Microsoft operating systems using a third party tool and a little PowerShell magic.
The first part of the script sets variables that can be called upon to randomise the SID number.
The next part sets the source location to download newsid.exe and defines a destination location.
The “set-itemproperty” adds a key into the registry to trick Newsid to think it has already accepted the EULA.
The “start-bitstransfer” initiates the download of newsid.
The real magic is in the last part – newsid is executed with “/a” to run with no prompts and “/n” to not reboot after.
execution”. The “S-1-5-21-“ is the first part of any SID then it calls the three random numbers generated from $random%.
$random1 = Get-Random 10000000000
$random2 = Get-Random 10000000000
$random3 = Get-Random 10000000000
$sidsource = "https://source.domain.com/newsid.exe"
$siddest = "C:\Scripts\newsid.exe"
Set-ItemProperty -Path "HKCU:\Software\Sysinternals\NewSID" -Name "EulaAccepted" -Value 1
Start-BitsTransfer -Source $sidsource -Destination $siddest
C:\Scripts\newsid.exe /a /n S-1-5-21-$random1-$random2-$random3
Having this script on a gold imaged server set to auto run on login (with a restart afterwards) would be the best implementation of this. You wouldn’t need to use the source and destination either and just point to a local copy of newsid.exe. I did however write this with a remote copy of newsid.exe in mind.
You will need to change the source and destination to suit your needs.
This is written for Microsoft PowerShell Version 5+.
You could drop the “/n” in the newsid.exe switch so it does reboot on completion.
The “S-1-5-21-” at the beginning of the SID is always going to be the same.
With the ever increasing demand for automating the deployment of servers, this is as important as ever if you start interconnecting the automated servers.