Usuário com melhor resposta
Alterar Regedit remotamente

Pergunta
-
Bom dia pessoal!
Tô precisando alterar algumas chaves do regedit de algumas estações, porém, remotamente.
Tipo:
Eu entro com o nome da estação no "InputBox" para q o script altere p mim as chaves do regedit dessa estação.
Poderiam me ajudar nisso... tentei aki mas me perdi.
Grato.
Respostas
-
Tente utilizar o modelo abaixo:
Code BlockConst HKEY_LOCAL_MACHINE = &H80000002
strComputer = InputBox("Digite o nome do computador.", "Inserir")
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\System Admin Scripting Guide"'Para adicionar um valor String
strValueName = "Nome do novo valor"
strValue = "Valor"
oReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue'Para adicionar um valor DWORD
strValueName = "Nome do valor"
dwValue = 82
oReg.SetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,dwValue -
1) São constantes padrão da linguem VBScript.
2)
Const HKEY_CLASSES_ROOT = &H80000000
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_USERS = &H80000003
Const HKEY_CURRENT_CONFIG = &H80000005Maiores detalhes: http://www.serverwatch.com/tutorials/article.php/1476831
-
Só cuidado com um detalhe: alterar a chave HKCU remotamente serve somente para mudar a chave HKCU do usuário logado na estação atual, não na remota. Isso acontece porque o HKCU é uma chave que é um ponteiro pro NTUSER.DAT do usuário logado no momento. Se você tentar modificar o HKCU de um usuário remotamente, vai estar alterando o seu naquela máquina, e não o dele.
Uma alternativa mais simples NESSE CASO, é usar um script de logon. Ele roda com as credenciais do usuário, e, nesse caso, consegue modificar o HKCU dele mesmo.
É válido lembrar também que qualquer usuário consegue modificar o HKEY_CURRENT_USER e tudo que tiver abaixo dessa chave. Não adianta configurar nada lá que seja importante em termos de segurança, já que o próprio usuário, se for um pouco mais espertinho, vai conseguir reverter a mudança, uma vez que ele é dono do arquivo e pode fazer o que bem entender dentro dele.
[]s,
--
Vinicius Canto
MVP Windows Server - Admin Frameworks
MCP Windows 2000 Server, Windows XP e SQL Server 2000
Bacharelando em Ciências da Computação - USP
Blog sobre Scripting e Windows Powershell: http://viniciuscanto.blogspot.com
Todas as Respostas
-
Amigo.
Já houve alguns posts com mesma dúvida, segue abaixo link para visualização.
http://forums.microsoft.com/Technet-BR/ShowPost.aspx?PostID=1794175&SiteID=29
Qualquer duvida post novamente, espero ter ajudado
Antenciosamente
Kelsen Lima
Obs.: Classificando os posts você estará ajudando outros colaboradores com a mesma duvida.
-
Tente utilizar o modelo abaixo:
Code BlockConst HKEY_LOCAL_MACHINE = &H80000002
strComputer = InputBox("Digite o nome do computador.", "Inserir")
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\System Admin Scripting Guide"'Para adicionar um valor String
strValueName = "Nome do novo valor"
strValue = "Valor"
oReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue'Para adicionar um valor DWORD
strValueName = "Nome do valor"
dwValue = 82
oReg.SetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,dwValue -
Boa tarde Bruno... Blz?
O q eu tava tentando aki era algo parecido mas estava me perdendo, porém, as chaves q estou tentando alterar estão em:
--> HKEY_CURRENT_USER
-->HKEY_USERS
Me desculpe a ignorância.
Dúvidas:
1- Onde vc conseguiu esse valor:
Const HKEY_LOCAL_MACHINE = &H80000002
2 - E quais seriam os valores para:
HKEY_CURRENT_USER = ?
HKEY_USERS = ?
Grato.
-
1) São constantes padrão da linguem VBScript.
2)
Const HKEY_CLASSES_ROOT = &H80000000
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_USERS = &H80000003
Const HKEY_CURRENT_CONFIG = &H80000005Maiores detalhes: http://www.serverwatch.com/tutorials/article.php/1476831
-
-
-
Só cuidado com um detalhe: alterar a chave HKCU remotamente serve somente para mudar a chave HKCU do usuário logado na estação atual, não na remota. Isso acontece porque o HKCU é uma chave que é um ponteiro pro NTUSER.DAT do usuário logado no momento. Se você tentar modificar o HKCU de um usuário remotamente, vai estar alterando o seu naquela máquina, e não o dele.
Uma alternativa mais simples NESSE CASO, é usar um script de logon. Ele roda com as credenciais do usuário, e, nesse caso, consegue modificar o HKCU dele mesmo.
É válido lembrar também que qualquer usuário consegue modificar o HKEY_CURRENT_USER e tudo que tiver abaixo dessa chave. Não adianta configurar nada lá que seja importante em termos de segurança, já que o próprio usuário, se for um pouco mais espertinho, vai conseguir reverter a mudança, uma vez que ele é dono do arquivo e pode fazer o que bem entender dentro dele.
[]s,
--
Vinicius Canto
MVP Windows Server - Admin Frameworks
MCP Windows 2000 Server, Windows XP e SQL Server 2000
Bacharelando em Ciências da Computação - USP
Blog sobre Scripting e Windows Powershell: http://viniciuscanto.blogspot.com -