Как привести PSCustomObject из Pipeline.Invoke в C # - PullRequest
1 голос
/ 05 октября 2019

Я пишу команду, которая подключается к удаленной машине через PSsession, получает объект .NET с удаленной машины, а затем использует его локально.

Однако возвращаемый объект не являетсяобъект .NET, который я создал на удаленном конце, но объект PSCustomObject, который отказывается возвращаться к исходному объекту.

Кто-нибудь знает, как это сделать?

Этот метод простоодин из многих, так что общий ответ о том, как обрабатывать любой объект .NET, а не конкретный объект в этом методе, был бы оценен.

Я получаю ошибку;Невозможно привести объект типа 'System.Management.Automation.PSCustomObject' к типу 'System.IO.FileInfo'.

Знак благодарности

readonly PSSession session;
public FileInfo GetFileInfo(string p) 
    {

        Pipeline pipe = session.Runspace.CreatePipeline();

        string format = "(New-object System.IO.FileInfo \"{0}\") -as [System.IO.FileInfo]";  // Have tried many ways to force it to a FileInfo
        string command = string.Format(format,p);

        pipe.Commands.AddScript(command);
        Collection<PSObject> res = pipe.Invoke();

        foreach (PSObject ps in res)
        {
                      return (FileInfo)ps.BaseObject;
        }


        // no items
        return null;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...