Get-WmiObject занимает очень много времени на удаленных машинах

Я пытаюсь создать простой скрипт для управления дисковой квотой.

Вот мой код:

[CmdletBinding()]
Param(
    [Parameter(Mandatory=$true)]
    [string]$USER,

    [Parameter(Mandatory=$true)]
    [int]$Amount_TEMP,

    [Parameter(Mandatory=$true)]
    [string]$Drive,

    [Parameter(Mandatory=$true)]
    [string]$SERV
)

$Drive   = "$Drive" + ":"
$USER    = "$USER" + '"'
$Amount  = $Amount_TEMP * 1GB
$WARNING = $Amount - 100MB

Invoke-Command -ComputerName $SERV -ScriptBlock {
    $VALUE = Get-WmiObject -Class "Win32_DiskQuota" -Namespace "root\CIMV2" |
             Where-Object {($_.User -like "*$USER") -and ($_.QuotaVolume -like "*$Drive*")}

    $VALUE.Limit = $Amount
    $VALUE.WarningLimit = $WARNING
    $VALUE.Put()
}

Я знаю, что такой подход будет работать локально (проверено и с помощью Put() Метод, который я мог бы написать отредактированное значение переменной в WMI. Тем не менее, я не могу даже проверить это на удаленном из-за зависания скрипта. Не могли бы вы посоветовать, как это сделать?

0 ответов

Другие вопросы по тегам