Estou construindo uma instalação autônoma do win7 e estou correndo para um problema final:
Meu processo atual instalará vários programas na fase de pós-instalação e, em seguida, executará alguns scripts em lote e chaves do Registro para limpar o menu Iniciar, a área de trabalho e os menus de contexto.
Tudo parece funcionar, exceto que após o login pela primeira vez e a preparação do seu desktop, etc., alguns dos ícones e itens do menu de contexto retornam / são gerados no primeiro login.
Eu escrevi um arquivo de lote que corrige cada uma dessas alterações indesejadas, mas não posso, para minha vida, descobrir como fazer isso funcionar automaticamente. depois de essa fase de preparação é feita.
Eu tentei:
- ter meu script copiá-lo para o Startup do menu Iniciar - isso não funciona, pois não tem direitos de administrador dessa maneira
- ter meu script copiar um atalho run-as-admin para o script no Startup - isso não funciona porque, eu acho, a inicialização não vai fazer atalhos run-as-admin?
- executando todas as instruções na fase de pós-instalação - isso não funciona porque algumas das coisas que estou removendo parecem ser geradas na fase de preparação da área de trabalho
Eu preciso ser capaz de ter este script executado automaticamente no primeiro login, após a preparação da área de trabalho, e para construir essa funcionalidade no meu ISO sem supervisão. Seria bom não ter que aceitar um prompt do UAC, mas não acho que isso seja possível - então um prompt do UAC é aceitável.
Para ser claro, se eu manualmente executar este script que eu escrevi e aceitar o prompt do UAC, ele faz tudo o que eu quero perfeitamente. Eu simplesmente não consigo obtê-lo para disparar automaticamente no momento certo.
Existe alguma maneira de fazer isso inteiramente dentro da mídia de instalação do Windows?
fonte
Respostas:
Se eu entendi a pergunta corretamente, você quer que o PC execute silenciosamente o lote como admin após a reinicialização.
Se este for o caso, eu recomendo inserir um valor de string na chave de registro 'RunOnce' antes de reinicializar para iniciar um script Visual Basic que obtenha privilégios de administrador (isso pode pedir a entrada do usuário, geralmente apenas clicando em 'Sim') e então lote. Eu sei que é meio volumoso, mas é assim que eu fiz isso funcionar para mim. VBS abaixo:
fonte