Resolution
OWKO or otherWellKnownObjects is an attribute of the Active Directory object like OU (Organizational Unit), CN, User, Group, Contact, etc.
OWKO establishes one-way link between two different AD objects. The link will be updated if the DN (Distinguished Name) of the child object is changed.
OWKO is stored in the following format:
B:<char count>:<well known GUID>:<object DN>
Example:
B:32:9E444526CB6F4D5C9A59C9A84E26B627:CN=S001000011 AL, CN=All Address Lists, CN=Address Lists Container, CN=hosting, CN=Microsoft Exchange, CN=Services, CN=Configuration, DC=hosting, DC=local
Important OWKO GUIDs:
D22DFCC5B73645E99E16C9AD3D61F34F
- DN of the Offline Address List for this company9E444526CB6F4D5C9A59C9A84E26B627
- DN of the Address List for this company89FB25B7DF784FC198A493E2E8A0EE7E
- DN of the Global Address List58888CFC8F7F430C8183102CD5758D81
- DN of the parent OUCC016CF08DEF4EA4A05C9C54B198785A
- DN of the customer OU
Additional OWKO GUIDs for Exchange 2010 and above:
5CA85AC057A0459194F8B75DA2D35D35
- DN of the Rooms Address List for this companyE375E41B3AE442039E1CC48E0F093EC6
- DN of the Address Book Policy for this company
Useful links:
- Enabling Rename-Safe Binding with the otherWellKnownObjects Property
- otherWellKnownObjects - the family relatives you do actually want to know
Tools for operating OWKO:
Utility ldifde.exe - LDIF Directory Exchange
In the command line window (cmd) run:
> ldifde -d "DN_of_customers_OU" –f output_file_name –p Base
The command above will export content of object with DN "DN_of_customers_OU" in AD (active Directory) and save result in the file
<output file name>
.DN of customer's organizational unit can be found in POA database, e.g. using subscription ID:
plesk=> SELECT org_ldap_path FROM exch_domain_services WHERE subscription_id = <customer_sub_id>;
In the created file with results you will find all OWKO of the needed object, e.g.:
otherWellKnownObjects: B:32:4619BE598BF441DB8C9DB0482E62E386:CN=_Private,OU=S000000510,OU=Provider,OU=Hosting,DC=hosting,DC=local otherWellKnownObjects: B:32:EA755D448CE64157A20E82B7CCBE14B0:CN=customer,CN=WatOrgTypes,CN=_Private,OU=Hosting,DC=hosting,DC=local otherWellKnownObjects: B:32:3B6FF4FA8AA248039AD8F9493A43B704:CN=CSRAdmins@S000000510,OU=S000000510,OU=Provider,OU=Hosting,DC=hosting,DC=local otherWellKnownObjects: B:32:65F37ECB46704F0E9300E1FB48E1096E:CN=Admins@S000000510,OU=S000000510,OU=Provider,OU=Hosting,DC=hosting,DC=local otherWellKnownObjects: B:32:58888CFC8F7F430C8183102CD5758D81:OU=Provider,OU=Hosting,DC=hosting,DC=local otherWellKnownObjects: B:32:CC016CF08DEF4EA4A05C9C54B198785A:OU=S000000510,OU=Provider,OU=Hosting,DC=hosting,DC=local
Create VB script
getowko.vbs
with the following content (replace DN of AD object in parameters of theGetObject
function with the required one):Set fso = CreateObject("Scripting.FileSystemObject") Set stdout = fso.GetStandardStream(1, True) Set obj = GetObject("LDAP://OU=S000000510,OU=Provider,OU=Hosting,DC=hosting,DC=local") vArray = obj.GetEx("otherWellKnownObjects") 'for i=lbound(owko) to ubound(owko) ' stdout.writeline typename(owko(i)) 'next For Each var In vArray Set oDNWithBinary = var binArr = oDNWithBinary.BinaryValue guid = "" For i=1 To LenB(binArr) guid = guid & Right("0" & Hex(AscB(MidB(binArr, i, 1))), 2) Next stdout.writeline "B:" & Len(guid) & ":" & guid & ":" & oDNWithBinary.DNString next
Run the script in command line window:
> cscript getowko.vbs
Example of VB script
getowko.vbs
is attached to this KB article.Use the
ProvTest.exe
utility on MPS (Microsoft Provisioning System) server or theWPETest.exe
utility on WPE (Windows Provisioning Engine) server to send the GetProperties request to the used Provisioning System:MPS server:
> "C:\Program Files\Microsoft Provisioning\Tools\ProvTest.exe" request.xml
WPE server:
POA 5.4.0 and below:
> "C:\Program Files\Parallels\Windows Provisioning Engine\bin\WPETest.exe" -e http://WPE_SITE_IP:48480/WPEService.asmx request.xml
POA 5.4.1 and above:
> "C:\Program Files\Parallels\Windows Provisioning Engine\bin\WPETest.exe" -e https://WPE_SITE_IP:48480/WPEService.asmx request.xml
Notes:
- Replace
WPE_SITE_IP
with the IP address of the WPE server - Replace
48480
with the actual IP port of the WPE service website (48480 is the default port) - Replace
request.xml
with the full path to the prepared XML file with the request
Use the attached PowerShell script getowko.ps1. Pass Distinguished Name (DN) of the customer's OU as a parameter to the script, e.g.:
PS C:> .\getowko.ps1 "OU=S000000031,OU=Provider,OU=Hosting,DC=hosting,DC=local"