none
Script para alterar registro RRS feed

  • Pergunta

  • Olá!

    Estou tentando rodar o script abaixo.

    Quando rodo o script na mão funciona corretamente, e quando tento rodar por GPO não funciona.

    Quando eu rodo o gpresult ele mostra que a GPO foi aplicada, mas o registro não é alterado.

     

    Option Explicit

    Dim sh
    Dim NOME_ARQUIVO

    Set sh = CreateObject("WScript.Shell")
    NOME_ARQUIVO = "\\s005\scriptlogon\mail\regautentica.reg"

    If sh.Run("regedit.exe /s " & NOME_ARQUIVO) <> 0 Then
     WScript.Echo "Erro importando arquivo: " & Err.Number & " - " & Err.Description
    End if

    Onde regautentica.reg é:

    REGEDIT4

    [HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\INTERNET ACCOUNT MANAGER\ACCOUNTS\00000001]
    "SMTP Use Sicily"=dword:00000002

    [HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\INTERNET ACCOUNT MANAGER\ACCOUNTS\00000002]
    "SMTP Use Sicily"=dword:00000002

    [HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\INTERNET ACCOUNT MANAGER\ACCOUNTS\00000003]
    "SMTP Use Sicily"=dword:00000002

    [HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\INTERNET ACCOUNT MANAGER\ACCOUNTS\00000004]
    "SMTP Use Sicily"=dword:00000002

    [HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\INTERNET ACCOUNT MANAGER\ACCOUNTS\00000005]
    "SMTP Use Sicily"=dword:00000002

    Alguém tem alguma sugestão?

    Grata.

     

    quinta-feira, 22 de abril de 2010 14:55

Respostas

  • Quando o script tenta modificar current_user essa chave é referente a conta que está executando o script, por isso que não altera no perfil do usuário.

    Através de GPO vc pode dar permissão de modificação ao usuário, segue exmplo abaixo.

    Configuração de Computador -> Configurações do Windows-> Configurações de Segurança, botão direito em registry e "ADD", adicione a chave que você especificou acima e dê permissão para o grupo domain users.

    Abraço e qualquer dúvida poste.

     


    Gabriel Nascimento MCP / MCSA / CCNA Não esqueça de contribuir para organização dos fóruns - Classifique as respostas
    • Marcado como Resposta Gláucia quinta-feira, 29 de abril de 2010 16:55
    quinta-feira, 22 de abril de 2010 20:04
  • Glaucia,

    Salve esse script como vbs e tente executar com uma conta de admin, você vai ver que ele atualiza todos os usuarios.

    Se funcionar certinho configure na GPO como script de computador, lembre de dar permissão no sharing para o grupo usuarios autenticados se não os computadores não terão acesso de leitura.

    Teste primeiro em um Computador par ver se está ok.


    Const HKEY_LOCAL_MACHINE = &H80000002
    Const HKEY_USERS = &H80000003

    strValueName = "SMTP Use Sicily"
    dwValue = 2

    strComputer = "."
     
    Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
        strComputer & "\root\default:StdRegProv")
     
    strKeyPath = ""
    oReg.EnumKey HKEY_USERS, strKeyPath, arrSubKeys
     
    For Each subkey In arrSubKeys
        'WScript.Echo subkey
        strpath = subkey & "\SOFTWARE\MICROSOFT\INTERNET ACCOUNT MANAGER\ACCOUNTS"
        oReg.EnumKey HKEY_USERS, strpath, arrSubKeys2
        If Not IsNull (arrSubKeys2) Then
        oReg.SetDWORDValue HKEY_USERS,strpath & "\00000001",strValueName,dwValue
        oReg.SetDWORDValue HKEY_USERS,strpath & "\00000002",strValueName,dwValue
        oReg.SetDWORDValue HKEY_USERS,strpath & "\00000003",strValueName,dwValue
        oReg.SetDWORDValue HKEY_USERS,strpath & "\00000004",strValueName,dwValue
        oReg.SetDWORDValue HKEY_USERS,strpath & "\00000005",strValueName,dwValue
        End If 
       
    Next

     

    Qualquer dúvida poste.

    Abraço.


    Gabriel Nascimento MCP / MCSA / CCNA http://gabrielnascimentoit.spaces.live.com -- Se for útil vote.
    • Marcado como Resposta Gláucia quinta-feira, 29 de abril de 2010 16:56
    segunda-feira, 26 de abril de 2010 20:28
  • Gabriel,

    Funcionou certinho quando coloquei para rodar durante o logon do usuário, em um outro momento eu tinha dado permissão através da GPO para todos gravarem nesta chave do registro, então independente do cara ser administrador ou não, funciona.

    Até agora  testei só nos micros da infraestrutura, e em uma de nossas estações apresentou erro na linha 9: Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
        strComputer & "\root\default:StdRegProv"). Acredito que seja alguma coisa no micro. O que exatamente faz esta linha?

    Agradeço a atenção!

    Aguardo retorno.

     

     

    • Marcado como Resposta Gláucia quinta-feira, 29 de abril de 2010 16:56
    quinta-feira, 29 de abril de 2010 11:34

