[英]Exchange Powershell in c#
我在 c# 中有一堆 powershell 命令,但是一個返回 0 結果,我無法弄清楚,所以借助互聯網的力量,我希望你們有答案。
我的運行電源的c#代碼如下
internal static List<ExchangeMailboxes> ExchangeMailboxList(string snapIn)
{
List<ExchangeMailboxes> data = new List<ExchangeMailboxes>();
StringBuilder stringBuild = new StringBuilder();
stringBuild.AppendLine("$script:WarningPreference = 'SilentlyContinue'");
stringBuild.AppendLine(
"Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Select DisplayName,@{name='TotalItemSize';expression={[math]::Round((($_.TotalItemSize.Value.ToString()).Split('(')[1].Split(' ')[0].Replace(',','')/1GB),2)}},@{name='TotalDeletedItemSize';expression={[math]::Round((($_.TotalDeletedItemSize.Value.ToString()).Split('(')[1].Split(' ')[0].Replace(',','')/1GB),2)}}");
using (PowerShell inst = PowerShell.Create())
{
inst.AddScript("Add-PSSnapin " + snapIn)
.AddScript(stringBuild.ToString());
Collection<PSObject> results = inst.Invoke();
foreach (PSObject obj in results)
{
data.Add(new ExchangeMailboxes()
{
Name = obj.Members["DisplayName"].Value.ToString(),
InboxSize = obj.Members["TotalItemSize"].Value.ToString(),
DeletedSize = obj.Members["TotalDeletedItemSize"].Value.ToString()
});
}
}
return data;
}
我可以確認管理單元正在正確加載,如果我手動運行 powershell 命令,一切都很好,我確認沒有權限問題
這是原始格式的 powershell 命令
Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Select DisplayName,@{name='TotalItemSize';expression={[math]::Round((($_.TotalItemSize.Value.ToString()).Split('(')[1].Split(' ')[0].Replace(',','')/1GB),2)}},@{name='TotalDeletedItemSize';expression={[math]::Round((($_.TotalDeletedItemSize.Value.ToString()).Split('(')[1].Split(' ')[0].Replace(',','')/1GB),2)}}
與 Exchange 2010 和更新版本交互的推薦方法是使用 microsoft.exchange 配置打開一個到http://servername/powershell的會話:
$ExSession = New-PSSession –ConfigurationName Microsoft.Exchange –ConnectionUri ‘http://ExServer1.contoso.com/PowerShell/?SerializationLevel=Full’ -Credential $Credentials –Authentication Kerberos
我從未嘗試過從 c# 代碼進行遠程處理,但我想它應該與您現在所做的沒有任何不同(當然,powershell 代碼本身除外)。 由於您要與 Exchange 中的各種“大小”屬性進行交互,因此仍然建議在本地安裝管理工具,否則這些值無法正確序列化/反序列化(您會在有關該主題的 serverfault 上找到其他帖子)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.