Если ответ получен, просьба указать мне решение, однако в настоящее время я не могу найти ответ на этот вопрос в существующих сообщениях.
В настоящее время я работаю с фоновыми заданиями в powershell. как разбить тяжелый процесс на параллельные процессы, чтобы сократить продолжительность. Общая концепция работает, однако я сталкиваюсь с проблемой передачи родительской коллекции объектов ADgroup, которые возвращаются из Get-ADGroup, в блок сценария задания.
Однако коллекция передается очень хорошо,проблема заключается в том, что некоторые свойства, а именно описание и член, имеют записи свойств объекта, но значения отсутствуют один раз внутри блока скрипта. Я проверил, что эти значения есть до входа в блок скрипта. Я также проверил, что блокировка scriptb интерпретирует тип объекта, который правильно передается внутри блока скрипта, но эти значения внутри него пустые.
Как ни странно, если я сериализую объект с ConvertTo-Json, значения будут ихв этом формате, только не в форме объекта .NET. Мне интересно, имеет ли это отношение к сериализации объекта при передаче в блок сценария?
Последнее замечание, если я создам пользовательский объект и заполню его свойством и значениями из объекта ADGroup, а затемВручите это блоку сценария, все в порядке. Я попытался передать объект через конструкцию «$ Using: var», а также передать его явно через список аргументов и определить параметры конкретного типа в блоке сценария.
Надеюсь, кто-то лучше разберется в базовой архитектуреможет пролить свет на это. Ниже приведена упрощенная версия того, что я делаю, выводя значения в файл, просто чтобы посмотреть, что я получаю внутри блока скрипта, я могу получить SAM, но без описания или члена
$adgroups = Get-ADGroup -Server $domain -Properties Description, member -SearchBase $ou -LDAPFilter "(samaccountname=*)"
$ps = [powershell]::create()
[void]$ps.AddScript({
Param([ADGroup[]]$groups)
foreach ($group in $groups) {
"SAM: $($group.samAccountName)" | Out-File output.txt
"Description: $($group.description)" | Out-File output.txt -append
"Members: $($group.member)" | Out-File output.txt -append
}
}).AddParameter('groups', $adgroups)
$ps.Invoke()
$ps.Dispose()
Опять же,значения свойств перед входом в блок сценария равны , но только значения остаются пустыми внутри блока сценария.