1) Download the Script. Change the file extension from txt to ps1 and save it to networkshare. The GUI is created with Sapien Powershell Studio
2) Create a package in sccm but do not create a program. Distribute the package to DP.
3) Edit your Task Sequence and add ”Run Powershell Script”. Browse for the package you just create and write the name of the script in ”Script Name” section. Change execution policy to ”bypass”.
4) Deploy you TS.

OSDpopup

DO NOT forget to update your boot image to support .Net and Powershell.

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.