SCCM – Change Site Code

email me

#new site code
$newSiteCode = '002'

$smsClient = New-Object -ComObject Microsoft.SMS.Client

#return current site code
$Result = $smsClient.GetAssignedSite()

#test current site code
if ($Result -eq $newSiteCode)
{
  Exit
} 

Else 

{
   
$smsClient.SetAssignedSite($newSiteCode)

#set reg path
$regPath = 'HKLM:\SOFTWARE\Microsoft\SMS\Mobile Client'

If (Get-ItemProperty -Path $regPath -Name GPRequestedSiteAssignmentCode -ErrorAction SilentlyContinue -OutVariable outvar)

{ #remove current site code
Get-Item -Path $regPath | Remove-ItemProperty -Name 'GPRequestedSiteAssignmentCode' -Force -ErrorAction SilentlyContinue
Get-Item -Path $regPath | Remove-ItemProperty -Name 'GPSiteAssignmentRetryInterval(Min)' -Force -ErrorAction SilentlyContinue
Get-Item -Path $regPath | Remove-ItemProperty -Name 'GPSiteAssignmentRetryDuration(Hour)' -Force -ErrorAction SilentlyContinue
$regRemediation = 'TRUE'
}

Else
{
$regRemediation = 'FALSE'
}

$timeStamp = Get-Date -Format dd-MM-yy:HH:mm:ss
Write-Output "$env:COMPUTERNAME : Site code changed from $result > $newSiteCode | Registry Remediated = $regRemediation | $timeStamp" | Out-File .\site.log -Append
$timeStamp = ""
}