GetProcessesByName () e Windows Server 2003 tarefa agendada
-
02-07-2019 - |
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?
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.