Remover
C:\Windows\System32\cmd.exe /k
do arquivo de lote.
A execução de cmd.exe
iniciará um novo prompt de comando, que normalmente não é o que você deseja em um arquivo em lotes.
Estou tendo que instalar atualizações do Windows em vários sistemas independentes. Eu tenho o meu script update_script.bat para ser executado, mas como ele faz um loop através da instalação de cada atualização eu sou solicitado por controles UAC para minhas credenciais. Então eu 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 passo meus scripts para os meus administradores subordinados, eles podem executar rapidamente o primeiro script; ele será automaticamente desconectado, em seguida, eles podem executar o segundo arquivo de script (update_script.bat), mas o problema que estou tendo é quando eu testo o primeiro script para desativar o UAC, a janela de comando pára em:
Desabilitando os controles do UAC ...
A operação foi concluída com sucesso.
c: \ updates >
em vez de completar e forçar logicamente o usuário.
Como obtenho o sistema / script para forçar o logoff depois de desabilitar os controles do UAC?
Tags command-line windows-7 uac logoff script