Nom DNS pour OSDComputer (MDT)
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:
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:
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 !