1) Save the following script as OSDComputerName.ps1 on a networkshare.
I use Hyper-v in my labb and Hyper-v virtual machin gives you over 30 digits of serialnumber and here in this script i want only the four first of them. This is because NetBios computer names can handle a maximum lenght of 15 characters.
$SerialNumber = (Get-WmiObject -Class Win32_BIOS | Select-Object SerialNumber).SerialNumber $ShortSerialNumber = $SerialNumber.Substring(0,4) $OSDComputerName = “LABB-” + $ShortSerialNumber $TSEnv = New-Object -COMObject Microsoft.SMS.TSEnvironment $TSEnv.Value(“OSDComputerName”) = “$OSDComputerName”
2) Create a package in sccm but do not create a program. Distribute the package to DP.
3) Edit your TS and create a ”Group” before ”Apply Windows/Nework Settings” and name it OSDComputerName.
4) Add a ”Run Command Line” with the name ”Set PowerShell Execution Policy” and paste the following:
powershell.exe -noprofile -command "Set-ExecutionPolicy Bypass LocalMachine" -force
5) Add a ”Run command Line” with the name ”OSDComputerName.ps1” and paste the following:
powershell.exe -noprofile -file OSDcomputername.ps1
In ”Package” section browse for the script we created and saved in a networkshare.
6) Add a ”Run command Line” with the name ”Revert Powershell Execution Policy” and paste the following:
powershell.exe -noprofile -command "Set-ExecutionPolicy RemoteSigned LocalMachine" -force
Save the TS and test in your test environament.