Main スクリプトから RunSpace コード ブロックに配列オブジェクトを渡すと、奇妙な動作が発生します。Where-Object
RunSpace コード ブロック内のステートメントを使用して値を取得しようとしています。ただし、null メソッドに関連するエラーが発生します。
Where-Object
実行空間に渡す前に配列に対して同じステートメントを実行すると、機能しますか?
たとえば、配列が RunSpace に渡される前に次の操作を実行すると、正常に動作します。
$ARRAY | Where-Object {$_.object -eq $Variable}).PropertyofwhatIWant.ToString()
この配列を実行空間に渡して同じことを実行すると、次のように失敗します。
null 値の式でメソッドを呼び出すことはできません。 行:25 文字:13 + $strSourceGivenName = ($arr_Src_Users1 | Where-Object {$_.objectsid ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) []、RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull
両方の配列オブジェクトを比較しましたが、まったく同じプロパティを持っていますか? Get-Member
?をチェックすると、ARRAY と ARRAY1 の違いはありません。何が起こっている?
モジュール : CommonLanguageRuntimeLibrary アセンブリ: mscorlib、バージョン = 4.0.0.0、カルチャ = ニュートラル、PublicKeyToken = b77a5c561934e089 TypeHandle : System.RuntimeTypeHandle DeclaringMethod : BaseType : System.Array UnderlyingSystemType : System.Object[] フルネーム: System.Object[] AssemblyQualifiedName : System.Object[]、mscorlib、バージョン = 4.0.0.0、カルチャ = ニュートラル、PublicKeyToken = b77a5c561934e089 名前空間 : システム GUID : 00000000-0000-0000-0000-000000000000 IsEnum : 偽 GenericParameterAttributes : IsSecurityCritical : False IsSecuritySafeCritical : False IsSecurityTransparent : True IsGenericTypeDefinition : False IsGenericParameter : False GenericParameterPosition : IsGenericType : False IsConstructedGenericType : False ContainsGenericParameters : False StructLayoutAttribute : 名前 : オブジェクト[] MemberType : TypeInfo DeclaringType : 反射タイプ: メタデータトークン: 33554432 GenericTypeParameters: {} DeclaredConstructors : {Void .ctor(Int32)} 宣言されたイベント: {} 宣言されたフィールド: {} DeclaredMembers : {Void Set(Int32, System.Object), System.Object& Address(Int32), System.Object Get(Int32), Void .ctor(Int32)} DeclaredMethods : {Void Set(Int32, System.Object), System.Object& Address(Int32), System.Object Get(Int32)} DeclaredNestedTypes: {} 宣言されたプロパティ: {} ImplementedInterfaces : {System.ICloneable、System.Collections.IList、System.Collections.ICollection、System.Collections.IEnumerable...} TypeInitializer : IsNested : False 属性: AutoLayout、AnsiClass、Class、Public、Sealed、Serializable IsVisible : 真 IsNotPublic : False IsPublic : 真 IsNestedPublic : False IsNestedPrivate : False IsNestedFamily : False IsNestedAssembly : False IsNestedFamANDAssem : False IsNestedFamORAssem : False IsAutoLayout : 真 IsLayoutSequential : False IsExplicitLayout : False IsClass : 真 IsInterface : 偽 IsValueType : 偽 IsAbstract : False IsSealed : True IsSpecialName : False IsImport : 偽 IsSerializable : 真 IsAnsiClass : 真 IsUnicodeClass : False IsAutoClass : 偽 IsArray : 真 IsByRef : 偽 IsPointer : 偽 IsPrimitive : False IsCOMObject : False HasElementType : 真 IsContextful : False IsMarshalByRef : False GenericTypeArguments : {} CustomAttributes : {[System.SerializableAttribute()]}