Мне нужно получить базу данных с максимальным свободным пространством в Exchange 2010, однако, поскольку она будет запущена из конвейера в c #, я пытаюсь отсортировать результаты, а затем выбрать первую строку.
Если я пытаюсь использовать поле AvailableNewMailboxSpace , оно сортируется с использованием строковых значений вместо двойных значений:
Get-MailboxDatabase -Status | Select Name,AvailableNewMailboxSpace | Sort-Object DatabaseSize
Name AvailableNewMailboxSpace
---- ------------------------
DBMB03 123.1 MB (129,073,152 bytes)
DBMB04 114.1 MB (119,635,968 bytes)
DBMB02 115.6 MB (121,176,064 bytes)
DBMB10 224.4 MB (235,307,008 bytes)
DBMB01 81.47 MB (85,426,176 bytes)
Я думаю, что я должен оставить нули в полеСтрока, чтобы получить правильный порядок, но я не знаю как.
Я должен добиться этого в одной строке, потому что это будет запущено с помощью команды конвейера в c #.
Это моя попытка:
Get-MailboxDatabase -Status |`
Sort (("0" * (10 - {$_.AvailableNewMailboxSpace.Substring(0, $_.AvailableNewMailboxSpace.IndexOf("MB") - 1)}.length)) + `
{$_.AvailableNewMailboxSpace.Substring(0, $_.AvailableNewMailboxSpace.IndexOf("MB") - 1)}) | Select Name,AvailableNewMailboxSpace