Как передать объект PSCredential из кода C# в функцию Powershell
у меня есть объект PSCredential в C# и я хочу передать его в качестве параметра для этого сценария PowerShell
это объект PSCredential
PSCredential Credential = new PSCredential ( "bla" , blasecurestring)
скрипт, который я хочу запустить в C#
powershell.AddScript("$s = New-PSSession -ComputerName '" + serverName + "' -Credential " + Credential);
Я не могу понять решение, которое предлагается здесь передать объект параметра (PSCredential) внутри ScriptBlock программно в C#
изменить: Эта штука работает
powershell.AddCommand("New-PSSession").AddParameter("ComputerName", serverName).AddParameter("Credential", Credential);
но как я могу спасти информация о сеансе в переменной? Мне они нужны для следующих команд:
powershell.AddScript(@"Invoke-Command -Session $s -ScriptBlock {" + cmdlet + "}");
1 ответов
теперь я нашел решение. Это так легко, когда знаешь, что делаешь...
powershell.AddCommand("Set-Variable");
powershell.AddParameter("Name", "cred");
powershell.AddParameter("Value", Credential);
powershell.AddScript(@"$s = New-PSSession -ComputerName '" + serverName + "' -Credential $cred");
powershell.AddScript(@"$a = Invoke-Command -Session $s -ScriptBlock {" + cmdlet + "}");
powershell.AddScript(@"Remove-PSSession -Session $s");
powershell.AddScript(@"echo $a");
где учетные данные-объект C# PSCredential