none
Inserir o nome do meu script no campo: Logon script RRS feed

  • Pergunta

  • Boa noite pessoal,

     

    Sou novo por aqui e gostaria de uma ajuda.

    Gostaria de saber se tem como eu criar um script que verifica o atributo Logon script: do usuario no AD  se esta preenchido com o mome do meu script e se não estiver preencher esse campo.

     

    Ex: Tenho alguns usuarios que no campo Logon script está: mapear.vbs, só que em alguns não está escrito nada nesse campo, gostaria de inserir o nome do meu script nesse campo para todos os usuarios que estão faltando. Teria como?

     

    Obrigado.

    terça-feira, 6 de maio de 2008 00:59

Respostas

  • Rodrigo segue script para isso, só altere o que está em negrito:

     

    On Error Resume Next

    Const ADS_SCOPE_SUBTREE = 2
    Const ADS_PROPERTY_CLEAR = 1

    Set objConnection = CreateObject("ADODB.Connection")
    Set objCommand =   CreateObject("ADODB.Command")
    objConnection.Provider = "ADsDSOObject"
    objConnection.Open "Active Directory Provider"
    Set objCommand.ActiveConnection = objConnection

    objCommand.Properties("Page Size") = 1000
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE

    objCommand.CommandText = _
        "SELECT AdsPath FROM 'LDAP://dc=seu_dominio,dc=com,dc=br' WHERE objectCategory='user'"
    Set objRecordSet = objCommand.Execute

    objRecordSet.MoveFirst
    Do Until objRecordSet.EOF
        Set objUser = GetObject(objRecordSet.Fields("AdsPath").Value)
        if objUser.scriptPath <> "mapear.vbs" then
         objUser.Put "scriptPath","mapear.vbs"
         objUser.SetInfo
        end if
        objRecordSet.MoveNext
    Loop

     

    ps: você quer colocar todos os scripts paths como mapear.vbs ou vão ter alguns diferentes, se tiver, você vai ter que alterar essa linha aqui e colocar só os que estão faltando:

     

    mudar essa linha    if objUser.scriptPath <> "mapear.vbs" then

    para essa     if objUser.scriptPath = "" then

    terça-feira, 6 de maio de 2008 17:06

Todas as Respostas

  • Rodrigo segue script para isso, só altere o que está em negrito:

     

    On Error Resume Next

    Const ADS_SCOPE_SUBTREE = 2
    Const ADS_PROPERTY_CLEAR = 1

    Set objConnection = CreateObject("ADODB.Connection")
    Set objCommand =   CreateObject("ADODB.Command")
    objConnection.Provider = "ADsDSOObject"
    objConnection.Open "Active Directory Provider"
    Set objCommand.ActiveConnection = objConnection

    objCommand.Properties("Page Size") = 1000
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE

    objCommand.CommandText = _
        "SELECT AdsPath FROM 'LDAP://dc=seu_dominio,dc=com,dc=br' WHERE objectCategory='user'"
    Set objRecordSet = objCommand.Execute

    objRecordSet.MoveFirst
    Do Until objRecordSet.EOF
        Set objUser = GetObject(objRecordSet.Fields("AdsPath").Value)
        if objUser.scriptPath <> "mapear.vbs" then
         objUser.Put "scriptPath","mapear.vbs"
         objUser.SetInfo
        end if
        objRecordSet.MoveNext
    Loop

     

    ps: você quer colocar todos os scripts paths como mapear.vbs ou vão ter alguns diferentes, se tiver, você vai ter que alterar essa linha aqui e colocar só os que estão faltando:

     

    mudar essa linha    if objUser.scriptPath <> "mapear.vbs" then

    para essa     if objUser.scriptPath = "" then

    terça-feira, 6 de maio de 2008 17:06
  • Obrigado Laerte, valeu mesmo, funcionou direitinho...

    Agora, precisava só de mais uma coisa, queria exporar a lista de computadores do AD para um arquivo TXT ou cvs.

    Teria como me ajudar?

     

    Obrigado.

     

     

    terça-feira, 6 de maio de 2008 21:37
  • rodrigo segue o script que quer

     

    dim computadores()
    i = 0
    strComputer = "."

    Const ADS_SCOPE_SUBTREE = 2

    Set objConnection = CreateObject("ADODB.Connection")
    Set objCommand =   CreateObject("ADODB.Command")
    objConnection.Provider = "ADsDSOObject"
    objConnection.Open "Active Directory Provider"

    Set objCOmmand.ActiveConnection = objConnection
    objCommand.CommandText = _
        "Select Name, Location from 'LDAP://DC=seudominio,DC=com,DC=br' " _
            & "Where objectClass='computer'" 
    objCommand.Properties("Page Size") = 1000
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
    Set objRecordSet = objCommand.Execute
    objRecordSet.MoveFirst

    Do Until objRecordSet.EOF
     ReDim Preserve Computadores(i)
        Computadores(i) = objRecordSet.Fields("Name").Value
        i = i + 1
        objRecordSet.Movenext
    Loop

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objTextFile = objFSO.CreateTextFile("C:\computadores.txt", True)

    for j=0 to i-1

      objTextFile.writeline computadores(j)

    next

     

    esse script pega todas os computadores do seu ad e salva num arquivo chamado computadores no C: Wink

     

    ps: caso a resposta lhe ajudou, favor marca-la para melhoria do fórum Wink

    terça-feira, 6 de maio de 2008 22:00
  •  

    Laerte, mais uma vez muito obrigado, me ajudou muito, valeu pela ajuda !!!

     

     

    Abraços,

    quarta-feira, 7 de maio de 2008 16:01