Я запускаю C# код PowerShell в удаленной системе, и мне нужно получить значение локальной переменной. В PowerShell есть командлет с именем Get-Variable
, который я пытаюсь использовать. Это мой код для попытки получить соответствующую коллекцию PSVariables (которая, очевидно, должна содержать только одну):
psShell.AddScript($"$text = 'someValue'");
psShell.Invoke();
psShell.Commands.Clear();
psShell.AddCommand("Get-Variable")
.AddParameter("Name", "text");
var v = psShell.Invoke<PSVariable>();
Проблема в последней строке, я получаю следующее исключение:
Cannot convert the "System.Management.Automation.PSVariable" value of type "Deserialized.System.Management.Automation.PSVariable" to type "System.Management.Automation.PSVariable".
Кто-нибудь знает, как это решить?
Кроме того, я знаю метод SessionStateProxy, упомянутый в StackOverflow, но , поскольку этот мой пост показывает , он не работает для моего сценария почему-то.