none
Script para indicar qual OU o computador ira pertencer. RRS feed

  • Pergunta

  • Bom dia.

    Estou fazendo a automatização da instalação das estações de trabalho via MDT, e gostaria de saber se por script é possível indicar de qual Unidade Organizacional a maquina devera pertencer, consequentemente indicando o nome FQDN, pois tenho que colocar mais de 500 maquinas no domínio ou seja ficar colocando 1 por 1 manualmente seria muito demorado.

    Desde já obrigado.

    quarta-feira, 23 de dezembro de 2009 13:29

Respostas

  • Bom dia a todos.
    Apos varios dias de estudos e testes encontrei o que eu realmente estava procurando, agora consigo mover entre OU`s um objeto desejado neste caso o computador, ele busca o nome da estação e altera automaticamente entre as OU`s que eu desejar, conforme descrito no Script abaixo.

    @echo off
    hostname>dados.log
    echo Escolha o setor
    echo Digite 1 para FINANCEIRO
    echo Digite 2 para VENDAS
    set /p choice=
        if "%choice%"=="1" call :FIN
        if "%choice%"=="2" call :VEND

    :FIN
    for /f %%i in (dados.log) do dsmove "CN =%%i,OU =computadores,OU =administrativo,OU =empresa,DC =dominio,DC =com" -newparent "OU =computadores,OU =financeiro,OU =empresa,DC =dominio,DC =com"
        del dados.log
        exit
    :VEND
    for /f %%i in (dados.log) do dsmove "CN =%%i,OU =computadores,OU =operacional,OU =empresa,DC =dominio,DC =com" -newparent "OU =computadores,OU =vendas,OU =empresa,DC =dominio,DC =com"
        del dados.log
        exit

    Caso voces queirao que o mesmo seja feita de forma automatica, sem ter que selecionar o departamento basta fazer da seguinte forma.

    @echo off
    hostname>dados.log
    for /f %%i in (dados.log) do dsmove "CN =%%i,OU =computadores,OU =administrativo,OU =empresa,DC =dominio,DC =com" -newparent "OU =computadores,OU =financeiro,OU =empresa,DC =dominio,DC =com"
        del dados.log
        exit

    Desta forma ele sera inserido diretamente na OU desejada.

    Para que voce possa fazer esta modificacao diretamente da estacao de trabalho, voce devera colocar na mesma pasta o arquivo do DSMOVE, que é encontrado em computadores que estejam instalados as ferramentas administrativas, no caso voce encontrara para Windows XP ou para Windows Vista / 7.

    Obrigado pela ajuda de todos.

    Atenciosamente.

    Thiago Batista.
    • Marcado como Resposta Thiago B. _ segunda-feira, 18 de janeiro de 2010 11:05
    segunda-feira, 18 de janeiro de 2010 11:04

