Windows XP x64(と私はwin2k3と仮定します)powershell 2.0では、pscustomobjectsのarraylistをstart-jobにargumentlistパラメータとして渡すとオブジェクトが渡されますが、scriptpropertiesはオブジェクトから消えます(get-memberによって確認されます)。 pscustomobjectのプロパティは正常に戻ります。pscustomobjectを開始ジョブスクリプトブロックに渡すときにスクリプトプロパティが失われるのはなぜですか?
誰にも分かりますか?および/または回避策のための解決策がありますか?
$ dbsは、さまざまなnotepropertiesとscriptpropertiesを持つpscustomobjectsのarraylistです。
すべてのスクリプトプロパティは開始ジョブに渡されると消えますが、ノートプロパティは正常に機能します。立ち仕事の外で実行
$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();
以下
...
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
ありがとう、私はそれがシンプルにPSリモーティングを使用していて、シリアライゼーションの表示として平坦化されたプロパティの存在を確認していたはずです。そのオブジェクト上のユーティリティメソッドが与えられたときには、それを使用するためにスクリプトブロックに複製する必要があります。ありがとう! – JorgeSandoval