none
在Asp.net使用Powershell顯示信箱資訊 RRS feed

  • 問題

  •  

    各位好,我使用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();

    2009年1月13日 上午 08:45

解答

所有回覆

  • 我把這段語法放在Win form ,結果運作的很正常,但是Web form就是不行,我在猜可能是權限的問題

    2009年1月15日 上午 02:04
  • 您可以參考下列說明:

     

    若要執行 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)帳號作處理,

    所以您要賦予這些特定帳號權限。

     

    2009年1月15日 上午 02:32
    版主
  •  

    感謝LOLOTA的回覆,我已在下方的連結中尋找到解答,有需要的人可參考

    http://support.microsoft.com/kb/306158

    2009年1月17日 上午 07:41
  • James325 請教一下,可否說明你是如何辦到的呢?因為我參考了你給的技術資料後,用了模擬帳戶的方法都跟你之前敘述的情形是一樣的,一直無法執行 PowerShell  Command ...

    2009年3月6日 上午 07:11