Scripts de logoff no Windows 7

2

Eu tenho máquinas públicas que preciso executar scripts de logoff, que estão em Perl. Eu quero que o script seja executado por um usuário padrão. Parece que o UAC está impedindo que isso aconteça. Então, eu mudei o nível do UAC para "never notify", o que parece estar desativando o UAC. Mas ainda não há dados. Esses scripts precisam ser executados no logoff!

    
por chrsblck 16.06.2011 / 21:01

2 respostas

0

O UAC bloqueia programas que precisam de acesso de administrador.

Se seus scripts perl estiverem pedindo elevação, então, para um usuário padrão, mesmo se o UAC estiver desativado, o Windows solicitará acesso de administrador (Comportamento semelhante ao Windows XP).

O que o script de logoff faz? Se precisar executar algo que precise de privilégio de administrador, talvez seja necessário escrever uma tarefa agendada ou um serviço do Windows que seja executado na conta do Administrador para fazer isso por você.

    
por 16.06.2011 / 21:28
0

A partir da sua descrição, parece que o script requer privilégios de administrador para executar. A menos que o script seja iniciado a partir de um processo que tenha um token de administrador, você será solicitado pelo UAC a elevar seus privilégios.

Você pode contornar essa limitação com um simples serviço do Windows que é executado como o usuário LOCAL SYSTEM e implementa o método OnCustomCommand ().

A partir do script de logoff, temos um executável que chama o método ExecuteCommand () passando um int predeterminado que atuará como um gatilho para o serviço executar os comandos que requerem privilégios de administrador.

private enum CustomCommands { RunAsAdmin = 128 };
ServiceController srvc = new ServiceController("SimpleService");
srvc.ExecuteCommand((int)CustomCommands.RunAsAdmin);

Método ServiceBase.OnCustomCommand

    
por 17.06.2011 / 06:48