Construindo o win7 autônomo, execute um arquivo de lote como admin * após a fase de preparação da área de trabalho?

0

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?

user1002617
fonte
Parece-me que você está fazendo duas perguntas separadas (ou, pelo menos, separáveis): (1) Como faço para que meu roteiro seja executado depois que tudo o mais esteja feito e a poeira tenha se estabilizado? e (2) Como faço para que meu script seja executado como administrador? Estou certo ou sabe a resposta para um deles? (A resposta para o nº 1 pode ser "esperar n segundos, talvez polling (algo) para ver se as outras coisas estão feitas. ") Se você está realmente fazendo duas perguntas separadas, talvez você devesse realmente pergunte duas perguntas separadas, ou seja, clique em Perguntar e peça um separadamente.
Scott
Eu sei como executar o script na fase certa, mas apenas de uma forma que não permite admin - e eu sei como executar o script como admin, mas não durante a fase certa ... então é uma questão de dois complicações entrelaçadas. Pelo que eu entendo, vou precisar de uma abordagem diferente de qualquer uma das idéias fracassadas que tive.
user1002617

Respostas:

0

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:

Set UAC = CreateObject("Shell.Application") 
UAC.ShellExecute "cmd.exe", "/c FILEPATH", "", "runas", 1 
ThexTallxDude
fonte
Obrigado, vou tentar isso. Especificamente, quero executar o script depois de ele cria o material do perfil do usuário - os atalhos da área de trabalho, itens do menu inicial etc. - como é agora, eu tenho um script que limpa tudo no menu Iniciar e no desktop e os substitui por coisas novas ... mas durante o "preparando seu desktop" pela primeira vez, um punhado dos ícones que eu deletei parecem voltar (IE, etc), então eu quero rodar este script e deletar Essa (esta fase também parece fazer algumas alterações no registro que sobrescrevem o que eu fiz na pós-instalação - então meu script muda isso)
user1002617