Activer Windows 10 lors d’un déploiement MDT à travers un Proxy.

Principe / cas pratique :

Vous souhaitez activer Windows 10 lors d’un déploiement MDT mais vous êtes derrière un proxy et le compte Local du PC utilisé pendant le déploiement n’a pas accès à internet. Que faire ?

Mettre un script lors du déploiement pour simuler une connexion au proxy via un compte de service qui a accès à internet.

Lets Go :

Afin de faire les choses proprement et ne pas mettre de mot de passe en claire dans le script, nous allons générer une clef contenant le mot de passe du compte. Vous allez donc avoir besoin de ceci en premier :

$masecurestring = ConvertTo-SecureString -AsPlainText 'MOT DE PASSE DU COMPTE QUI DEVRA SE CONNECTER AU PROXY' -force
$maclef = $masecurestring | ConvertFrom-SecureString
$CheminRepertoireClef = "chemin daccess pour stocker la clef"
out-file -filepath "$CheminRepertoireClef\MaClef.txt" -InputObject $maclef 
#Ecriture du résultat dans le fichier MaClef.txt

! Pensez à supprimer le mot de passe rentré dans le script une fois le fichier généré !

Une fois le fichier généré, stockez le quelque part en attendant la suite.

Le script d’activation :

Le script va faire appel au .NET suivant :
System.Net.WebProxy, System.Net.WebClient, System.Net.NetworkCredential permettant la communication vers internet via un proxy + authentification.
Il y a aussi une requête WMI pour trouver la clef d’activation Windows 10 lié au matériel et l’installer.

Il faut changer les variables suivantes pour que cela « match » avec votre environnement :

$Username= "Nom d'utilisateur, exemple : CORPO\utilisateur ou utilisateur etc.."
$MaClef= "chemin vers le fichier"
$WebProxy= New-Object System.Net.WebProxy("IP:PORT DU PROXY",$true)

Le script entier :


$Username= "Nom d'utilisateur, exemple : CORPO\utilisateur ou utilisateur etc.."
$MaClef= "chemin vers le fichier"
$Password= Get-Content $MaClef | ConvertTo-SecureString
$WebProxy= New-Object System.Net.WebProxy("IP:PORT DU PROXY",$true)
$url="http://google.fr"

#Configuration proxy
Write-Host "Configuration du Proxy pour l'activation Windows"
$WebClient = New-Object System.Net.WebClient
$WebClient.Proxy=$WebProxy
$WebClient.Proxy.Credentials = New-Object System.Net.NetworkCredential($Username, $Password)

#Init dun telechargement pour confirmer lauth proxy
$WebClient.DownloadData($url)

#Interrogation pour recup la clef et l'installer
Write-Host "Get de la Clef Windows depuis le bios"
$keyrecup = powershell "(Get-WmiObject -query ‘select * from SoftwareLicensingService’).OA3xOriginalProductKey"
$computer = gc env:computername
$service = get-wmiObject -query "select * from SoftwareLicensingService" -computername $computer
$service.InstallProductKey($keyrecup)
$service.RefreshLicenseStatus()

#activation de windows
Write-Host "Activation de Windows, veuillez patienter"
#Creation dun job pour lactivation
Start-Job -ScriptBlock {start-process cmd.exe -ArgumentList "/C slmgr.vbs /ato"}

Je pense que le script est suffisamment commenté pour que vous puissiez comprendre ce qu’il fait. Je vous conseille de le tester avant de le mettre en production sur le MDT. Les erreurs sont assez explicites :

Ici , c’est un problème avec le mot de passe ou le compte utilisé pour s’authentifier sur le proxy.

Créer une tâche sur le MDT :

  1. Copier le script Powershell et le fichier MaClef.txt dans le répertoire de votre DeploiementShare. Dans mon cas, le répertoire se trouve içi :
     » C:\MDT\Scripts « 
  2. Modifier le script afin d’avoir cette variable là (pour faire simple , on signale au script que la clef se trouve dans le même répertoire) :
$MaClef= "C:\MDT\Scripts\MaClef.txt"
devient :
$MaClef= ".\MaClef.txt"

3. Éditez votre « Task Sequence » préféré :

4. Allez dans le deuxième onglet puis dans la catégorie « State Restore »

5. Cliquez sur « Add » puis « General » et enfin « Run Command Line »

Et non pas « Run PowerShell Script »

6. Éditez votre nouvelle tâche « Command Line » comme ci dessous :

La « Command Line » si vous souhaitez faire un « copier coller » :

Powershell.exe -ExecutionPolicy ByPass -File "%SCRIPTROOT%\MDT_activation_windows.ps1"

7. Dans les « Options » de la tâche, vous pouvez cocher « Continue on Error » pour éviter que le script ne fasse stopper votre déploiement. Vous pourrez toujours lancer le script à la main à la fin du déploiement.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *