PowerShell Exchange,更简单的方法来计算在达到配额之前剩余的可用 space?
PowerShell Exchange, easier way to work out available space left before hitting quota?
下午好,
我正在尝试计算出在用户达到 ProhibitSendQuota 之前,用户邮箱中剩余的可用 space MB。
我有以下可行的方法,但实现它的方法似乎非常冗长。
注意:我正在使用远程 PowerShell 会话。我无法使用 Exchange 管理工具来实现此目的,否则我会使用 .ToMB()
X2_MBX = Get-Mailbox X2_USER_AD.SamAccountName
X2_MBXSTATS = Get-MailboxStatistics X2_USER_AD.SamAccountName
$a = ( ( ( ( X2_MBX.ProhibitSendQuota | Out-String ).Split( "(" )[1] ) -replace "," , "" ).Split( ")" )[0] -replace " bytes" , "" ) - ( ( ( ( X2_MBXSTATS.TotalItemSize.Value | Out-String ).Split( "(" )[1] ) -replace "," , "" ).Split( ")" )[0] -replace " bytes" , "" )
[math]::round( ( $a / 1048576 ) ,2 )
就像我说的,这似乎有效。如果这是到达那里的一种相当不错的方式,那么我印象深刻,我自己做到了!但绝对显得啰嗦。
我会这样做:
function Remove-UselessText ($inputString) {
$output = ($inputString -replace "[0-9\.]+ [A-Z]* \(([0-9,]+) bytes\)","`") -replace ",",""
[int]$output
}
$accountName = X2_USER_AD.SamAccountName
X2_MBX = Get-Mailbox $accountName
X2_MBXSTATS = Get-MailboxStatistics $accountName
$freeQuota = (Remove-UselessText X2_MBX.ProhibitSendQuota) - (Remove-UselessText X2_MBXSTATS.TotalItemSize.Value)
"Free quota for $accountName : {0:N2} MB" -f ($freeQuota / 1MB)
这是我的:
X2_MBX = Get-Mailbox X2_USER_AD.SamAccountName
X2_MBXSTATS = Get-MailboxStatistics X2_USER_AD.SamAccountNam
$Quota = ([int64](X2_MBX.ProhibitSendQuota -split '[\( ]')[3])
$MailboxSize = [int64](X2_MBXSTATS.TotalItemSize -split '[\( ]')[3]
"Quota Available {0:N2} GB" -f (($Quota - $MailboxSize) / 1GB)
下午好,
我正在尝试计算出在用户达到 ProhibitSendQuota 之前,用户邮箱中剩余的可用 space MB。
我有以下可行的方法,但实现它的方法似乎非常冗长。
注意:我正在使用远程 PowerShell 会话。我无法使用 Exchange 管理工具来实现此目的,否则我会使用 .ToMB()
X2_MBX = Get-Mailbox X2_USER_AD.SamAccountName
X2_MBXSTATS = Get-MailboxStatistics X2_USER_AD.SamAccountName
$a = ( ( ( ( X2_MBX.ProhibitSendQuota | Out-String ).Split( "(" )[1] ) -replace "," , "" ).Split( ")" )[0] -replace " bytes" , "" ) - ( ( ( ( X2_MBXSTATS.TotalItemSize.Value | Out-String ).Split( "(" )[1] ) -replace "," , "" ).Split( ")" )[0] -replace " bytes" , "" )
[math]::round( ( $a / 1048576 ) ,2 )
就像我说的,这似乎有效。如果这是到达那里的一种相当不错的方式,那么我印象深刻,我自己做到了!但绝对显得啰嗦。
我会这样做:
function Remove-UselessText ($inputString) {
$output = ($inputString -replace "[0-9\.]+ [A-Z]* \(([0-9,]+) bytes\)","`") -replace ",",""
[int]$output
}
$accountName = X2_USER_AD.SamAccountName
X2_MBX = Get-Mailbox $accountName
X2_MBXSTATS = Get-MailboxStatistics $accountName
$freeQuota = (Remove-UselessText X2_MBX.ProhibitSendQuota) - (Remove-UselessText X2_MBXSTATS.TotalItemSize.Value)
"Free quota for $accountName : {0:N2} MB" -f ($freeQuota / 1MB)
这是我的:
X2_MBX = Get-Mailbox X2_USER_AD.SamAccountName
X2_MBXSTATS = Get-MailboxStatistics X2_USER_AD.SamAccountNam
$Quota = ([int64](X2_MBX.ProhibitSendQuota -split '[\( ]')[3])
$MailboxSize = [int64](X2_MBXSTATS.TotalItemSize -split '[\( ]')[3]
"Quota Available {0:N2} GB" -f (($Quota - $MailboxSize) / 1GB)