koder

' PromptForName.vbs - sætter OSDComputerName i WinPE
On Error Resume Next

Set env = CreateObject("Microsoft.SMS.TSEnvironment")

' Forsøg at lave et rimeligt default-navn ud fra BIOS-serial
defName = "PC"
Set wmi = GetObject("winmgmts:\\.\root\cimv2")
For Each b In wmi.ExecQuery("SELECT SerialNumber FROM Win32_BIOS")
    defName = "PC" & b.SerialNumber
    Exit For
Next

Function Sanitize(s)
  Dim re: Set re = CreateObject("VBScript.RegExp")
  re.Global = True
  re.Pattern = "[^A-Za-z0-9-]"
  Sanitize = Left(re.Replace(s, ""), 15)
End Function

defName = Sanitize(defName)

Do
  name = InputBox("Indtast computernavn (A-Z, 0-9 og - , max 15 tegn):", "Computernavn", defName)
  If name = "" Then
    ans = MsgBox("Ingen værdi angivet. Vil du prøve igen?", vbYesNo + vbQuestion, "Computernavn")
    If ans = vbNo Then WScript.Quit 0
  Else
    name = Sanitize(name)
    If Len(name) > 0 Then Exit Do
    MsgBox "Ugyldigt navn. Brug kun A-Z, 0-9 og - (max 15).", vbExclamation, "Computernavn"
  End If
Loop

env("OSDComputerName") = name

Scroll to Top