|
Suite à la demande insistante de mon cher collègue Christian, alias "deployement man", qui pense que PowerShell est la solution magique à tous ses problèmes (là je le charrie... ) voici un petit script qui va lui faire plaisir et lui donner raison...
La problématique du jour est que pour déployer les OS des PC à distance (Zéro Touch Installation ça vous dit quelque chose ?) avec SMS ou SCCM 2007 lorsque l'on créé le compte d'ordinateur il faut aller modifier à la main certains attributs du compte dans l'onglet installation à distance comme ci-dessous :
Ainsi avec ces attributs renseignés la machine déployée sera automatiquement rentrée dans le domaine et nous garantirons le bon nommage de la présente machine.
Voilà le script :
#################################################################################################
# www.powershell-scripting.com
#
# New-Computer - v1.0
#
# objectif : Créer un compte d'ordinateur avec la possibilité de passer en paramètres
# les attributs correspondants au GUID de la machine et le serveur PXE
#
# exemple d'utilisation:
#
# PS > ./New-Computer.ps1 -Name machine -netbootServer PXE_SRV -netbootGUID 564DC5C5-F474-1D83-9F1C-C16FEA324DEF
#
#################################################################################################
param(
$name=$(throw 'Vous devez spécifier un nom de machine !'),
$netbootServer='DEFAULT_PXE_SRV',
$netbootGUID=$(throw 'Vous devez spécifier un GUID !')
)
[byte[]]$netbootGUID = ([guid]$netbootGUID).ToByteArray()
$ou = [ADSI]"LDAP://CN=Computers,$(([ADSI]'').distinguishedname)"
$computer = $ou.psbase.children.add("CN=$name",'computer')
$computer.psbase.invokeset('netbootGUID',$netbootGUID)
$computer.psbase.invokeset('netbootMachineFilePath',$netbootServer)
$computer.psbase.invokeset('samAccountName',$name)
$computer.psbase.invokeSet('userAccountControl', 0x00001000)
$computer.setinfo()
Exemple d'utilisation :
PS > ./New-Computer.ps1 -Name machineTest -netbootServer PXE_SRV -netbootGUID 564DC5C5-F474-1D83-9F1C-C16FEA324DEF
Si vous ne voulez pas vous embêter à toujours spécifier le nom du serveur PXE alors changez la valeur par défaut DEFAULT_PXE_SRV au niveau du bloc PARAM. Ainsi vous pourrez omettre ce paramètre, comme ceci:
PS > ./New-Computer.ps1 -Name machineTest -netbootGUID 564DC5C5-F474-1D83-9F1C-C16FEA324DEF
|