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. Тем не менее, я не могу даже проверить это на удаленном из-за зависания скрипта. Не могли бы вы посоветовать, как это сделать?