Bonjour @ tous,

Je suis passé sur un WinPE x64. Auparavant j'étais sur un WinPE x86, et je pouvais utiliser nslookup pour faire un reverse DNS et ainsi avoir le nom de la machine suivant son IP.
En passant en x64, nslookup n'est plus compatible 64 bit... J'ai donc du trouver une alternative. En cherchant un peu, j'ai réussi à construire un petit script qui permet à travers PowerShell d'obtenir le nom DNS de la machine.

Voici le code en question (nom du fichier PowerShell : GetPCName.ps1) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
$IPV4 = Test-Connection -ComputerName (hostname) -Count 1  | Select-Object -ExpandProperty IPV4Address
$IP = $IPV4.IPAddressToString
$DNSSERVER = 'ns1.xxx.fr'
$DNS = Resolve-DnsName -Name $IP -Server $DNSSERVER
$FQDN = $DNS.NameHost
$NAME = $FQDN.Substring(0, $FQDN.IndexOf('.'))
echo $NAME
Je souhaiterais maintenant intégrer ce code à un fichier VBS pour que MDT prenne le résultat du code PowerShell, et que ce dernier devienne la variable pour OSDComputerName. J'ai donc créé un fichier VBS qui est déclaré sur le customsettings.ini.

Or, mon fichier VBS, ne fonctionne pas. Je n'ai qu'un champ vide

Voici le code de mon VBS :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
Function UserExit(sType, sWhen, sDetail, bSkip)
  UserExit = Success
End Function
 
Function SetHostName()
  pscommand = ".\GetPCName.ps1"
  runpscommand = "powershell.exe -NoProfile -ExecutionPolicy Bypass -File" & pscommand
  Set Shell = CreateObject("WScript.Shell")
  Set Executor = shell.Exec(runpscommand)
  Executor.StdIn.Close
  SetHostName = Executor.StdOut.ReadAll
End Function
Pourriez-vous m'aider s'il vous plait, a récupérer le résultat du PowerShell et de l'intégrer dans mon fichier VBS pour que OSDComputerName sorte le nom DNS ?

Merci !