我正在尝试构建一个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.CommandNotFoundException'发生在 System.Management.Automation.dll附加信息:术语 ' $ cred = Get-Credential'不被识别为cmdlet的名称, 函数,脚本文件或operabl ...
如果我从CMD启动PowerShell,请输入
$ cred = Get-Credential
我看到了默认的交互式登录框,用户可以输入凭据并将其捕获到$ cred,我可以继续。
使用C#实现此功能的正确命令是什么?
感谢。
答案 0 :(得分: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/