Permissões de conta de serviço para o Agendador de tarefas LEIA

Permissões de conta de serviço para o Agendador de tarefas LEIA

Eu tenho um script do PowerShell que escrevi para fazer uma comparação de tarefas agendadas entre dois nós do nosso cluster de servidores de aplicativos. Ele usa esse código para consultar as tarefas de um determinado servidor...

function getTasks($server) {
    return Get-ScheduledTask -CimSession $server | 
        Where-Object TaskPath -like '*OurFolder*' | 
        ForEach-Object {
            [pscustomobject]@{ 
                Server = $server
                Path = $_.TaskPath
                Name = $_.TaskName
                Disabled = ($_.State -eq 'Disabled')
                Command = $_.Actions.Execute
                Arguments = $_.Actions.Arguments
                Interval = $_.Triggers.RepetitionInterval
                HashId = "$($_.Actions.Execute)|$($_.Actions.Arguments)"
                HashFull = "$($_.TaskPath)|$($_.TaskName)|$($_.Actions.Execute)|$($_.Actions.Arguments)|$(($_.State -eq 'Disabled'))"
            }
        }
}

Funciona perfeitamente quando executado na minha conta de administrador de domínio.

No entanto, quando tento executá-lo em nossa conta de serviço como uma tarefa agendada, ocorre este erro ao tentar consultar as tarefas agendadas no outro nó ...

Get-ScheduledTask : SERVER.domain.local: Cannot connect to CIM server. Access is denied.
At F:\Applications\TaskSchedulerNodeCompare\compare-nodes.ps1:9 char:12
+     return Get-ScheduledTask -CimSession $server |
+            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (MSFT_ScheduledTask:String) [Get-ScheduledTask], CimJobException
    + FullyQualifiedErrorId : CimJob_BrokenCimSession,Get-ScheduledTask

Pesquisando e olhando ao redorVISUALtipo, a única maneira de permitir que uma conta acesse esta lista seria adicioná-la ao LocalAdmins no servidor em questão? Mas realmente não parece certo ter que criar nossa conta de serviço como administrador local e, obviamente, não queremos que a tarefa seja executada em minha conta de administrador de domínio.

eu tenteisolução não. 3 aqui, qualsonscomo se fosse isso...

1.  As an Administrator of the server, go to Server Manager -> Tools -> Computer Management.  On the left expand "Services and Applications" and right click "WMI Control".  Go to "Properties".
2.  In the newly open Window, click on Security tab.
3.  Expand Root tree, and then click on the node CIMV2, and click the button security
4.  In the newly open Window, click the button Advanced.
5.  In the newly open Window, click the button Add under the permission tab.
6.  In the newly open Window, click on “select a principal", then search for the user you that was having the problem.  
7.  In the applies to, choose “this namespace and subnamespace".
8.  For the permission, check on “Execute Methods", “Enable Accounts" and “Remote Enable"
9.  Click accept on all the open dialogue boxes
10. Restart WMI services.  As an Admininstrator of the server, go to Server Manager -> Tools -> Computer Management.  On the left expand "Services and Applications" and click on "Services".  Go to "Windows Management Instrumentation" and right click it.  Then choose "Restart".
11. Try the command again. The above directions were adapted from this StackOverflow posting.

mas mesmo depois de executar todas essas etapas, ainda não funcionará.

Como posso permitir que nossa conta de serviço consulte (somente leitura) as tarefas agendadas de nossos servidores, ao mesmo tempo que nos preocupamos com a segurança tanto quanto possível?

Responder1

Pelo que sei, as tarefas agendadas só podem ser vistas pelo criador ou por um membro do grupo de administração local. Também duvido que qualquer solução funcional cubra tarefas criadas após alterar permissões em objetos locais ou algo semelhante.

Além disso, veja esta pergunta/resposta que parece muito semelhante: Permissões ou ACL para tarefas agendadas

informação relacionada