use*_*526 14 c# powershell azure-active-directory
从 Azure AD 中的 C# 应用程序运行 powershell 脚本。
添加了以下 DLL 参考
Runspace runspace = RunspaceFactory.CreateRunspace();
runspace.Open();
Pipeline pipeline = runspace.CreatePipeline();
pipeline.Commands.AddScript("Import-Module AzureAD -Force;");
pipeline.Commands.AddScript("$password = ConvertTo-SecureString " + "\"abc1234\"" + " -AsPlainText -Force");
pipeline.Commands.AddScript("$Cred = New-Object System.Management.Automation.PSCredential (" + "\"abc@abc.com\"" + ", $password)");
pipeline.Commands.AddScript("Connect-AzureAD -Credential $Cred");
pipeline.Commands.AddScript("Get-AzureADApplication -Filter " + "\"DisplayName eq " + "\'PortalTestApp\'" + "\"");
var result = pipeline.Invoke();
Run Code Online (Sandbox Code Playgroud)
获取错误:
术语“Connect-AzureAD”不被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。
@user1638526 正如迈克所说,您应该先安装 AzureAD 模块。
您可以按照以下步骤操作:
Install-PackageProvider -Name NuGet -RequiredVersion 2.8.5.201 -Force
Import-PackageProvider -Name NuGet -RequiredVersion 2.8.5.201
Install-Module AzureAD -Force
Run Code Online (Sandbox Code Playgroud)
-Force 禁止用户输入提示并允许脚本在后台运行。
参考:如何在未连接的机器上安装 PowerShell 的 Nuget 提供程序,以便我可以从 PS 命令行安装 nuget 包?
关于如何使用 C# 调用 PowerShell 命令或 PS1 文件,您也可以参考链接或另一个SO Thread。
希望这可以帮助!