Pergunta

Alguém sabe o que privilégios de usuário são necessários para as seguintes necessidades de código para executar com êxito como uma tarefa agendada no Windows Server 2003:

System.Diagnostics.Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName)

Quando não esteja executando como tarefa agendada ou seja, sob um usuário conectado, desde que o usuário é um membro da "Usuários do Monitor de desempenho", este código não lançar uma exceção.

Ao executar como uma tarefa agendada sob a mesma conta de usuário, ele falhar.

A única maneira que eu possa obtê-lo para o trabalho é para executá-lo como um membro do grupo administrador local.

Todas as idéias?

Foi útil?

Solução

As minhas desculpas mais humildes. O usuário que eu estava usando não era membro de "Os usuários de Monitor de desempenho" grupo.

Isto é necessário para o .NET Framework 1.1 implementação de System.Diagnostics.

Eu adicionei o usuário a este grupo, e está tudo bem.

Outras dicas

O que os direitos de utilizador atribuições ter-lhe dado a conta que está sendo executado como uma tarefa agendada? Você precisa dar a conta em questão 'logon como um trabalho em lotes' nas configurações de segurança locais.

Update:? A sua gravação aplicativo para todos os arquivos e se o mesmo acontece com o usuário tarefa agendada possui direitos suficientes

Eu só bateu-se um aplicativo de teste que escreve os nomes dos processos do processo [] array retornado por Process.GetProcessesByName (Process.GetCurrentProcess (). ProcessName) para um arquivo e ele funciona muito bem como uma tarefa agendada ... mesmo correndo sob a identidade de um usuário que só é um membro do grupo de utilizadores (nem mesmo um membro de 'Usuários do monitor de desempenho'.

A pasta escreve a é atribuído direitos Modificar para SYSTEM, Administradores eo usuário tarefa agendada.

Qualquer chance de colar o código ou pelo menos um trecho bastante pequena que demonstra o exe não como uma tarefa agendada para que possamos ajudar a diagnosticar o problema?

Felicidades
Kev

Uma questão que eu vi com a leitura do nome do processo é que o acesso aos contadores de desempenho pode ficar desativado.

O crack abrir seu registro e ver se essa chave está lá: [Desempenho HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ PerfProc \] "Desativar contadores de desempenho" = DWORD: 00000001

Você pode configurá-lo para zero ou excluí-la.

MSDN :

Permissões LinkDemand - para o pleno confie para o chamador imediato. este membro não pode ser utilizado por parcialmente código confiável.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top