
Estou tendo que instalar atualizações do Windows em vários sistemas independentes. Tenho meu script update_script.bat para executar, mas à medida que ele executa a instalação de cada atualização, sou solicitado pelos controles do UAC a fornecer minhas credenciais. Então encontrei uma opção de linha de comando para desligar o UAC.
@echo off
echo Disabling UAC controls...
C:\Windows\System32\cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f
C:\Windows\System32\cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v ConsentPromptBehaviorAdmin /t REG_DWORD /d 0 /f
shutdown /l /f
Dessa forma, quando eu passar meus scripts para meus administradores subordinados, eles poderão executar rapidamente o primeiro script; ele os desconectará automaticamente e eles poderão executar o segundo arquivo de script (update_script.bat), mas o problema que estou tendo é que quando testo o primeiro script para desligar o UAC, a janela de comando para em:
Desativando controles UAC...
A operação foi completa com sucesso.
c:\atualizações>
em vez de concluir e desconectar o usuário à força.
Como faço para que o sistema/script force o logoff depois de desabilitar os controles do UAC?
Responder1
Remover
C:\Windows\System32\cmd.exe /k
do arquivo em lote.
A execução cmd.exe
iniciará um novo prompt de comando, o que geralmente não é o que você deseja em um arquivo em lote.