从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();
获取错误:
“ Connect-AzureAD”一词不被视为cmdlet的名称, 功能,脚本文件或可操作程序。检查拼写 名称,或者如果包含路径,请确认路径正确,并 再试一次。
答案 0 :(得分:8)
PowerShell v7遇到了问题,与PS v5不同,您必须使用Import-Module AzureAD
导入模块。可能与OP问题无关,但是错误是相同的。
答案 1 :(得分:0)
@ 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
-Force禁止用户输入提示,并允许脚本在后台运行。
关于如何使用C#调用PowerShell命令或PS1文件的信息,您还可以参考link或其他SO Thread。
希望这会有所帮助!