質問

私のPSスクリプトの1つをネイティブツールの代わりにQuest 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
.

交換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()
}
.

これはOKですが、これが簡単な方法で達成できることを願っています:

[PS] C:\Users\sysadmin>Convert-msExchMailboxGuid -RawGuid "35CAF894943052409B77F30A6F8D40B4"
94f8ca35-3094-4052-9b77-f30a6f8d40b4
.

役に立ちましたか?

解決

私はこれを超えていくつかのステップを試してみましたが、get-qaduserコマンドの背後にある特定のパラメータを使用しても、残りは既存のスクリプトより特に遅くなりました。だから私は誰かがGUIDを変換するために私の関数を使いたいのであれば、私はこれをここに残しますが、私はもう答えには興味がありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top