我有Windows Server 2008 R2計算機,它具有Power Shell v1.0。我想使用Power Shell與C#連接到MS 365在線服務。我已經安裝了Office 365 cmdlet和Microsoft Online Services登錄助手。 (參考文獻:http://onlinehelp.microsoft.com/en-us/office365-enterprises/hh124998.aspx#BKMK_install)Office 365:使用Power Shell腳本連接到Office Online 365服務
我的腳本是:
$password = ConvertTo-SecureString "xxxxx" -AsPlainText –Force
$credential = New-Object System.Management.Automation.PsCredential("[email protected]",$password)
$cred = Get-Credential -cred $credential
Import-Module MSOnline
Connect-Msolservice -cred $cred
我可以成功地運行在Power Shell命令窗口此腳本。但我有問題在c#應用程序中運行此腳本。
這裏是我的C#代碼:
public void RunScript()
{
StringBuilder ss = new StringBuilder();
ss.AppendLine("$password = ConvertTo-SecureString \"" + pwd + "\" -AsPlainText –Force");
ss.AppendLine("$credential = New-Object System.Management.Automation.PsCredential(\"" + userName + "\",$password)");
ss.AppendLine("$cred = Get-Credential -cred $credential");
ss.AppendLine("Import-Module MSOnline");
ss.AppendLine("Connect-Msolservice -cred $cred");
using (Runspace runspace = RunspaceFactory.CreateRunspace())
{
Collection<PSObject> results = null;
try
{
runspace.Open();
Pipeline pipeline = runspace.CreatePipeline();
pipeline.Commands.AddScript(ss.toString());
results = pipeline.Invoke();
}
finally
{
runspace.Close();
}
}
}
我得到以下異常:
'連接-Msolservice' 一詞未被識別爲cmdlet,函數的名稱,腳本文件,或可操作程序。檢查名稱的拼寫,或者如果包含路徑,請驗證路徑是否正確,然後重試。
有什麼遺漏嗎?
感謝
的評論以及感謝。我也會嘗試你的建議。但是,我發現它不能識別「Connect-Msolservice」命令的原因。原因很簡單。我創建了一個控制檯應用程序,其Platform目標是x86,而我的開發機器是Microsoft Server 2008 64bit,我已經安裝了MS Online Service模塊(64位)。通過將平臺目標更改爲任何CPU來解決問題。 – Prakash 2012-04-17 17:41:27
嗨大衛,我試着用上述解決方案,但結果相同(沒有成功)。 順便說一句。 MS Online服務模塊(64位)的cmdlet似乎必須從64位進程/應用程序執行/運行。這是我所經歷的。如果你對此有任何想法,請分享。 – Prakash 2012-04-18 11:26:57
感謝分享,普拉卡什。我遇到了同樣的問題。 – ACR 2016-10-13 14:51:25