Usuário com melhor resposta
Script vbs adicionar computador ao dominio em determinada OU

Pergunta
-
Estou tentando criar um script para adicionar um micro ao domínio e coloca-lo em determinada OU, conforme escolha feita pelo técnico do suporte.
Gostaria de criar uma condição de escolha para o técnico tipo, estado RJ vai para OU=RJ,OU=Computador, se SP vai para OU=SP, OU=Computador, isso tudo de acordo com um "Checkbox" que aparece para o técnico escolher.
Estou testando este script abaixo, mais não sei como adicionar a condição para que apareça o "Checkbox".
On Error Resume Next ' This script joins the current computer to a domain, using specified user and placing it in specified OU ' Created by Sole Viktor - sole@sole.dk ' Set theese variables strDomain = "London.local" ' Domain to logon strPassword = "password6" ' Service account logon password strUser = "user" ' Service account strOU = "OU=Computador,OU=RJ" ' OU to place computer in ' Constants to choose from when joining Const JOIN_DOMAIN = 1 Const ACCT_CREATE = 2 Const ACCT_DELETE = 4 Const WIN9X_UPGRADE = 16 Const DOMAIN_JOIN_IF_JOINED = 32 Const JOIN_UNSECURE = 64 Const MACHINE_PASSWORD_PASSED = 128 Const DEFERRED_SPN_SET = 256 Const INSTALL_INVOCATION = 262144 Set objNetwork = CreateObject("WScript.Network") strComputer = objNetwork.ComputerName ' Join Domain Set objComputer = GetObject("winmgmts:{impersonationLevel=Impersonate}!\\" & _ strComputer & "\root\cimv2:Win32_ComputerSystem.Name='" & _ strComputer & "'") ReturnValue = objComputer.JoinDomainOrWorkGroup(strDomain, _ strPassword, strDomain & "\" & strUser, strOU, _ JOIN_DOMAIN + ACCT_CREATE + DOMAIN_JOIN_IF_JOINED) Select Case ReturnValue Case 0 Status = "Success" Case 2 Status = "Missing OU" Case 5 Status = "Access denied" Case 53 Status = "Network path not found" Case 87 Status = "Parameter incorrect" Case 1326 Status = "Logon failure, user or pass" Case 1355 Status = "Domain can not be contacted" Case 1909 Status = "User account locked out" Case 2224 Status = "Computer Account allready exists" Case 2691 Status = "Allready joined" Case Else Status = "UNKNOWN ERROR " & ReturnValue ' Show Status WScript.Echo "Join domain status: " & Status End Select
- Editado Hugo Carneiro Jr quinta-feira, 27 de fevereiro de 2014 17:23
- Editado Fábio JrModerator quinta-feira, 27 de fevereiro de 2014 18:14 Título e formatacao de codigo
Respostas
-
Hugo,
Checkbox é uma caixinha de marcar, não seria o InputBox que você precisa?
No VBScript não existe o checkbox, existe o Msgbox (para exibir) e o inputbox (para pegar algo com o usuário).
No seu caso recomendo o Input box, substitua a sua linha que começa com strOU por isso:
Estado=ucase(Inputbox("Digite o estado")) select case Estado Case "RJ" : strOU = "OU=Computador,OU=RJ" Case "SP" : strOU = "OU=Computador,OU=SP" CASE else msgbox "Estado inválido" wscript.quit end select
Fábio de Paula Junior
- Sugerido como Resposta Fábio JrModerator sexta-feira, 28 de fevereiro de 2014 14:58
- Marcado como Resposta Fábio JrModerator sexta-feira, 7 de março de 2014 13:41
Todas as Respostas
-
Hugo,
Checkbox é uma caixinha de marcar, não seria o InputBox que você precisa?
No VBScript não existe o checkbox, existe o Msgbox (para exibir) e o inputbox (para pegar algo com o usuário).
No seu caso recomendo o Input box, substitua a sua linha que começa com strOU por isso:
Estado=ucase(Inputbox("Digite o estado")) select case Estado Case "RJ" : strOU = "OU=Computador,OU=RJ" Case "SP" : strOU = "OU=Computador,OU=SP" CASE else msgbox "Estado inválido" wscript.quit end select
Fábio de Paula Junior
- Sugerido como Resposta Fábio JrModerator sexta-feira, 28 de fevereiro de 2014 14:58
- Marcado como Resposta Fábio JrModerator sexta-feira, 7 de março de 2014 13:41
-
Perfeito Fabio, seria o ImputBox, estou testando o script que coloquei acima e não esta dando certo, não consigo verificar o porque, não entendo muito de scripts.
Você teria algum script completo que eu possa colocar esta opção e se possível solicitar usuário e senha para adicionar o micro no domínio?
-
Primeiro, o seu script estava funcionando?
2) qual o erro aconteceu depois que você adicionou o código que enviei?
3) Manda o seu script pós modificação.
dica: retire a linha "On error resume next" quando estiver testando o script.
Fábio de Paula Junior
- Editado Fábio JrModerator quinta-feira, 27 de fevereiro de 2014 19:09
-
Estava dando o erro Unknown 2202, e agora esta adicionando só não esta mostrando mensagem ao finalizar.
Teria como realizar um Imputbox com a conta do usuário e senha que tenha permissão para colocar no domínio?
envio o script abaixo:
' Set theese variables
strDomain = "London.local" ' Domain to logon
strPassword = "password" ' Service account logon password
strUser = "user" ' Service account
Estado=ucase(Inputbox("Digite o estado"))
select case Estado
Case "RJ" : strOU = "OU=Computers,OU=RJ"
Case "SP" : strOU = "OU=Computers,OU=SP"
CASE else
msgbox "Estado inválido"
wscript.quit
end select
' Constants to choose from when joining
Const JOIN_DOMAIN = 1
Const ACCT_CREATE = 2
Const ACCT_DELETE = 4
Const WIN9X_UPGRADE = 16
Const DOMAIN_JOIN_IF_JOINED = 32
Const JOIN_UNSECURE = 64
Const MACHINE_PASSWORD_PASSED = 128
Const DEFERRED_SPN_SET = 256
Const INSTALL_INVOCATION = 262144
Set objNetwork = CreateObject("WScript.Network")
strComputer = objNetwork.ComputerName
' Join Domain
Set objComputer = GetObject("winmgmts:{impersonationLevel=Impersonate}!\\" & _
strComputer & "\root\cimv2:Win32_ComputerSystem.Name='" & _
strComputer & "'")
ReturnValue = objComputer.JoinDomainOrWorkGroup(strDomain, _
strPassword, strDomain & "\" & strUser, strOU, _
JOIN_DOMAIN + ACCT_CREATE + DOMAIN_JOIN_IF_JOINED)
Select Case ReturnValue
Case 0 Status = "Success"
Case 2 Status = "Missing OU"
Case 5 Status = "Access denied"
Case 53 Status = "Network path not found"
Case 87 Status = "Parameter incorrect"
Case 1326 Status = "Logon failure, user or pass"
Case 1355 Status = "Domain can not be contacted"
Case 1909 Status = "User account locked out"
Case 2224 Status = "Computer Account allready exists"
Case 2691 Status = "Allready joined"
Case Else Status = "UNKNOWN ERROR " & ReturnValue
' Show Status
WScript.Echo "Join domain status: " & Status
End Select
Esta ultima linha não esta sendo mostrada com o resultado.
-
-
-
Pra pegar o nome do usuário use a mesma técnica utilizada para pegar o Estado, mas para a senha isso não é muito bom pois a senha não fica "máscarada" no inputbox.
Pra senha eu aconselho você dar uma olhada neste artigo:
How Can I Mask Passwords Using an InputBox?
Atualização:
Outro link que pode ajudar
Masking Passwords in Windows ScriptsMasking Passwords in Windows Scripts
http://www.nilpo.com/2008/07/windows-scripting/masking-passwords-in-windows-scripts/
Fábio de Paula Junior
- Editado Fábio JrModerator sexta-feira, 28 de fevereiro de 2014 13:25