Exchange PowerShell GUI:如何正确获取邮箱大小并存入变量?
解决PowerShell获取邮箱大小并存入变量的问题
你的问题出在使用了ft(Format-Table)命令——它的作用是生成供人阅读的格式化输出,返回的是格式化对象而非原始的大小数据,所以赋值给文本框时会显示一堆参数列表。正确的做法是直接提取TotalItemSize的具体值:
方案1:获取带单位的友好显示字符串
如果需要直接显示类似2.5 GB或1200 MB的格式,用以下代码:
$MailboxSize = (Get-MailboxStatistics info).TotalItemSize.Value.ToString() $lbMailboxSize.Text = $MailboxSize
方案2:获取数值并自定义单位
如果需要统一单位(比如全部转为GB),可以先获取字节数再转换:
# 获取原始字节数 $totalBytes = (Get-MailboxStatistics info).TotalItemSize.Value.ToBytes() # 转换为GB并保留两位小数 $gbSize = [math]::Round($totalBytes / 1GB, 2) # 赋值给文本框,带上单位 $lbMailboxSize.Text = "$gbSize GB"
关键说明
Get-MailboxStatistics返回的TotalItemSize是一个ByteQuantifiedSize类型的对象,需要通过.Value访问其实际大小数据,再用ToString()或ToBytes()等方法转换成需要的格式。注意避免使用格式化命令(ft/Format-Table、fl/Format-List)来获取数据,这些命令只适合终端输出,不适合赋值给变量。
内容的提问来源于stack exchange,提问作者user18965014
相关产品推荐
相关产品推荐

