0

PSスクリプトの1つを、ネイティブツールではなくQuest ADを使用してADをクエリするように変換して、処理を高速化しようとしています。

テスト中に、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

ExchangePSによると。ですから、それは近いですが、完全には正しくありません。

サブストリングプロシージャを使用して値を正しい値に変換する関数を作成しました。

適切な値を返すためのより良い/より効率的な方法はありますか?

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
4

1 に答える 1

0

これを超えるいくつかの手順を試してみましたが、Get-QADUser コマンドの背後にある特定のパラメーターを使用しても、残りは既存のスクリプトよりも著しく遅くなりました。したがって、誰かが私の関数を使用して GUID を変換したい場合に備えて、ここに残しておきますが、もう答えには興味がありません。

于 2012-09-29T13:23:45.890 に答える