2014-07-09 43 views
0

我想從visual studio運行這個powershell命令。 我的命令是Powershell- NewAcceptedDomain命令無法在不能在Visual Studio中工作。但它在powershell中工作正常

add-pssnapin microsoft.exchange.management.powershell.snapin; New-accepteddomain –name domain123.com –domainname domain123.com 

它總是給我一個錯誤。 錯誤是:

"The term 'New-AcceptedDomain' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again."

但是,當我在PowerShell中嘗試這個命令它工作正常。但每次當我嘗試從我的代碼中運行這個命令時,它都會給我提供上面提到的錯誤。

回答

0

IIRC Exchange管理單元是64位的,因此32位devenv.exe(Visual Studio)過程中託管的32位PowerShell引擎不可用。從Nuget Package Manager控制檯執行:

Get-PSSnapin -Registered 

查看Exchange snapin是否顯示。

+0

我跑NuGet包管理器控制檯命令,發現以下結果: PM> GET-PSSnapin - 註冊 名稱:WDeploySnapin3.0 PSVersion:2.0 說明:這是一個PowerShell管理單元包含用於管理Microsoft Web部署基礎結構的cmdlet。 我不知道這是什麼意思..請幫我解決這個問題。 – user3792844

+0

這種確認Exchange管理單元在此32位PowerShell主機中不可用。你應該可以通過工作來解決這個問題,例如'$ job = Invoke-Command -ComputerName localhost {add-pssnapin microsoft.exchange.management.powershell.snapin; New-accepteddomain -name domain123.com -domainname domain123.com} -AsJob;等待工作$工作; Receive-Job $ job'。這確實需要VS以管理員身份運行/提升。所使用的作業進程默認爲64位。 –

+0

從我的C#代碼,它似乎是工作正常。但是,當我在PowerShell中檢查沒有域使用此命令創建。 另外我也在PowerShell上嘗試了這個命令,但它給了我一些與權限相關的錯誤,比如「活動目錄操作失敗,提供的」域/用戶「證書無效。 – user3792844

相關問題