从Questad转换msexchmailboxguid
-
11-12-2019 - |
题
我正在尝试将我的一个ps脚本转换为使用任务广告而不是本机工具来调查广告以加速处理。
在我的测试期间,我得出结论,MSExchmailboxGuid属性以我需要转换的格式返回。
这是我正在运行的命令进行测试:
$LDAPQuery = "(&(HomeMDB=*)(objectClass=user))"
$OUPath = "OU=users,DC=domain,DC=com"
$SearchResults = Get-QadUser -LdapFilter $LDAPQuery -SearchRoot $OUPath -ShowProgress -SizeLimit 1 -IncludedProperties "msExchMailboxGuid"
.
正在返回MSExchMailboxGuid值:
[PS] C:\Users\sysadmin>$SearchResults | Select msExchMailboxGuid
msExchMailboxGuid
-----------------
35CAF894943052409B77F30A6F8D40B4
.
如果我运行这个,它会返回:
[PS] C:\Users\sysadmin>[guid]"35CAF894943052409B77F30A6F8D40B4"
Guid
----
35caf894-9430-5240-9b77-f30a6f8d40b4
.
但我知道这个用户的msexchmailboxguid实际上是这样的:
94f8ca35-3094-4052-9b77-f30a6f8d40b4
.
根据Exchange PS。所以它很近但不太正确。
我写了一个使用子字符串程序将值转换为右侧的函数。
是否有更好/更有效地返回正确的值?
Function Convert-msExchMailboxGuid
{
param
(
$RawGuid
)
$ConvertedGuid = $RawGuid.SubString(6,2) + $RawGuid.SubString(4,2) + $RawGuid.SubString(2,2) + $RawGuid.SubString(0,2) + $RawGuid.SubString(10,2) + $RawGuid.SubString(8,2) + $RawGuid.SubString(14,2) + $RawGuid.SubString(12,2) + $RawGuid.SubString(16)
return ([guid]$ConvertedGuid).ToString()
}
.
工作正常,但我希望这可以以更容易的方式实现:
[PS] C:\Users\sysadmin>Convert-msExchMailboxGuid -RawGuid "35CAF894943052409B77F30A6F8D40B4"
94f8ca35-3094-4052-9b77-f30a6f8d40b4
. 解决方案
我尝试了几个超出此处的步骤,甚至在Get-Qaduser命令后面的某些参数,其余的速度比我现有的脚本慢。所以我会在这里留下这个,以防有人想要使用我的功能来转换GUID,但我不再对答案感兴趣。
不隶属于 StackOverflow