32 секунды!
У меня из 292 ресурсов недоступно 40.
Без Параллели работает 9:18, С 2:40...
Я думаю, оно одновременно начинает же, 40 сек тогда должно быть?
Что не так?
Workflow AccessGroup {
$Online=@()
$Offline=@()
ForEach -Parallel -ThrottleLimit 292 ($share in (Get-ChildItem "\\Domain\Shares").fullname) {
if (Test-Path $share) {
if (Get-Acl $share | Select-Object -ExpandProperty Access | Where-Object identityreference -eq "domain\access_full"){
$WORKFLOW:Online+=$share}
}
}
else {
$WORKFLOW:Offline+=$share
}
$Online
$Offline|out-file C:\Scripts\offline.txt
}
парарлель - не просто деление на кол-во =) Там накладных расходов дофига. Ну и у тебя явно дикие проблемы с сетью, я бы в это копал, но это не про пошик.
trottle limit нужно подбирать в твоем случае может быть ефективнее 20 или даже 5, а может и 300
в доке написано что нет прямого указания какой он должен быть, только то что вычисляется имперически
в моём коде -ThrottleLimit 292 по кол-ву шар
это я понял, но не факт что это оптимальное значение этого параметра
Обсуждают сегодня