Executando arquivo em lote com direitos elevados por meio de GPO

Executando arquivo em lote com direitos elevados por meio de GPO

Tenho um atalho que usa especificamente o Google Chrome. Temos XP e Windows 7 em nosso ambiente e quero usar apenas um atalho para ambos os sistemas operacionais. A razão é que nosso ambiente é bastante confuso, com alguns usuários ainda usando scripts de logon, enquanto outros usam GPO para tudo.

Aqui está o arquivo em lote que desejo usar para o script de inicialização do computador:

if exist "C:\Program Files\Google\" (
    mklink /d "C:\Program Files\Google\Chrome" "C:\Program Files (x86)"\Google\Chrome"
) else (
    mklink /d "C:\Program Files\Google\" "C:\Program Files (x86)"\Google\"
)

Criei um novo GPO > coloquei o script no diretório dessa política \\domain\SysVol\domain\Policies\{}\Machine\Scripts\Startup> adicionei o script ao Computer Configuration > Policies > windows Settings > Scripts > Startup > script.bat. Vinculei esse GPO à UO criada e o objeto de computador está nessa UO.

Fiz um GPResult e vejo que o GP foi aplicado, mas não criou o link simbólico que esperava. Há algum problema com o NT Authority\Local System criando pastas em C:\? Tentei mudar o script para just mkdir C:\tempe também não funcionou.

Nota: O script acima funciona perfeitamente se eu executar o script na configuração do usuário e esse usuário tiver direitos de administrador.

ATUALIZAÇÃO: Tentei fazer mklink com Powershell sem sucesso também. Tenho certeza de que você não pode executar o mklink no script de inicialização. Então, em vez de usar esse script, eu apenas uso a segmentação por nível de item na preferência do usuário para copiar um link diferente dependendo do sistema operacional.

Responder1

É possível que a conexão de rede do seu computador não tenha sido inicializada antes que a Política de Grupo tente executar o seu script. O artigo MSKBOs clientes do Windows 7 falham intermitentemente ao aplicar a política de grupo na inicializaçãoexplica o comportamento em que os scripts de inicialização falham porque o link de rede não está pronto quando o GP executa o script. Duas soluções são oferecidas:

Através da Política de Grupo:

  • Configurar oTempo de espera do processamento da política de inicializaçãoconfigurando Computer Configuration > Policies > Admin Templates > System > Group Policyum valor longo o suficiente para que o computador inicialize sua conexão de rede. Usei 10 segundos com grande sucesso.

Através do Registro:

  • Crie o valor DWORDGpNetworkStartTimeoutPolicyValuena subchave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogone forneça um valor de tempo de espera decimal em segundos.

informação relacionada