我調用的office365一個get-msoluser cmdlet的我用的是以下cmdlet在PowerShell中Powershell的管道和在C#中的foreach對象
Get-MsolUser -UserPrincipalName [email protected] | ForEach-Object{ $_.licenses}
的輸出許可證的集合,我想同樣的腳本在C#中運行。所以我寫的代碼如下
private void displayLicenses(){
Command cmd = new Command("Get-MsolUser");
cmd.Parameters.Add("UserPrincipalName","[email protected]");
Command cmd2 = new Command("ForEach-Object");
cmd2.Parameters.Add("$_.licenses.AccountSku");
Pipeline pipe = Office365Runspace.CreatePipeline();
pipe.Commands.Add(cmd);
pipe.Commands.Add(cmd2);
Console.WriteLine("Before invoking the pipe");
ICollection<PSObject> result = pipe.Invoke();
CheckForErrors(pipe);
Console.WriteLine("Executed command {0} + {1} with no error", cmd.CommandText, cmd2.CommandText);
foreach(PSObject obj in result){
foreach(PSPropertyInfo propInfo in obj.Properties){
Console.WriteLine(propInfo.Name+": "+propInfo.Value+" "+propInfo.MemberType);
}
}
}
但是我還是在執行這個功能說
未處理的異常錯誤: System.Management.Automation.CommandNotFoundException:術語 「ForEach-對象'不被識別爲cmdlet,函數,腳本文件或可操作程序的名稱。檢查名稱的拼寫,如果包含路徑,請檢查路徑是否正確,然後再次嘗試 。
我檢查了我的項目有一個對包含ForEach-Object cmdlet的System.management.Automation.dll文件的引用。
我發現使用此CMD的dll在PowerShell中
(Get-Command ForEach-Object).dll
感謝, 薩蒂亞
我做office365 cmdlet,並我進口msonline功能,我的office365運行空間。 – satya