in einem früheren Artikel hatte ich beschrieben, wie ein Exchange Resource Forest Szenario bzw. eine „Exchange First Migration“ genutzt werden kann.Heute möchte ich ein weiteres Detail hinzufügen:
Wie funktioniert Microsoft Lync im Rebr/source Forest?
Index
Microsoft Lync in einer Resource Forest Konfiguration
In einem Exchange Resource Forest melden sich die Anwender in einer Account Domain an. Die Exchange Postfächer werden in einem anderen getrusteten Forest bereitgestellt. Damit dies funktioniert, sind die Benutzerkonten in der Resource Domain deaktiviert und die Postfächer werden zu sog. „linked mailboxes“ umgewandelt.
Was geschieht nun, wenn Microsoft Lync in diesem Resource Forest genutzt werden soll? Eine Anmeldung mit dem Benutzerkonto aus der Resource Domain ist nicht möglich, da dieses deaktiviert ist. Hier hat Microsoft eine ähnliche Lösung entwickelt, wie sie schon für den Betrieb von „linked mailboxes“ zum Einsatz kommt. Zur Erinnerung: bei einer „linked mailbox“ wird die objectSID des Benutzerkontos aus der Account Domain in das Attribute „msExchMasterAccountSid“ des deaktivierten Kontos in der Resource Domain eingetragen. So erkennt Microsoft Exchange, dass ein anderes Benutzerkonto zur Nutzung des Postfachs berechtigt ist. Ähnlich wird auch bei Microsoft Lync verfahren. Bei Lync nennt sich das Attribut „msRTCSIP-OriginatorSid„. Hier wird ebenfalls die objectSID des Benutzerkontos aus der Account Domain eingetragen und Lync erkennt automatisch, dass sich dieser Benutzer nun anmelden darf.
Zur Konfiguration der msRTCSIP-OriginatorSid gibt es verschiedene Wege:
- Lync Resourcekit Tool „sidmap.wsf“
- Manuelles kopieren mit ADSIEDIT
- PowerShell Script
Lösung per PowerShell Script
Ich bin meistens in Active Directory– und Exchange Migrationsprojekten tätig und bearbeite selten einzelne Benutzerkonten. Aus diesem Grund möchte ich die Lösung per PowerShell hier genauer vorstellen, da diese eine Massenverarbeitung zulässt.
Das Powershell Script sucht zunächst nach deaktivierten Benutzerkonten mit einer „linked mailbox“ und Lync Konfiguration, jedoch ohne „msRTCSIP-OriginatorSid„.
Hier nutze ich die Quest PowerShell cmdLets für Active Directory, da das cmdLet „get-QADUser“ mit dem Parameter „-Enabled:false“ sehr einfach deaktivierte Benutzerkonten herausfiltert.
Der Filter setzt sich wie folgt zusammen:
User object disabled | -Enabled:$false |
User objects | (objectclass=user) |
Lync enabled | (msRTCSIP-PrimaryHomeServer=*) |
Linked mailbox | (msExchMasterAccountSid=*) |
ohne „msRTCSIP-OriginatorSid“ | (!(msRTCSIP-OriginatorSid=*)) |
Für jedes gefundene Benutzerobjekt Objekt wird die objectSID ausgelesen. In diesem speziellen Fall musste dies per ADSI Schnittstelle geschehen, da die Account Domain noch im Windows Server 2003 Mode betrieben wird und somit die Microsoft Active Direcory cmdLets nicht unterstützt werden. (Siehe Artikel PowerShell: Verbindung zu einer anderen Domain herstellen)
$root = [ADSI]“LDAP://<DC.DOMAIN.COM>“
$search = new-Object System.DirectoryServices.DirectorySearcher($root,“(SamAccountName=$user)“)
$result = $search.FindOne()
if ($result -ne $null)
{
$SRCobj = $result.GetDirectoryEntry()
}
Die so ausgelesene objectSID kann nicht 1:1 in das Attribut „msRTCSIP-OriginatorSid“ geschrieben werden. Es muss zuvor in einen Typ „System.Security.Principal.SecurityIdentifier“ umgewandelt werden.
$SecSID=(New-Object System.Security.Principal.SecurityIdentifier($SRCSID,0)).Value
In diesem Format kann die objectSID in das Attribut „msRTCSIP-OriginatorSid“ geschrieben werden. Da das Attribut „msRTCSIP-OriginatorSid“ einen Bindestrich enthält, ist es einfacher den Attributnamen vorher als Text in einer Variablen ($Prop) zu hinterlegen.
$Prop=“msRTCSIP-OriginatorSid“ $result=Set-QADUser $tgtUser -ObjectAttributes @{$Prop=$SecSID}
Nun ist das Attribut „msRTCSIP-OriginatorSid“ mit der objectSID des Benutzerkontos der Account Domain gefüllt und die Anmeldung an Microsoft Lync funktioniert.
Leave a Reply
<p>Danke für Ihre Anregungen, Fragen und Hinweise.<br/>Infos zum <a href="https://www.active-directory-faq.dekontakt/">Datenschutz</a></p>