У меня есть пакетный файл, который удаляет некоторые файлы с сетевых дисков, а затем вызывает скрипт powershell. Сценарий powershell получает информацию о пространстве всех сетевых дисков и отправляет почту. Ниже приведена команда, используемая для получения деталей пространства:

    $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;
    }

Ниже приведена команда, используемая для получения сведений о пространстве локальных дисков:

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

Проблема в том, что когда я запускаю этот пакетный файл вручную, он работает нормально. Но при планировании или запуске из планировщика задач результат для сетевых дисков выглядит следующим образом:

TotalSize =     0    Gb FreeSpace =     0    Gb 

Похоже, он не может подключиться к сетевым дискам. Как я уже говорил ранее, когда я вхожу и запускаю пакетный скрипт вручную, он возвращает желаемый результат.

Пожалуйста помоги!!!

1 ответ1

0

Планировщик задач должен знать, чтобы запустить скрипт от имени администратора.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .