Como posso fazer o script de uma configuração HKCU para um punhado de usuários em um servidor específico que não possui perfis?

2

Veja o que eu faria manualmente:

  1. Faça login em um servidor com Account1 para criar seu perfil do Windows.
  2. Inicie o Internet Explorer. Clique em Ferramentas > Opções da Internet > Avançado > Desmarque a opção "Verificar a revogação do certificado do editor" e clique em OK. Isso atualiza os "Provedores de HKCU: \ Software \ Microsoft \ Windows \ CurrentVersion \ WinTrust \ Trust \ Publicação de Software \ State".

Gostaria de automatizar de alguma forma o processo acima para que eu não precise fazer o login nos servidores, mas ainda aplique a configuração a todos os usuários. (Usar um GPO funcionaria, mas não é uma opção).

  • Existe uma maneira de simular um login de usuário e definir seu valor de HKCU?
  • Existe uma maneira de, pelo menos, autenticar automaticamente alguém em um servidor e definir o valor?
por Jim 17.06.2011 / 15:18

2 respostas

2

Você vai querer usar o reg-load para editar o padrão ntuser.dat, que será então propagado para todos os perfis recém-criados.

Exemplo:

@echo off
SET Counter=0
SET LogFile=%windir%\temp\Reg.log
echo. > %LogFile%

:LoadRegHive
SET /A Counter += 1
sleep 5
REG LOAD HKU\ChangeMe "c:\Documents and Settings\Default User\NTUSER.DAT"
IF /I %Counter% GEQ 10 GOTO RegLoadError
IF ERRORLEVEL 0 IF NOT ERRORLEVEL 1 (SET Counter=0 && GOTO ChangeKeys) ELSE (GOTO LoadRegHive)

:ChangeKeys
REG ADD "HKEY_USERS\ChangeMe\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "My Pictures" /t REG_EXPAND_SZ /d "%%SystemDrive%%\My Documents\My Pictures" /f
IF ERRORLEVEL 0 IF NOT ERRORLEVEL 1 (echo "Successfully changed My Pictures network reference" >> %LogFile%) ELSE (echo "Error changing My Pictures network reference" >> %LogFile%)

REG ADD "HKEY_USERS\ChangeMe\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "My Music" /t REG_EXPAND_SZ /d "%%SystemDrive%%\My Documents\My Music" /f
IF ERRORLEVEL 0 IF NOT ERRORLEVEL 1 (echo "Successfully changed My Music network reference" >> %LogFile%) ELSE (echo "Error changing My Music network reference" >> %LogFile%)

REG ADD "HKEY_USERS\ChangeMe\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Personal" /t REG_EXPAND_SZ /d "%%SystemDrive%%\My Documents" /f
IF ERRORLEVEL 0 IF NOT ERRORLEVEL 1 (echo "Successfully changed Personal network reference" >> %LogFile%) ELSE (echo "Error changing My Music network reference" >> %LogFile%)

REG UNLOAD HKU\ChangeMe

GOTO End

:RegLoadError
echo "Error loading the registry hive after 10 tries." >> %LogFile%
GOTO END

:End
EXIT
    
por 17.06.2011 / 15:56
1

Parece que seria bastante trivial aplicar um script de logon no servidor no GPO local que faz a alteração desejada. Quando os usuários fazem logon, a mudança acontece.

No caso do computador do Terminal Server ser membro de um domínio, eu usaria o processamento de diretivas de loopback para atribuir o script de logon.

No script, acabei de verificar que o usuário era um dos "punhados" antes de aplicar a configuração.

    
por 17.06.2011 / 16:43