문제

PS 스크립트 중 하나를 원시 도구 대신 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
. Exchange PS에 따르면

.그래서 가까이 있지만 옳지는 않습니다.

i 값을 하위 문자열 절차를 사용하여 오른쪽 하나로 변환하는 함수를 썼습니다.

오른쪽 값을 반환하는 것이 좋거나 효율적인 방법이 있습니까?

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를 변환하기 위해 내 기능을 사용하기를 원하는 경우를 대비하여 여기를 남겨 둡니다. 그러나 나는 더 이상 답변에 관심이 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top