Почему свойства скрипта теряются при передаче объекта pscustomobject в блок скрипта start-job? - PullRequest
2 голосов
/ 14 июля 2011

В Windows XP x64 (и я полагаю, win2k3) powershell 2.0, передавая массив из pscustomobjects в start-job в качестве параметра argumentslist, передает объект в объект, но свойства сценария просто исчезают из объекта (подтверждается get-member).Обратите внимание, что свойства объекта pscustomobject возвращаются просто отлично

Кто-нибудь знает почему?и / или есть решение для обхода?

$ dbs является массивом с объектами pscustomobject, которые имеют различные свойства note и свойства скрипта.

Все свойства скрипта исчезают после передачи в start-job, тогда как свойства заметки работают просто отлично.

Ниже выполняется вне стартового задания

$dbs | get-member 

возвращает

ConnectionString NoteProperty   System.String ConnectionString=server=...
DbType           NoteProperty   System.String DbType=Staging                                                                                   
 CreateBackup     ScriptMethod   System.Object CreateBackup ();                                                                                  
GetBackup        ScriptMethod   System.Object GetBackup();                                                                                     

...
while

start-job -name $server -argumentlist $dbs,$server -scriptblock {
    param($dbs, $server)
 $dbs | get-member
 }

Возвращает

bool Equals(System.Object obj) 
int GetHashCode() 
type GetType() 
string ToString() 
System.String ConnectionString=server=...
System.String DbType=Staging

Ответы [ 2 ]

1 голос
/ 14 июля 2011

Посмотрите на Пользовательский хост PowerShell и преобразование PSObject обратно в базовый тип Я ответил некоторое время назад. Это тот же случай.

1 голос
/ 14 июля 2011

Фоновые задания используют удаленное взаимодействие.Remoting сериализует объекты и затем отправляет их в целевое пространство выполнения, где они десериализуются.Когда объект сериализуется, методы объекта не включаются в сериализованный объект.

...