Servers mostly run with fixed IP-Addresses. So a question was to automate the server deployment using SCCM that also adds a fixed IP-Address to the server.
While SCCM has the ability to add a fixed IP-Address, the thing to do the deployment automatically was to add the OSD-Variables to the computer object in SCCM.
This can be done using a simple Powershell script and the WMI-Classes brought with SCCM.
# Powershell V2 only (V1 has errors in WMI) param([string]$computer = ".",[string]$smssite = "MND",[int]$ResourceID=-9999,[string]$variable,[string]$value) if(($ResourceID -ne -9999) -and ($variable -ne "") -and ($value -ne "")) { $pc_class = [WmiClass]"" $pc_class.psbase.Path ="\\$computer\ROOT\SMS\SITE_$($smssite):SMS_MachineSettings" $pc = $pc_class.createInstance() $pc.ResourceID = $ResourceID $pc.SourceSite = $smssite $pc.psbase.get() $pc.MachineVariables = $pc.MachineVariables + [WmiClass]"\\$computer\ROOT\SMS\SITE_$($smssite):SMS_MachineVariable" $machinevariables = $pc.MachineVariables $machinevariables[($machinevariables.count)-1].Name = $variable $machinevariables[($machinevariables.count)-1].value = $value $pc.MachineVariables = $machinevariables $pc.put() if($?) { "Variable set" } else { "Error in setting variable" } } else { "Not enough arguments given." }
Adding variables this way is very easy and the correct names can be found in the SCCM documentation (http://technet.microsoft.com/en-us/library/dd252744.aspx).
COMMENTS