New-MailContact cmdlet을 호출하고 Active Directory에 연락처를 만들어야하는 응용 프로그램이 있습니다. 나는 지금까지 얻은 기술 기사 몇 가지를 따라 갔지만 여전히 작동하지 않습니다.C-code에서 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 작업을 호출하는 동안 오류가 발생했습니다. 이 오류는 다시 검색 할 수 없습니다. 추가 정보 : 액세스가 거부되었습니다. Active Directory 응답 : 00000005 : SecErr : DSID-031521D0, 4003 (INSUFF_ACCESS_RIGHTS) 문제, 데이터 0 KB 문서가 내 범인 것 같습니다. –
업데이트에 따라 Exchange 2007이 사용되므로 ETS와는 달리 서비스 계정 권한이 있다고 생각합니다. 다시 감사합니다! –