none
Limpar campos no AD RRS feed

  • Pergunta

  • Pessoal

    Tenho o script abaixo que substitui o que está escrito no campo Logon Script da aba Profile do user pelo texto (arquivo.bat) que eu quiser.
    Mas ele não aceita deixar o campo em branco... aliás, aceita apenas que eu trocasse o campo por uma "barra de espaço".
    E isso ta me dando um problema.
    Em alguns usuários quando logam abre a pasta \\domain\netlogon


    Mas eu to precisando de um script pra limpar esse campo.
    Tem como ?

    Obrigado


    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.Properties("Page Size") = 1000
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE

    objCommand.CommandText = _
    "SELECT ADsPath " _
    & "FROM 'LDAP://ou=Empresa,dc=domain,dc=br' " _
    & "WHERE objectCategory='user' AND scriptPath='logon.bat'"
    Set objRecordSet = objCommand.Execute

    Do Until objRecordSet.EOF
    Set objUser = GetObject(objRecordset.Fields("ADsPath").Value)
    objUser.scriptPath = " "
    objUser.SetInfo
    objRecordset.MoveNext
    Loop

    ' Clean up.
    objRecordset.Close
    objConnection.Close


    Aldiko
    terça-feira, 26 de maio de 2009 12:38

Respostas

  • Olá,

    Utilize a linha abaixo:

    objUser.PutEx 1, "scriptPath", vbNullString

    Faça os testes e nos retorne.

    Até mais,

    Jesiel

    Obs.: Se útil, classifique
    • Marcado como Resposta Aldiko terça-feira, 26 de maio de 2009 18:52
    terça-feira, 26 de maio de 2009 16:41
  • Olá,

    Seu script está limpando somente os usuarios que tem o campo scriptPath = 'logon.bat'

    É isso mesmo???

    Pega um usuário e altere o script para logon.bat.

    Depois execute o script para testar...

    Fiz um teste aqui e funcionou...

    Talvez você está querendo executar nos usuários que o script está com outro nome...

    Até mais,

    Jesiel

    Obs.: Se útil, classifique
    • Marcado como Resposta Aldiko terça-feira, 26 de maio de 2009 18:52
    terça-feira, 26 de maio de 2009 17:43

Todas as Respostas

  • Olá,

    Tente colocar assim:

    objUser.scriptPath = ""

    Ou assim:

    objUser.scriptPath = Space(0)


    Faça os testes e nos retorne.

    Até mais,

    Jesiel

    Obs.: Se útil, classifique 
    terça-feira, 26 de maio de 2009 12:52
  • A primeira opção não funcionou.

    na segunda opção deu erro na linha 21 :
    objUser.SetInfo


    Aldiko
    terça-feira, 26 de maio de 2009 13:36
  • Olá,

    Utilize a linha abaixo:

    objUser.PutEx 1, "scriptPath", vbNullString

    Faça os testes e nos retorne.

    Até mais,

    Jesiel

    Obs.: Se útil, classifique
    • Marcado como Resposta Aldiko terça-feira, 26 de maio de 2009 18:52
    terça-feira, 26 de maio de 2009 16:41
  • o script ficou assim abaixo. Não deu erro, mas tambem nao limpou o campo.



    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.Properties("Page Size") = 1000
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE

    objCommand.CommandText = _
    "SELECT ADsPath " _
    & "FROM 'LDAP://ou=financeiro,dc=dominio,dc=com' " _
    & "WHERE objectCategory='user' AND scriptPath='logon.bat' "
    Set objRecordSet = objCommand.Execute

    Do Until objRecordSet.EOF
    Set objUser = GetObject(objRecordset.Fields("ADsPath").Value)
    objUser.PutEx 1, "scriptPath", vbNullString
    'objUser.scriptPath = "logon2.bat"
    objUser.SetInfo
    objRecordset.MoveNext
    Loop

    ' Clean up.
    objRecordset.Close
    objConnection.Close


    Aldiko
    terça-feira, 26 de maio de 2009 16:57
  • Olá,

    Seu script está limpando somente os usuarios que tem o campo scriptPath = 'logon.bat'

    É isso mesmo???

    Pega um usuário e altere o script para logon.bat.

    Depois execute o script para testar...

    Fiz um teste aqui e funcionou...

    Talvez você está querendo executar nos usuários que o script está com outro nome...

    Até mais,

    Jesiel

    Obs.: Se útil, classifique
    • Marcado como Resposta Aldiko terça-feira, 26 de maio de 2009 18:52
    terça-feira, 26 de maio de 2009 17:43
  • Funfou !!!!..  Obrigado mesmo... !!!


    Aldiko
    terça-feira, 26 de maio de 2009 18:52