Ejemplo n.º 1
0
        internal static PowerShell GetCommandDiscoveryPipeline(object data)
        {
            using (RemotingDecoder._trace.TraceMethod())
            {
                PSObject     psObject     = PSObject.AsPSObject(data);
                CommandTypes commandTypes = psObject != null?RemotingDecoder.GetPropertyValue <CommandTypes>(psObject, "CommandType") : throw new PSRemotingDataStructureException(PSRemotingErrorId.CantCastRemotingDataToPSObject, new object[1]
                {
                    (object)data.GetType().FullName
                });

                string[] strArray1;
                if (RemotingDecoder.GetPropertyValue <PSObject>(psObject, "Name") != null)
                {
                    strArray1 = new List <string>(RemotingDecoder.EnumerateListProperty <string>(psObject, "Name")).ToArray();
                }
                else
                {
                    strArray1 = new string[1] {
                        "*"
                    }
                };
                string[] strArray2;
                if (RemotingDecoder.GetPropertyValue <PSObject>(psObject, "Namespace") != null)
                {
                    strArray2 = new List <string>(RemotingDecoder.EnumerateListProperty <string>(psObject, "Namespace")).ToArray();
                }
                else
                {
                    strArray2 = new string[1] {
                        ""
                    }
                };
                object[]   objArray   = RemotingDecoder.GetPropertyValue <PSObject>(psObject, "ArgumentList") == null ? (object[])null : new List <object>(RemotingDecoder.EnumerateListProperty <object>(psObject, "ArgumentList")).ToArray();
                PowerShell powerShell = PowerShell.Create();
                powerShell.AddCommand("Get-Command");
                powerShell.AddParameter("Name", (object)strArray1);
                powerShell.AddParameter("CommandType", (object)commandTypes);
                powerShell.AddParameter("Module", (object)strArray2);
                powerShell.AddParameter("ArgumentList", (object)objArray);
                return(powerShell);
            }
        }
Ejemplo n.º 2
0
        internal static PSEventArgs GetPSEventArgs(PSObject dataAsPSObject)
        {
            using (RemotingDecoder._trace.TraceMethod())
            {
                int eventIdentifier = dataAsPSObject != null?RemotingDecoder.GetPropertyValue <int>(dataAsPSObject, "PSEventArgs.EventIdentifier") : throw RemotingDecoder._trace.NewArgumentNullException(nameof(dataAsPSObject));

                string    propertyValue1 = RemotingDecoder.GetPropertyValue <string>(dataAsPSObject, "PSEventArgs.SourceIdentifier");
                object    propertyValue2 = RemotingDecoder.GetPropertyValue <object>(dataAsPSObject, "PSEventArgs.Sender");
                object    propertyValue3 = RemotingDecoder.GetPropertyValue <object>(dataAsPSObject, "PSEventArgs.MessageData");
                string    propertyValue4 = RemotingDecoder.GetPropertyValue <string>(dataAsPSObject, "PSEventArgs.ComputerName");
                Guid      propertyValue5 = RemotingDecoder.GetPropertyValue <Guid>(dataAsPSObject, "PSEventArgs.RunspaceId");
                ArrayList arrayList      = new ArrayList();
                foreach (object obj in RemotingDecoder.EnumerateListProperty <object>(dataAsPSObject, "PSEventArgs.SourceArgs"))
                {
                    arrayList.Add(obj);
                }
                return(new PSEventArgs(propertyValue4, propertyValue5, eventIdentifier, propertyValue1, propertyValue2, arrayList.ToArray(), propertyValue3 == null ? (PSObject)null : PSObject.AsPSObject(propertyValue3))
                {
                    TimeGenerated = RemotingDecoder.GetPropertyValue <DateTime>(dataAsPSObject, "PSEventArgs.TimeGenerated")
                });
            }
        }