0

我正在尝试构建一个 C# 控制台应用程序,该应用程序执行一系列针对 Azure 订阅运行的 PowerShell 命令。

var line1 = "$cred = Get-Credential"
var line2 = "Add-AzureAccount -Credential $cred"
var psi = PowerShell.Create()
psi.AddCommand(line1);
psi.AddCommand(line2);
var output = psi.Invoke();

我以为它会呈现一个交互式登录框,然后继续运行。相反,这是抛出:

System.Management.Automation.dll 中出现“System.Management.Automation.CommandNotFoundException”类型的未处理异常附加信息:术语“$cred = Get-Credential”未被识别为 cmdlet、函数、脚本文件的名称, 或可操作...

如果我从 CMD 启动 PowerShell,然后键入

$cred = 获取凭据

我看到了默认的交互式登录框,用户可以输入凭据,它们被捕获到 $cred 并且我可以继续。

什么是在 C# 中使其工作的正确命令集?

谢谢。

4

1 回答 1

0

这不是一项小任务,但您可以使用 Wpf 在 powershell 中创建 ui。从一个启​​动。NET 控制台应用程序,您可以创建一个 powershell 运行空间,创建您的登录提示 ui 并从那里开始。我们这样做了,但有一个非常具体的用例 - 对于大多数情况,您通常不会按照您的建议将两者混合在一起。 https://foxdeploy.com/2015/04/10/part-i-creating-powershell-guis-in-minutes-using-visual-studio-a-new-hope/

于 2016-07-10T06:48:48.393 回答