Todas as Respostas

  • Bom dia.

    Estou fazendo a automatização da instalação das estações de trabalho via MDT, e gostaria de saber se por script é possível indicar de qual Unidade Organizacional a maquina devera pertencer, consequentemente indicando o nome FQDN, pois tenho que colocar mais de 500 maquinas no domínio ou seja ficar colocando 1 por 1 manualmente seria muito demorado.

    Desde já obrigado.


    Qual o critério para indicar a OU?

    Exemplo de script para adicionar um terminal ao domínio. Informe o critério que poderemos ver um jeito de ter ajudar....

    []s,

    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

     

    strComputer = "."

    Ncomputer = inputbox("Digite o novo nome da máquina")
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

    Set colComputers = objWMIService.ExecQuery _
        ("Select * from Win32_ComputerSystem")

    For Each objComputer in colComputers
        err = objComputer.Rename(Ncomputer)
    Next

    strDomain = "nome do dominio"
    strUser = "nome do usuário com privilegios a ingressar máquinas no dominio"

    strPassword = "password da conta com os privilegios a ingressar máquinas no dominio"
     
    Set objNetwork = CreateObject("WScript.Network")
    strComputer = objNetwork.ComputerName

    Set objComputer = GetObject("winmgmts:{impersonationLevel=Impersonate}!\\" & _
        strComputer & "\root\cimv2:Win32_ComputerSystem.Name='" & _
            strComputer & "'")

    ReturnValue = objComputer.JoinDomainOrWorkGroup(strDomain, _
        strPassword, strDomain & "\" & strUser, NULL, _
            JOIN_DOMAIN + ACCT_CREATE)


    " Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda"
    quarta-feira, 23 de dezembro de 2009 15:35
  • Eu não entendo muito de AD, então não entendi a questão do critério, por isto vou ser um pouco mais especifico no que eu estou querendo.

    Caso eu tenha uma OU chamada Empresa e dentro desta OU chamada empresa eu criar uma outra OU com cada Departamento Ex. Financeiro, Comercial, RH entre outros, e dentro de cada OU dos departamentos eu criar mais uma OU chamada Computadores, e quiser inserir as estações de trabalho automaticamente nesta OU Computadores, é possível.
    Ficaria basicamente assim a Arquitetura.

    Empresas > Financeiro > Computadores > “Computador”

    Ou seja eu gostaria de saber se por Script ou algo parecido é possível indicar esta OU, pois por padrão o computador é inserido diretamente na OU > Computadores.

    segunda-feira, 28 de dezembro de 2009 10:53
  • Eu não entendo muito de AD, então não entendi a questão do critério, por isto vou ser um pouco mais especifico no que eu estou querendo.

    Caso eu tenha uma OU chamada Empresa e dentro desta OU chamada empresa eu criar uma outra OU com cada Departamento Ex. Financeiro, Comercial, RH entre outros, e dentro de cada OU dos departamentos eu criar mais uma OU chamada Computadores, e quiser inserir as estações de trabalho automaticamente nesta OU Computadores, é possível.
    Ficaria basicamente assim a Arquitetura.

    Empresas > Financeiro > Computadores > “Computador”

    Ou seja eu gostaria de saber se por Script ou algo parecido é possível indicar esta OU, pois por padrão o computador é inserido diretamente na OU > Computadores.


    Thiagitto, bom dia.


    Eu realmente desconheço, não sei aos demais do forum...
    Eu indicaria efetuar a troca do nome do terminal de um determinado grupo e após inserir ele no AD mover as contas através de algum critério.

    Ex:

    NOME Terminal: FIN0001

    Pegaria a string FIN --- Mover OU Financeiro.

    Ou inserir determinado grupo.
    Ex:

    Terminais do Financeiro (Total 25)

    Inserir eles no AD manualmente ou através de script e após isso acessar o AD e movimenta-los manualmente.

    Não digo que o que vc perguntou nao exista porém vou efetuar algumas procurar e se souber de algo posto aqui.

    []s,






    " Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda"
    segunda-feira, 28 de dezembro de 2009 11:45
  • Estarei buscando em outras fontes se é possivel fazer o mesmo caso seja estarei postando aqui tambem.

    Desde já obrigado.
    segunda-feira, 28 de dezembro de 2009 11:52
  • Tiagitto,

           Você pode colocar a conta de computador em uma determinada OU com o seguinte script.


    @echo off
    echo NOME DO MICRO
    set /p micro=
    cls
    echo NOME DO SETOR
    set /p setor=
    dsadd computer cn=%micro%,cn=computadores,cn=%setor%,cn=empresa,dc=dominio,dc=com

          Para executar esse script vc tem que ter o adminpack instalado no micro ou o arquivo dsadd que se encontra na pasta system32 depois do adminpack instalado. Coloque o arquivo na mesma pasta que o script e pronto.
          Veja esse link para auxilio http://technet.microsoft.com/en-us/library/cc754539(WS.10).aspx
          Qualquer dúvida post.
    ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░ Leonardo Sousa ░ ░ MCP / MCDST / MCSA Windows Server 2003 ░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
    segunda-feira, 4 de janeiro de 2010 00:43
  • Bom dia Leo Sousa.

    Pelo que entendi o script você indica o nome do micro, o setor e posteriormente qual OU o computador ira pertencer, e pelo arquivo Dsadd você indica qual grupo o computador ira pertencer, qual a descrição, qual usuário e senha que deve ser indicado para inserir na OU desejada, mas gostaria de saber o seguinte:
    Como será o usuário que vai indicar qual o nome do computador, nem sempre ele ira respeitar as regras que serão passadas a eles, e não será possível estar sempre fiscalizando este padrão pois são mais de 500 maquinas, então gostaria de saber se naquele momento em que você tem que indicar o NOME DO MICRO, e também em cn=%micro%, é possível fazer com que o script fosse capas de captar o nome indicado no inicio da Formatação pelo próprio usuário.
    E este aplicativo adminpack tem que estar instalado na maquina local?
    E depois é possível copiar este arquivo DSADD de qualquer micro, ou seja deixar um como padrão e copiar sempre para uma pasta determinada, e apenas instalar o aplicativo adminpack, pois a intenção é que esta instalação seja o mais automática possível, ou seja que não tenha que ter a intervenção do administrador e nem mesmo do usuário final


    Desde já obrigado.

    Thiago Batista.

    segunda-feira, 4 de janeiro de 2010 10:37
  • Thiago,

              O arquivo DSADD pode pegar e colocar na mesma pasta do script que ele vai servir para todas as maquinas.
              Tente usar o script abaixo para resolver o problema. A questão do nome foi resolvida, agora é em relação ao setor e só criar uma entrada para cada um como mostrado no exemplo abaixo.


    @echo off
    hostname>dados.log
    echo Escolha o setor
    echo Digite 1 para FINANCEIRO
    echo Digite 2 para VENDAS
    set /p choice=
        if "%choice%"=="1" call :FIN
        if "%choice%"=="2" call :VEND

    :FIN
    for /f %%i in (dados.log) do dsadd computer cn=%%i,cn=computadores,cn=financeiro,cn=empresa,dc=dominio,dc=com
        del dados.log
        exit
    :VEND
    for /f %%i in (dados.log) do dsadd computer cn=%%i,cn=computadores,cn=vendas,cn=empresa,dc=dominio,dc=com
        del dados.log
        exit
    ░ Leonardo Sousa ░ ░ MCP / MCDST / MCSA Windows Server 2003 ░
    segunda-feira, 4 de janeiro de 2010 17:23
  • Boa Tarde Leonardo.

    Bom referente ao script gostaria de saber se é possivel fazer o mesmo sem as opcoes, ou seja que fosse inserido um script no qual o computador fosse direto para a OU desejada, pois via MDT será possivel o usuario indicar qual Setor ele pertence, e na Task Sequence do MDT faremos a vinculacao do arquivo de script referente a cada setor, sendo assim o usuario escolhera o seu Setor e o MDT se encarregara de fazer a insercao do computador na OU desejada.

    Gostaria de saber se é necessario instalar o adminpack na maquina que estara sendo formatada pelo MDT, pois pelo que percebi existe um adminpack para cada sistema operacional, entao seria necessario instalar o mesmo no XP, Vista ou Seven, ou deve ser instalado no Servidor do AD?

    E o arquivo DSADD devera ser copiada para alguma pasta em especifico ou pode ser colocado diretamente em C: junto com o script criado?

    Obs.: Nao entendo muito de Script, entao por isso estou fazendo estas perguntas "bestas".

    Desde já Obrigado.
    segunda-feira, 4 de janeiro de 2010 19:01
  • Consegue fazer funcionar o Script que voce havia me indicado.

    @echo off
    hostname>dados.log
    echo Escolha o setor
    echo Digite 1 para FINANCEIRO
    echo Digite 2 para VENDAS
    set /p choice=
        if "%choice%"=="1" call :FIN
        if "%choice%"=="2" call :VEND

    :FIN
    for /f %%i in (dados.log) do dsadd computer cn=%%i,cn=computadores,cn=financeiro,cn=empresa,dc=dominio,dc=com -loc cn=%%i,cn=computadores,cn=administrativo,cn=empresa,dc=dominio,dc=com -desc "Usuario da Maquina" -u dominio\usuario -p senha -q
        del dados.log
        exit
    :VEND
    for /f %%i in (dados.log) do dsadd computer cn=%%i,cn=computadores,cn=vendas,cn=empresa,dc=dominio,dc=com
        del dados.log
        exit


    Mas quando eu fiz isto percebi que nao era o que eu realmente estava querendo pois ele estava criando um novo Computador no AD ou seja ele nao estava migrando o mesmo para a pasta desejada.
    Verifiquei que existe a opcao de criar com o arquivo  dsmove  ou seja é o que eu estou procurando pois a conta do computador ja estara criada, e eu estou apenas querendo migrar a mesma outra OU.

    Fica aqui minhas duvidas com relacao a isto, eu devo criar de que forma?

    Fiz o seguinte Script para ver se o mesmo funcionava mas esta aparecendo uma mensagem de erro.

    @echo off
    hostname>dados.log
    echo Escolha o setor
    echo Digite 1 para FINANCEIRO
    echo Digite 2 para VENDAS
    set /p choice=
        if "%choice%"=="1" call :FIN
        if "%choice%"=="2" call :VEND

    :FIN
    for /f %%i in (dados.log) do dsmove cn=%%i,cn=computadores,cn=financeiro,cn=empresa,dc=dominio,dc=com -newparent cn=computadores,cn=administrativo,cn=empresa,dc=dominio,dc=com
        del dados.log
        exit
    :VEND
    for /f %%i in (dados.log) do dsadd computer cn=%%i,cn=computadores,cn=vendas,cn=empresa,dc=dominio,dc=com
        del dados.log
        exit

    Mas o seguinte Script esta aparencendo a mensagem de que nao esta encontrando o Computador no AD.
    Fica aqui minha duvida o que eu estou fazendo de errado, deve ser adicionado mais alguma linha de comando no script?

    Desde já obrigado.
    segunda-feira, 11 de janeiro de 2010 18:18
  • Bom dia a todos.
    Apos varios dias de estudos e testes encontrei o que eu realmente estava procurando, agora consigo mover entre OU`s um objeto desejado neste caso o computador, ele busca o nome da estação e altera automaticamente entre as OU`s que eu desejar, conforme descrito no Script abaixo.

    @echo off
    hostname>dados.log
    echo Escolha o setor
    echo Digite 1 para FINANCEIRO
    echo Digite 2 para VENDAS
    set /p choice=
        if "%choice%"=="1" call :FIN
        if "%choice%"=="2" call :VEND

    :FIN
    for /f %%i in (dados.log) do dsmove "CN =%%i,OU =computadores,OU =administrativo,OU =empresa,DC =dominio,DC =com" -newparent "OU =computadores,OU =financeiro,OU =empresa,DC =dominio,DC =com"
        del dados.log
        exit
    :VEND
    for /f %%i in (dados.log) do dsmove "CN =%%i,OU =computadores,OU =operacional,OU =empresa,DC =dominio,DC =com" -newparent "OU =computadores,OU =vendas,OU =empresa,DC =dominio,DC =com"
        del dados.log
        exit

    Caso voces queirao que o mesmo seja feita de forma automatica, sem ter que selecionar o departamento basta fazer da seguinte forma.

    @echo off
    hostname>dados.log
    for /f %%i in (dados.log) do dsmove "CN =%%i,OU =computadores,OU =administrativo,OU =empresa,DC =dominio,DC =com" -newparent "OU =computadores,OU =financeiro,OU =empresa,DC =dominio,DC =com"
        del dados.log
        exit

    Desta forma ele sera inserido diretamente na OU desejada.

    Para que voce possa fazer esta modificacao diretamente da estacao de trabalho, voce devera colocar na mesma pasta o arquivo do DSMOVE, que é encontrado em computadores que estejam instalados as ferramentas administrativas, no caso voce encontrara para Windows XP ou para Windows Vista / 7.

    Obrigado pela ajuda de todos.

    Atenciosamente.

    Thiago Batista.
    • Marcado como Resposta Thiago B. _ segunda-feira, 18 de janeiro de 2010 11:05
    segunda-feira, 18 de janeiro de 2010 11:04
  • Estou tentado usar o script acima, na minha máquina onde tenho as ferramentas administrativas instaladas funciona direitinho, mas na estação de trabalho que não tem nada instalado não funciona. Copiei o dsmove.exe do c:\windows\system32 do meu micro para a estação de trabalho, mas não funciona, não aparece a mensagem de êxito na conclusão do comando. Alguém pode me ajudar?
    segunda-feira, 1 de setembro de 2014 18:10