Todas as Respostas

  • Esse script está rodando nas configurações de inicialização do computador ou no logon do usuário?

    Esse script deve rodar no logon do usuario já que altera o current User.

    Verifique se este usuario tem acesso a alterar essa chave de registro...Quando vc roda na mão na senha do usuario funciona ou está testando com uma senha de administrador?

    Abraço.


    Gabriel Nascimento MCP / MCSA / CCNA Não esqueça de contribuir para organização dos fóruns - Classifique as respostas
    quinta-feira, 22 de abril de 2010 16:10
  • Gabriel,

    Estou rodando na inicialização do computador, para não depender do usuário.

    Vou precisar usar o runas?

    Grata,

    Gláucia.

    quinta-feira, 22 de abril de 2010 18:15
  • Quando o script tenta modificar current_user essa chave é referente a conta que está executando o script, por isso que não altera no perfil do usuário.

    Através de GPO vc pode dar permissão de modificação ao usuário, segue exmplo abaixo.

    Configuração de Computador -> Configurações do Windows-> Configurações de Segurança, botão direito em registry e "ADD", adicione a chave que você especificou acima e dê permissão para o grupo domain users.

    Abraço e qualquer dúvida poste.

     


    Gabriel Nascimento MCP / MCSA / CCNA Não esqueça de contribuir para organização dos fóruns - Classifique as respostas
    • Marcado como Resposta Gláucia quinta-feira, 29 de abril de 2010 16:55
    quinta-feira, 22 de abril de 2010 20:04
  • Olá Gabriel,

    Acabei de dar a permissão para todos alterarem a chave... mas continua não funcionando.

    Estou testando agora o script abaixo com a mesma finalidade

    Const HKEY_CURRENT_USER = &H80000001

    strComputer = "."
    Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
     
    strKeyPath = "SOFTWARE\MICROSOFT\INTERNET ACCOUNT MANAGER\ACCOUNTS\00000001"

    strValueName = "SMTP Use Sicily"
    dwValue = 2
    objRegistry.SetDWORDValue HKEY_CURRENT_USER, strKeyPath, strValueName, dwValue

    strKeyPath = "SOFTWARE\MICROSOFT\INTERNET ACCOUNT MANAGER\ACCOUNTS\00000002"

    strValueName = "SMTP Use Sicily"
    dwValue = 2
    objRegistry.SetDWORDValue HKEY_CURRENT_USER, strKeyPath, strValueName, dwValue

    strKeyPath = "SOFTWARE\MICROSOFT\INTERNET ACCOUNT MANAGER\ACCOUNTS\00000003"

    strValueName = "SMTP Use Sicily"
    dwValue = 2
    objRegistry.SetDWORDValue HKEY_CURRENT_USER, strKeyPath, strValueName, dwValue

    strKeyPath = "SOFTWARE\MICROSOFT\INTERNET ACCOUNT MANAGER\ACCOUNTS\00000004"

    strValueName = "SMTP Use Sicily"
    dwValue = 2
    objRegistry.SetDWORDValue HKEY_CURRENT_USER, strKeyPath, strValueName, dwValue

    strKeyPath = "SOFTWARE\MICROSOFT\INTERNET ACCOUNT MANAGER\ACCOUNTS\00000005"

    strValueName = "SMTP Use Sicily"
    dwValue = 2
    objRegistry.SetDWORDValue HKEY_CURRENT_USER, strKeyPath, strValueName, dwValue

    Mais alguma idéia?

    Muito obrigada!

    Gláucia.

     

     

    quinta-feira, 22 de abril de 2010 20:32
  • Olá Gabriel,

    Acabei de dar a permissão para todos alterarem a chave... mas continua não funcionando.

    Estou testando agora o script abaixo com a mesma finalidade

    Const HKEY_CURRENT_USER = &H80000001

    strComputer = "."
    Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
     
    strKeyPath = "SOFTWARE\MICROSOFT\INTERNET ACCOUNT MANAGER\ACCOUNTS\00000001"

    strValueName = "SMTP Use Sicily"
    dwValue = 2
    objRegistry.SetDWORDValue HKEY_CURRENT_USER, strKeyPath, strValueName, dwValue

    strKeyPath = "SOFTWARE\MICROSOFT\INTERNET ACCOUNT MANAGER\ACCOUNTS\00000002"

    strValueName = "SMTP Use Sicily"
    dwValue = 2
    objRegistry.SetDWORDValue HKEY_CURRENT_USER, strKeyPath, strValueName, dwValue

    strKeyPath = "SOFTWARE\MICROSOFT\INTERNET ACCOUNT MANAGER\ACCOUNTS\00000003"

    strValueName = "SMTP Use Sicily"
    dwValue = 2
    objRegistry.SetDWORDValue HKEY_CURRENT_USER, strKeyPath, strValueName, dwValue

    strKeyPath = "SOFTWARE\MICROSOFT\INTERNET ACCOUNT MANAGER\ACCOUNTS\00000004"

    strValueName = "SMTP Use Sicily"
    dwValue = 2
    objRegistry.SetDWORDValue HKEY_CURRENT_USER, strKeyPath, strValueName, dwValue

    strKeyPath = "SOFTWARE\MICROSOFT\INTERNET ACCOUNT MANAGER\ACCOUNTS\00000005"

    strValueName = "SMTP Use Sicily"
    dwValue = 2
    objRegistry.SetDWORDValue HKEY_CURRENT_USER, strKeyPath, strValueName, dwValue

    Mais alguma idéia?

    Muito obrigada!

    Gláucia.

     

     

    quinta-feira, 22 de abril de 2010 20:32
  • Glaucia,

    O Script acima faz a mesma coisa que o outro (utiliza o Current User) e como vc está rodando o script na inicialização do computador o Current User é a conta system, por isso que não deve estar alterando no perfil do usuário.

    Se vc executar na sua conta funciona?

    Se vc executar manualmente na estação de um usuario com a conta dele sem privilégios administrativos funciona?

    Aguardo sua resposta.


    Gabriel Nascimento MCP / MCSA / CCNA Não esqueça de contribuir para organização dos fóruns - Classifique as respostas
    sexta-feira, 23 de abril de 2010 02:54
  • Boa tarde,

    Estou tentando rodar o script no "ao efetuar logon" porém nem roda...  Quando coloco ao iniciar o computador, ele tenta funcionar, pois mandei copiar o arquivo.reg na estação, e ele copia direitnho... só não executa a .reg.

    Alguém pode me ajudar????

    Grata....

     

     

    segunda-feira, 26 de abril de 2010 15:24
  • Olá,


    Crie um script simples, conforme abaixo e verifique se ele está aplicando:

     

    wscript.echo "OK"

     

    Verifique se o script está sendo executado.


    Depois teste o arquivo .reg para testar se esta funcionando.

    O arquivo .reg deve ter a seguinte estrutura:

     

    Windows Registry Editor Version 5.00

    [HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\INTERNET ACCOUNT MANAGER\ACCOUNTS\00000001]
    "SMTP Use Sicily"=dword:00000002

    [HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\INTERNET ACCOUNT MANAGER\ACCOUNTS\00000002]
    "SMTP Use Sicily"=dword:00000002

    [HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\INTERNET ACCOUNT MANAGER\ACCOUNTS\00000003]
    "SMTP Use Sicily"=dword:00000002

    [HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\INTERNET ACCOUNT MANAGER\ACCOUNTS\00000004]
    "SMTP Use Sicily"=dword:00000002

    [HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\INTERNET ACCOUNT MANAGER\ACCOUNTS\00000005]
    "SMTP Use Sicily"=dword:00000002

     

    Até mais,

    Jesiel

    Obs.: Se útil, classifique

     

     

     

    segunda-feira, 26 de abril de 2010 17:39
  • Bom... coloquei a GPO para rodar em cima de uma OU de usuários, e se o usuário for administrador da máquina ela funciona direitinho...

    Faço a cópia do .reg para o micro e executo a partir daí.

    Se o usuário for restrito... não roda de jeito nenhum...

    Tentei dar permissão na chave através da GPO - usando permissões de registro, mas só encontro CLASS_ROOT, MACHINE e USERS.... não sei como dar permissão para as chaves do HKCU...

    Acho que agora só falta isso...

    Li em algum lugar que tem como colocar o usuário logado como administrador do micro e retirá-lo logo em seguida... mas não encontrei o comando para fazer isso. Se uso o runas não funciona também.

    O meu script está assim:

    net use m: /delete /y
    net use m: \\s005\scriptlogon /y
    c:\windows\system32\xcopy m:\mail\26_04\regautentica.reg c:\. /y
    start c:\windows\regedit /s "c:\regautentica.reg"

    net use m: /delete /y

    sendo a regautentica.reg é:

    REGEDIT4

    [HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\INTERNET ACCOUNT MANAGER\ACCOUNTS\00000001]
    "SMTP Use Sicily"=dword:00000002

    [HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\INTERNET ACCOUNT MANAGER\ACCOUNTS\00000002]
    "SMTP Use Sicily"=dword:00000002

    [HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\INTERNET ACCOUNT MANAGER\ACCOUNTS\00000003]
    "SMTP Use Sicily"=dword:00000002

    [HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\INTERNET ACCOUNT MANAGER\ACCOUNTS\00000004]
    "SMTP Use Sicily"=dword:00000002

    [HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\INTERNET ACCOUNT MANAGER\ACCOUNTS\00000005]
    "SMTP Use Sicily"=dword:00000002

     

    Desde já agradeço a atenção!

    Obrigada!

     

     

     

    segunda-feira, 26 de abril de 2010 19:43
  • Glaucia,

    Salve esse script como vbs e tente executar com uma conta de admin, você vai ver que ele atualiza todos os usuarios.

    Se funcionar certinho configure na GPO como script de computador, lembre de dar permissão no sharing para o grupo usuarios autenticados se não os computadores não terão acesso de leitura.

    Teste primeiro em um Computador par ver se está ok.


    Const HKEY_LOCAL_MACHINE = &H80000002
    Const HKEY_USERS = &H80000003

    strValueName = "SMTP Use Sicily"
    dwValue = 2

    strComputer = "."
     
    Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
        strComputer & "\root\default:StdRegProv")
     
    strKeyPath = ""
    oReg.EnumKey HKEY_USERS, strKeyPath, arrSubKeys
     
    For Each subkey In arrSubKeys
        'WScript.Echo subkey
        strpath = subkey & "\SOFTWARE\MICROSOFT\INTERNET ACCOUNT MANAGER\ACCOUNTS"
        oReg.EnumKey HKEY_USERS, strpath, arrSubKeys2
        If Not IsNull (arrSubKeys2) Then
        oReg.SetDWORDValue HKEY_USERS,strpath & "\00000001",strValueName,dwValue
        oReg.SetDWORDValue HKEY_USERS,strpath & "\00000002",strValueName,dwValue
        oReg.SetDWORDValue HKEY_USERS,strpath & "\00000003",strValueName,dwValue
        oReg.SetDWORDValue HKEY_USERS,strpath & "\00000004",strValueName,dwValue
        oReg.SetDWORDValue HKEY_USERS,strpath & "\00000005",strValueName,dwValue
        End If 
       
    Next

     

    Qualquer dúvida poste.

    Abraço.


    Gabriel Nascimento MCP / MCSA / CCNA http://gabrielnascimentoit.spaces.live.com -- Se for útil vote.
    • Marcado como Resposta Gláucia quinta-feira, 29 de abril de 2010 16:56
    segunda-feira, 26 de abril de 2010 20:28
  • Olá Gabriel,

    O script funciona direitinho se eu rodá-lo como administrador no meu micro.

    Quando coloquei na GPO (Config. do Computador - scripts inicialização) não funcionou.

    Dei permissão de leitura no compartilhamento/segurança da pasta onde está o vbs para: usuários autenticados, todos e computadores do domínio.

    Aguardo retorno,

    Obrigada!!!!

     

    terça-feira, 27 de abril de 2010 12:11
  • Verifique se a GPO foi aplicada corretamente através do rsop.msc ou do Gpresult.

    Tente forçar a aplicação da GPO com gpupdate /force.

    Aguardo seu retorno.


    Gabriel Nascimento MCP / MCSA / CCNA http://gabrielnascimentoit.spaces.live.com -- Se for útil vote.
    terça-feira, 27 de abril de 2010 12:32
  • Gabriel,

    Funcionou certinho quando coloquei para rodar durante o logon do usuário, em um outro momento eu tinha dado permissão através da GPO para todos gravarem nesta chave do registro, então independente do cara ser administrador ou não, funciona.

    Até agora  testei só nos micros da infraestrutura, e em uma de nossas estações apresentou erro na linha 9: Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
        strComputer & "\root\default:StdRegProv"). Acredito que seja alguma coisa no micro. O que exatamente faz esta linha?

    Agradeço a atenção!

    Aguardo retorno.

     

     

    • Marcado como Resposta Gláucia quinta-feira, 29 de abril de 2010 16:56
    quinta-feira, 29 de abril de 2010 11:34
  • Essa linha é executada para pegar informações de registro via WMI.

    O estranho é que esse script deveria rodar via configurações de computador já que a conta system tem privilégios de admin.

    Abraço.


    Gabriel Nascimento MCP / MCSA / CCNA http://gabrielnascimentoit.spaces.live.com -- Se for útil vote.
    quinta-feira, 29 de abril de 2010 12:08