У меня есть скрипт powershell, который выводит все почтовые ящики Exchange 2003 по размеру.
$computers = "vexch01","vexch02"
foreach ($computer in $computers) {
Get-Wmiobject -namespace root\MicrosoftExchangeV2 -class Exchange_Mailbox -computer $computer | sort-object -desc Size | select-object MailboxDisplayName,StoreName,@{Name="Size/Mb";Expression={[math]::round(($_.Size / 1024),2)}}, MailboxGUID | Export-Csv -notype -Path $computer.csv
}
В настоящее время это выводит MailboxGUID в виде GUID строкового типа (например, {21EC2020-3AEA-1069-A2DD-08002B30309D}). По этому я хочу искать пользователей в AD, но AD хранит их в формате octetBytes.
Я нашел несколько функций powershell , которые будут выполнять преобразование, но только после удаления фигурных скобок. Метод Guid.ToString должен обеспечить это, но я не могу заставить его работать выше.
Однако, если бы я мог понять, как это сделать, метод Guid.ToByteArray мог бы сделать меня еще ближе.
Кто-нибудь взломал это?
Обновление: ответы помогли мне написать функцию, которая преобразует почтовый ящик в правильный формат для поиска по LDAP. Однако сейчас я не могу заставить это работать в сценарии. Это мой обновленный скрипт:
function ConvertGuidToLdapSearchString(
[parameter(mandatory=$true, position=0)]$Guid
)
{
$guid_object = [System.Guid]$Guid
($guid_object.ToByteArray() | foreach { '\' + $_.ToString('x2') }) -join ''
}
# Gets data through WMI from specified Exchange mailbox servers
$servers = "vexch01","vexch02"
foreach ($server in $servers) {
Get-Wmiobject -namespace root\MicrosoftExchangeV2 -class Exchange_Mailbox -computer $computer | sort-object -desc Size | select-object MailboxDisplayName,StoreName,@{Name="Size/Mb";Expression={[math]::round(($_.Size / 1024),2)}}, @{Name="LDAP Guid";Expression={ConvertGuidToLdapSearchString(MailboxGUID)}} | Export-Csv -notype -Path $server.csv
}
Я не уверен, почему использование функции в select-object
с @{Name="LDAP Guid";Expression={ConvertGuidToLdapSearchString(MailboxGUID)}}
не работает.
Есть ли другой способ использования этой функции в select-object
, который даст строку?