最佳解答者
在Asp.net使用Powershell顯示信箱資訊

問題
-
各位好,我使用VS.net 2005 ,在 Web form上使用powershell查詢Exchange 2007使用者信箱資訊,程式碼如下,問題在於使用Get-MailboxStatistics這個Command,在foreach時會取不到值,而若將command 改為Get-Mailbox則可以取得所有信箱資訊,但是則無法查詢使用者信箱容量,因為信箱容量是在Get-MailboxStatistics這個Command下,如果直接在powershell 裡頭下這段command 是可以的,請教各位先進這個問題要如何解決,謝謝。
RunspaceConfiguration
rsConfig = RunspaceConfiguration.Create(); PSSnapInException snapInException = null; PSSnapInInfo info = rsConfig.AddPSSnapIn("Microsoft.Exchange.Management.PowerShell.Admin", out snapInException); Runspace myRunSpace = RunspaceFactory.CreateRunspace(rsConfig);myRunSpace.Open();
Pipeline pipeline = myRunSpace.CreatePipeline();pipeline.Commands.AddScript(
"Get-MailboxStatistics -Server Servername | Select-Object displayname,totalitemsize");Collection<PSObject> commandResults;
commandResults = pipeline.Invoke();
foreach (PSObject Mailbox in commandResults)
{
Response.Write(Mailbox.Properties["displayname"].Value.ToString());
Response.Write(Mailbox.Properties["totalitemsize"].Value.ToString());
}
myRunSpace.Close();
解答
所有回覆
-
您可以參考下列說明:
若要執行 Get-MailboxStatistics 指令程式,您使用的帳戶必須已委派下列:
- Exchange 僅檢視管理角色
如需權限、委派角色以及管理 Exchange Server 2007 所需之權限的相關資訊,請參閱權限考量。
只有在 Mailbox Server 上,可以使用 Get-MailboxStatistics 指令程式而不使用參數。
在此情況下,指令程式會傳回本機伺服器所有資料庫上,所有信箱的統計資料。
ref: http://technet.microsoft.com/zh-tw/library/bb124612.aspx
因為ASP.NET網頁是透過ASPNET(XP)或是NETWORK Service(WIN2K3)帳號作處理,
所以您要賦予這些特定帳號權限。
- Exchange 僅檢視管理角色
-