Invoke-команда - долгое время выполнения

309
Magl

Я работаю над сценарием powershell, который будет удаленно включать / выключать определенное правило брандмауэра на удаленной машине в локальной подсети. Вот код:

$pc="PC1" if (Test-Connection -ComputerName $pc -Count 1 -quiet) { $RuleName = "" ICM -ComputerName PC1 -ScriptBlock { Param($FWRule) IF(Get-NetFirewallRule $FWRule | where{$_.Enabled -eq $True}) ELSE IF(Get-NetFirewallRule $FWRule | where{$_.Enabled -eq $True}) ELSE $value = read-host "Script completed,`npress [Enter] to exit" Switch ($value){ 'Enter' {'Koniec' ; exit} } } -ArgumentList $RuleName } else | to_entries | .[] | . as  | $data | map() | map(.price * .qty) | add | "Total \($kind): \(. * 100 | round / 100) USD" 

Запустить как jq -r -f filename.jqилиjq -r ' | .....'

Обратите внимание, что jq ограничен точностью IEEE 754 «double».

(Также кажется, что API возвращает максимум 100 элементов по умолчанию (до 1000), так что в любом случае это может быть неверное число. См. Документы. )

0
Я бы посоветовал вам переписать и протестировать каждый сегмент по одному, чтобы убедиться, что вы получаете то, что думаете. У вас есть некоторые реальные проблемы, IMHO, в этом сценарии. Это потому, что вы используете удаленные команды для себя. Вы не можете сделать это с рабочими станциями в большинстве случаев. Попробуйте это на своем компьютере и посмотрите, что я имею в виду. --- Invoke-Command -ComputerName $ env: COMPUTERNAME -ScriptBlock --- он просто зависнет - затем попробуйте эту же команду на сервере - он будет успешным. postanote 5 лет назад 0

0 ответов на вопрос