Problema com a verificação de freespace de unidades de rede - script Powershell

0

Eu tenho um arquivo em lotes que exclui alguns arquivos das unidades de rede e chama um script powershell. O script powershell obtém os detalhes de espaço de todas as unidades de rede e envia um email. Abaixo está o comando usado para obter os detalhes do espaço:

    $disks = Get-WmiObject -ComputerName "ABCD001" -Class Win32_LogicalDisk -Filter "DriveType = 4";
    $deviceID = $disk.DeviceID;
    foreach($disk in $disks)
    {
        $totalSpaceGB = [Math]::Round([float]$disk.Size / 1073741824, 2);
        $freeSpaceGB = [Math]::Round([float]$disk.FreeSpace / 1073741824, 2);
        $disk, 'TotalSize = ', $totalSpaceGB + " Gb", 'FreeSpace = ', $freeSpaceGB + " Gb", $disk.ProviderName -join '  ' | Out-File -FilePath $FilePath -Append -Width 200;
    }

Abaixo está o comando usado para obter os detalhes do espaço das unidades locais:

    $disks = Get-WmiObject -ComputerName $computer -Class Win32_LogicalDisk -Filter "DriveType = 3";

O problema é que, quando eu executo este arquivo de lote manualmente, ele funciona bem. Mas quando agendado ou executado a partir do Agendador de Tarefas, o resultado para as unidades de rede é fornecido abaixo:

TotalSize =     0    Gb FreeSpace =     0    Gb 

Parece que não é possível conectar-se às unidades de rede. Como eu disse anteriormente, quando eu entro e executo o script em lote manualmente, ele retorna o resultado desejado.

Por favor ajude !!!

    
por Pandee 10.11.2015 / 10:41

1 resposta

0

O agendador de tarefas precisa saber para executar o script como administrador.

    
por 13.11.2015 / 12:36