E_ACCESSDENIED acessando o WMI da tarefa agendada

0

No Powershell, estou enumerando os bancos de dados SQL da seguinte forma:

$SqlServers = @("SQL1", "SQL2") # SQL servers
foreach ($SqlServer in $SqlServers) {
  $SqlBasePath = "SQLSERVER:\SQL\$SqlServer\"

  foreach ($SqlInstanceName in (Get-ChildItem -Path $SqlBasePath -Name)) {
    Write-Host "Processing $SqlInstanceName"

    foreach ($SqlDatabase in (Get-ChildItem -Path $($SqlBasePath + $SqlInstanceName + "\Databases"))) {

Isso funciona muito bem a partir da linha de comando, como a conta de serviço que precisa executar esse script.

No entanto, ao executar a partir da tarefa agendada, acabo com erros de "acesso negado", fazendo com que a enumeração falhe.

(Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
WARNING: Could not obtain SQL Server Service information. An attempt to connect
         to WMI on 'SQL1' failed with the following error: Access is denied. 

A tarefa agendada é configurada para ser executada como a conta de serviço e "com os privilégios mais altos" para o valor dela.

O que poderia fazer com que acessar o WMI de uma tarefa agendada falhe ao contrário de executar diretamente com a mesma conta a partir da linha de comando e como corrigir isso?

    
por Sebazzz 07.11.2016 / 08:57

0 respostas