Код HTA (vbscript) + параметры присоединения к домену

0

У меня есть hta, который позволяет мне назвать компьютер во время sysprep и автоматически добавлять его в домен (большую часть кода я заимствовал у кого-то в Интернете). однако, я хотел бы изменить его так, чтобы он имел следующий код: здесь: http://pastebin.com/NQm1sn0f

будет поле под названием "сеть". когда выбрана сеть "A", я бы хотел, чтобы эти переменные задавали предопределенное значение:

domainName = DomainNameArea.Value
userName = UserNameArea.Value
domainAdminPass = PasswordArea.Value
domainAdminPassConfirm = PasswordAreaConfirm.Value
OUName = OUNameArea.Value

в основном.. если они выбрали сеть A, я бы установил domainName = "home.local", UserName = "joinaccount", domainAdminPass = "password", OUName = "OU = рабочие станции, DC = home, DC = Local"

если они выбрали сеть B, у меня были бы разные настройки, конечно.

может кто-то, пожалуйста, помогите мне сделать это? я отправлю код здесь, если ссылка не одобрена или мертва:

<html>
<head>
<title>Computer Deployment</title>
<HTA:APPLICATION 
 ID="objCompDeploy" 
 APPLICATIONNAME="Computer Deployment"
 SCROLL="no"
 SINGLEINSTANCE="yes"
 maximizeButton="no"
 minimizeButton="no"
 sysMenu="no"
>
</head>
<SCRIPT LANGUAGE="VBScript">

Set WshShell = CreateObject("Wscript.Shell")

Sub modUnattend

run_button.Disabled = True

Set fso = CreateObject("Scripting.FileSystemObject")

base = Wshshell.ExpandEnvironmentStrings("%SystemRoot%")
unattendFile = base & "\Panther\unattend.xml"


computerName = ComputerNameArea.Value
domainName = DomainNameArea.Value
userName = UserNameArea.Value
domainAdminPass = PasswordArea.Value
domainAdminPassConfirm = PasswordAreaConfirm.Value
OUName = OUNameArea.Value

if not domainAdminPass = domainAdminPassConfirm then
msgbox("The passwords do not match.")
run_button.Disabled = False
exit sub
end if

Set xmlDoc = CreateObject("Microsoft.XMLDOM")
xmlDoc.load unattendFile

'Iterate through Unattend.xml searching for nodes and properties to replace
Set oNodes = xmlDoc.documentElement.selectNodes("/unattend/settings/component/ComputerName")
For each n in oNodes
n.text = computerName
xmlDoc.save unattendFile
Next

Set oNodes = xmlDoc.documentElement.selectNodes    ("/unattend/settings/component/Identification/Credentials/Domain")
For each n in oNodes
n.text = domainName
xmlDoc.save unattendFile
Next

Set oNodes = xmlDoc.documentElement.selectNodes    ("/unattend/settings/component/Identification/Credentials/Password")
For each n in oNodes
n.text = domainAdminPass
xmlDoc.save unattendFile
Next

Set oNodes = xmlDoc.documentElement.selectNodes    ("/unattend/settings/component/Identification/Credentials/Username")
For each n in oNodes
n.text = userName
xmlDoc.save unattendFile
Next

Set oNodes = xmlDoc.documentElement.selectNodes("/unattend/settings/component/Identification/JoinDomain")
For each n in oNodes
n.text = domainName
xmlDoc.save unattendFile
Next

Set oNodes = xmlDoc.documentElement.selectNodes("/unattend/settings/component/Identification/MachineObjectOU")
For each n in oNodes
n.text = OUName
xmlDoc.save unattendFile
Next

'launch the continuation of setup in a hidden window and wait for return
'if we dont wait, closing mshta, closes windeploy.exe
WshShell.Run "%WINDIR%\System32\oobe\windeploy.exe", 0, True
idTimer = window.setTimeout("closeHTA", 5000, "VBScript")
End Sub

Sub closeHTA
window.close
End Sub

Sub commandLine
WshShell.Run "%WINDIR%\System32\cmd.exe", 1, True
End Sub

</SCRIPT>
<body>
<table border="0">
<tr>
<td>Computer Name:</td>
<td><input type="text" name="ComputerNameArea" size="30" maxlength="15" value="computer"></td>
</tr>
<tr>
<td>Domain Name:</td>
<td><input type="text" name="DomainNameArea" size="30" value="domain.local"></td>
</tr>
<tr>
<td>Container OU:</td>
<td>
<select size="1" name="OUNameArea">
<option value="OU=someou,DC=domain,DC=local">Desktops</option>
<option value="OU=someotherou,DC=domain,DC=local">Laptops</option>
</select>
</td>
</tr>
<tr>
<td>User Name:</td>
<td><input type="text" name="UserNameArea" size="30"></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="PasswordArea" size="30"></td>
</tr>
<tr>
<td>Confirm Password:</td>
<td><input type="password" name="PasswordAreaConfirm" size="30"></td>
</tr>
</table> 
<p align="right">
<input id=runbutton  class="button" type="button" value="Continue" name="run_button" onClick="modUnattend">
<p align="center">
Note: The following characters are invalid for use in the computer name: "  '~!@#$%^&<span     onClick="commandLine">*</span>()=+[]{}\|;:'",<>/?.  "
You will not recieve any warning regarding incorrectly supplied parameters during setup. If any of them are     incorrect, setup completion 
may take a long time.
</body>
Теги:
vbscript
hta

1 ответ

0

Если я правильно понял ваш вопрос, вы можете сделать что-то вроде этого:

HTML:

<select name="networks" onchange="NetworksChanged()">
    <option value="home.local;joinaccount;password;OU=workstations,DC=home,DC=Local">Network A</option>
    <option value="guest.local;guestaccount;password2;OU=workstations,DC=guest,DC=Local">Network B</option>
</select>

И сценарий:

Function NetworksChanged()
    Dim options
    options = Split(networks.value, ";")
    domainName = options(0)
    userName = options(1)
    domainAdminPass = options(2)
    domainAdminPassConfirm = options(2)
    OUName = options(3)
End Function

Ещё вопросы

Сообщество Overcoder
Наверх
Меню