我有一個應用程序(其中包括)需要調用New-MailContact cmdlet並在Active Directory中創建聯繫人。我已經跟着少數幾篇技術文章獲得,但仍然無法工作。從C#代碼運行New-MailContact cmdlet時未創建聯繫人
我已驗證我使用的服務帳戶是否具有基於this TechNet page的正確驗證。我能夠從powershell中找到並調用該cmdlet,並且我沒有收到任何錯誤。
但是,運行後我檢查我的OU,我的聯繫人沒有創建。我發現this知識庫文章,我認爲可能是可疑的,但由於該cmdlet不會在調用後返回任何錯誤,我不能確定這將解決我的問題。
下面是我在做什麼的一個片段:
public bool CreateMailContactObject(ADExchangeContact adExchangeContacts)
{
Collection<PSObject> results;
Pipeline pipeLine = null;
try
{
var runspaceConfiguration = RunspaceConfiguration.Create();
PSSnapInException snapInException;
var snapInInfo = runspaceConfiguration.AddPSSnapIn("Microsoft.Exchange.Management.PowerShell.Admin", out snapInException);
using (var runspace = RunspaceFactory.CreateRunspace(runspaceConfiguration))
{
var newMailBoxContact = new Command("New-MailContact");
newMailBoxContact.Parameters.Add("Name", adExchangeContacts.DisplayName);
newMailBoxContact.Parameters.Add("ExternalEmailAddress", adExchangeContacts.ExternalEmailAddress);
newMailBoxContact.Parameters.Add("OrganizationalUnit", adExchangeContacts.OrganizationalUnit);
newMailBoxContact.Parameters.Add("Alias", adExchangeContacts.Alias);
runspace.Open();
pipeLine = runspace.CreatePipeline();
pipeLine.Commands.Add(newMailBoxContact);
results = pipeLine.Invoke();
_log.DebugFormat("results.Count = {0}", results.Count);
results.ForEach(x => x.Properties.ForEach(y => _log.DebugFormat("{0}: {1}", y.Name, y.Value)));
pipeLine.Stop();
runspace.Close();
}
return true;
}
catch (Exception ex)
{
// Add log statement
_log.ErrorFormat("Creation of Mail Contact in AD Failed. Error: {0}", ex);
return false;
}
}
我沒有得到任何異常,我的結果列表是從管道調用空。有什麼我失蹤?如果在AD中創建聯繫人時由於權限導致該cmdlet失敗,那麼我是否會在pipeLine.Invoke()
的結果集中收到某種錯誤?
我是運行Powershell的新手,所以如果有另一個問題(超出KB文章)可能在手邊,請讓我知道。
謝謝你。我正在標記你的答案是正確的。這並沒有解決我的問題,但你教我如何從我的電話中獲得更多的細節。結果是:'2012-05-08 15:58:38,227 [DEBUG](MyProject.Core.Services.ADService)錯誤:在MY-SERVER.Domain.com上調用New-MailContact.Active Directory操作失敗。這個錯誤不可回溯。其他信息:訪問被拒絕。 活動目錄響應:00000005:SecErr:DSID-031521D0,問題4003(INSUFF_ACCESS_RIGHTS),數據0'看起來知識庫文章是我的罪魁禍首。 –
根據您的更新,我們使用Exchange 2007,所以我認爲這是我的服務帳戶權限,而不是ETS。再次感謝你! –