2012-09-29 31 views
0

我試圖將我的PS腳本之一轉換爲使用Quest AD查詢AD而不是本機工具來加速處理。從QuestAD轉換msExchMailboxGuid

在測試過程中,我得出結論: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 

回答

0

我想超越這幾步,甚至與背後的獲取,QADUser命令的某些參數時,休息明顯比我現有的劇本慢。所以我會在這裏留下這個以防萬一有人想用我的函數來轉換GUID,但我對這個答案不再感興趣。