The countdown is on to Keyfactor Tech Days     | secure your spot today!

  • Startseite
  • Blog
  • Konfigurieren eines nicht domänengebundenen RMS-Client-Rechners

Konfigurieren eines nicht domänengebundenen RMS-Client-Rechners

In den meisten Unternehmensumgebungen geht es bei der Einführung von RMS auf den Client-Rechnern um domänenverbundene Rechner, die Sie über Gruppenrichtlinien, SCCM und ähnliche Desktop-Bereitstellungstools konfigurieren. Was aber, wenn Sie einige Benutzer haben, die von nicht domänenverbundenen Clients aus auf RMS-geschützte Inhalte zugreifen müssen? Was ist, wenn sie auch auf Inhalte einen Rechte-Schutz anwenden müssen? Und was ist dann mit Ihren benutzerdefinierten Vorlagen? Unter Umständen kann es möglich sein, RMS auf einem nicht domänenverbundenen Client-Rechner zu konfigurieren, indem man den Benutzer auffordert, ein mit Rechten geschütztes Dokument zu öffnen, aber ob dies funktioniert oder nicht, hängt von vielen Variablen ab und ist keine zuverlässige Lösung. Am besten ist es, wenn Sie dem Benutzer ein einfach auszuführendes Skript zur Verfügung stellen, das mit Ihren Vorlagen für die Rechtepolitik verpackt ist, um automatisch alles in die richtige Reihenfolge zu bringen.

Zu den Dingen, die Sie bedenken sollten, wenn Sie diesen Weg einschlagen, gehören:

  • Verfügt der Endbenutzer über ein Konto in Ihrer Domäne? RMS funktioniert auch von einem Computer aus, der nicht mit der Domäne verbunden ist, aber der Benutzer muss sich trotzdem bei der Domäne authentifizieren können. Das AD-Konto des Benutzers muss auch mit einer E-Mail-Adresse im E-Mail-Feld ausgefüllt werden.
  • Wird der Benutzer versuchen, RMS von innerhalb oder außerhalb der Unternehmensfirewall zu verwenden? Wenn außerhalb, sind die RMS-Zertifizierungs- und Lizenzierungspipelines außerhalb der Unternehmensfirewall verfügbar? Wenn die RMS-Pipelines außerhalb der Unternehmensfirewall nicht verfügbar sind, hat der Benutzer dann die Möglichkeit, eine VPN-Verbindung zu öffnen?
  • Wurde das zur Sicherung der RMS-Pipelines verwendete SSL -Zertifikat von einer vertrauenswürdigen Zertifizierungsstelle (VeriSign, Entrust, GoDaddy usw.) ausgestellt? Wenn nicht, müssen Sie zusätzlich zu der unten beschriebenen Konfiguration den Rechner des Benutzers so konfigurieren, dass er dem Stammzertifikat der Zertifizierungsstelle vertraut, die das Zertifikat ausgestellt hat (in der Regel eine interne PKI).

Das folgende PowerShell-Skript wurde für die Verwendung unter Windows 7 entwickelt und funktioniert in der vorliegenden Form mit Office 2010, kann aber für Office 2007 oder Office 2003 angepasst werden. Wenn Sie ein Skript für Windows XP benötigen, ist PowerShell möglicherweise nicht die beste Wahl, da es unter XP nicht standardmäßig installiert ist. Außerdem ist der im Skript angegebene Pfad für die Rechteschablone unter XP nicht gültig, und XP erfordert außerdem, dass der Benutzer den RMS-Fat-Client installiert (der unter Windows 7 in das Betriebssystem integriert ist).

Das Skript ist für folgende Aufgaben konzipiert:

  1. Legen Sie eine IE-Vertrauensstellung in der Zone "Lokales Intranet" für den Namen des RMS-Clusters fest. Zum Beispiel: https://rms.example.com
  2. Legen Sie die Registrierungsschlüssel in der folgenden Tabelle fest (beachten Sie, dass einige HKLM und einige HKCU sind).
  3. Kopieren Sie Ihre RMS-Richtlinienvorlagendateien in den Standardspeicherort für Vorlagen unter Windows 7 (erstellen Sie ggf. die Verzeichnisse DRM und Templates): %localappdata%\Microsoft\DRM\Templates
Pfad Name Typ Wert
HKLM\Software\Microsoft\Office\14.0\Common\DRM CorpLicenseServer REG_SZ https://rms. example.com/_wmcs/licensing
HKLM\Software\Microsoft\Office\14.0\Common\DRM CorpCertificationServer REG_SZ https://rms. example.com/_wmcs/certification
HKCU\Software\Microsoft\Office\14.0\Common\DRM AdminTemplatePath REG_EXPAND_SZ %localappdata%\Microsoft\DRM\Templates
HKCU\Software\Microsoft\Office\14.0\Common\DRM DisablePassportCertification REG_DWORD 1

Um dieses Skript zu verwenden, kopieren Sie den Inhalt des Skripts in eine Datei und passen die ersten beiden Variablen an den Namen Ihres RMS-Server-Clusters an (z. B. rms.example.com). Wenn Ihr RMS-Server-Cluster intern und extern einen anderen Namen hat, müssen Sie das Skript entsprechend für den Standort konfigurieren, von dem aus der Benutzer auf RMS zugreift. Verpacken Sie das Skript zusammen mit der unten beschriebenen Batch-Datei, um die Verwendung zu erleichtern. PowerShell unter Windows 7 deaktiviert standardmäßig die Verwendung von nicht signierten Skripts innerhalb der PowerShell-Schnittstelle. Mit dieser Batch-Datei wird dieses Problem umgangen. Wenn Sie es vorziehen, das PowerShell-Skript einfach im PowerShell-Fenster auszuführen, müssen Sie möglicherweise RemotedSigned für die PowerShell-Ausführungsrichtlinie aktivieren. Wenn Sie möchten, dass der Benutzer mithilfe Ihrer benutzerdefinierten Rechteschutzvorlagen Rechte auf Inhalte anwenden kann, packen Sie das Skript zusammen mit den XML-Dateien für Ihre Rechteschutzvorlagen (z. B. "Read Only for Employees.xml" und "Allow Print for Employees.xml"). Das Skript und die Batch-Datei setzen voraus, dass sich die Batch-Datei und die XML-Dateien im selben Verzeichnis wie das PowerShell-Skript befinden.

Wenn Sie sich dafür entscheiden, Ihre Vorlagen für Rechtestrategien nicht zu verteilen, können Sie auch die Registrierungseinstellung AdminTemplatePath weglassen. Die Einstellung DisablePassportCertification (Passport-Zertifizierung deaktivieren) ist enthalten, weil die aktivierte Passport-Zertifizierung zu Verwirrung bei Endbenutzern führen kann, die versuchen, sich für Ihre unternehmenseigene RMS-Umgebung und nicht für das passportbasierte RMS von Microsoft zu zertifizieren. Diese Einstellung ist jedoch für die RMS-Funktionalität nicht erforderlich, und Sie können sie entfernen.

Beachten Sie, dass dieses Skript als Administrator ausgeführt werden muss, damit es die HKLM-Registrierungseinstellungen festlegen kann. Um das Skript mit der Batch-Datei zu verwenden, klicken Sie mit der rechten Maustaste auf den Namen der Batch-Datei im Windows Explorer und wählen Sie "Als Administrator ausführen". Um das Skript ohne die Batch-Datei zu verwenden, öffnen Sie ein PowerShell-Fenster mit der Option "Als Administrator ausführen", wechseln Sie in das Verzeichnis, in dem Sie das PowerShell-Skript und die Vorlagen für die Rechtestrategie abgelegt haben, und führen Sie das Skript von dort aus.

Konfigurieren_RMS.ps1

# Set variables
# Set the $DomainName variable to the DNS domain name of your RMS server cluster
# (e.g. example.com, example.local). If your internal RMS cluster name differs from your
# external RMS cluster name (e.g. internal is rms.example.local, external is rms.example.com),
# set the domain name that's appropriate for the end user--external domain if the user will be
# contacting the RMS server cluster from outside the firewall or internal domain name if the
# user will be contacting the RMS server cluster from inside the firewall or over a VPN
# connection.
$DomainName = "example.com"
# Set the @RMSClusterName variable to the short DNS alias name that represents the RMS server
# cluster--e.g. RMS.
$RMSClusterName = "rms"
# Functionality to quit if the requested Office version is not installed. Do not change
# this variable.
$Continue = $true
# Registry key paths. Do not change these variables unless you are modifying the script
# to support a different version of Office. Office 2010 uses 14.0 in the paths, Office 2007
# uses 12.0 in the paths, and Office 2003 uses 11.0 in the paths.
$IETrust = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains"
$HKLMPath = "HKLM:\Software\Microsoft\Office\14.0\Common"
$HKCUPath = "HKCU:\Software\Microsoft\Office\14.0\Common"

# Set IE trust in Local Intranet zone
If (Test-Path "$IETrust\$DomainName")
{
   # Zone already exists for requested $DomainName
   If (Test-Path "$IETrust\$DomainName\$RMSClusterName")
   {
      # Zone already exists for requested $DomainName and $RMSClusterName.
      # Set the HTTPS value even if it already exists.
      Write-Host "`n`nCreating IE trust in existing RMS cluster name...`n`n"
      New-ItemProperty "$IETrust\$DomainName\$RMSClusterName" -Name https `
         -PropertyType DWord -Value 1 -Force
   }
   else
   {
      # Requested $RMSClusterName does not exist. Create it and the HTTPS value.
      Write-Host "`n`nCreating RMS cluster name zone...`n`n"
      New-Item "$IETrust\$DomainName\$RMSClusterName"
      Write-Host "`n`nCreating IE trust in new RMS cluster name zone...`n`n"
      New-ItemProperty "$IETrust\$DomainName\$RMSClusterName" -Name https `
         -PropertyType DWord -Value 1
   }
}
else
{
   # Zone does not exist for requested $DomainName. Create it, $RMSClusterName
   # and the HTTPS value.
   Write-Host "`n`nCreating domain name zone...`n`n"
   New-Item "$IETrust\$DomainName"
   Write-Host "`n`nCreating RMS cluster name zone in new domain name zone...`n`n"
   New-Item "$IETrust\$DomainName\$RMSClusterName"
   Write-Host "`n`nCreating IE trust in new RMS and domain name zones...`n`n"
   New-ItemProperty "$IETrust\$DomainName\$RMSClusterName" -Name https `
      -PropertyType DWord -Value 1
}

# Set registry key options for location of the RMS server cluster for the specified
# Microsoft Office version.
If (Test-Path "$HKLMPath")
{
   # The specified Microsoft Office version appears to be installed.
   If (Test-Path "$HKLMPath\DRM")
   {
      # DRM key already exists. Create the registry values, even if they already exist.
      Write-Host "`n`nCreating HKLM registry keys in pre-existing DRM key...`n`n"
      New-ItemProperty "$HKLMPath\DRM" -Name CorpLicenseServer -PropertyType String `
         -Value https://$RMSClusterName.$DomainName/_wmcs/licensing -Force
      New-ItemProperty "$HKLMPath\DRM" -Name CorpCertificationServer -PropertyType String `
         -Value https://$RMSClusterName.$DomainName/_wmcs/certification -Force
   }
   else
   {
      # DRM key does not exist. Create it and the registry keys.
      Write-Host "`n`nCreating new DRM key under HKLM path...`n`n"
      New-Item "$HKLMPath\DRM"
      Write-Host "`n`nCreating HKLM registry keys in new DRM key...`n`n"
      New-ItemProperty "$HKLMPath\DRM" -Name CorpLicenseServer -PropertyType String `
         -Value https://$RMSClusterName.$DomainName/_wmcs/licensing
      New-ItemProperty "$HKLMPath\DRM" -Name CorpCertificationServer -PropertyType String `
         -Value https://$RMSClusterName.$DomainName/_wmcs/certification
   }
}
else
{
   # WARNING: Script will stop at this point and make no further changes if the correct
   # HKLM path for the specified Office version is not found.
   Write-Host "The specified Microsoft Office version does not appear to be installed."
   $Continue = $false
}

If ($continue)
{
   # Set registry key options in HKCU for the specified Office version.
   If (Test-Path "$HKCUPath")
   {
      # The specified Microsoft Office version appears to be installed.
      If (Test-Path "$HKCUPath\DRM")
      {
         # DRM key already exists. Create the registry values, even if they already exist.
         Write-Host "`n`nCreating HKCU registry keys in pre-existing DRM key...`n`n"
         New-ItemProperty "$HKCUPath\DRM" -Name AdminTemplatePath -PropertyType ExpandString `
            -Value %localappdata%\Microsoft\DRM\Templates -Force
         New-ItemProperty "$HKCUPath\DRM" -Name DisablePassportCertification `
            -PropertyType DWord -Value 1 -Force
      }
      else
      {
         # DRM key does not exist. Create it and the registry keys.
         Write-Host "`n`nCreating new DRM key under HKCU path...`n`n"
         New-Item "$HKCUPath\DRM"
         Write-Host "`n`nCreating HKCU registry keys in new DRM key...`n`n"
         New-ItemProperty "$HKCUPath\DRM" -Name AdminTemplatePath -PropertyType ExpandString `
            -Value %localappdata%\Microsoft\DRM\Templates
         New-ItemProperty "$HKCUPath\DRM" -Name DisablePassportCertification `
            -PropertyType DWord -Value 1
      }
   }
   else
   {
      # WARNING: Script will stop at this point and make no further changes if the correct
      # HKCU path for the specified Office version is not found.
      Write-Host "The specified Microsoft Office version does not appear to be installed."
      $Continue = $false
   }

   # Install rights policy templates.
   If (Test-Path "$env:localappdata\Microsoft\DRM")
   {
      # DRM folder already exists.
      If (Test-Path "$env:localappdata\Microsoft\DRM\Templates")
      {
         # Templates folder under DRM already exists. Copy templates to it,
         # overwriting existing files.
         Write-Host "`n`nCopying policy templates to pre-existing Templates folder...`n`n"
         Copy-Item *.xml "$env:localappdata\Microsoft\DRM\Templates"
      }
      else
      {
         # Templates folder under DRM does not exist. Create it and copy templates to it,
         # overwriting existing files.
         Write-Host "`n`nCreating Templates folder in pre-existing DRM folder...`n`n"
         New-Item "$env:localappdata\Microsoft\DRM\Templates" -Type Directory
         Write-Host "`n`nCopying policy templates to new Templates folder...`n`n"
         Copy-Item *.xml "$env:localappdata\Microsoft\DRM\Templates"
      }
   }
   else
   {
      # DRM folder does not exist. Create it and the Templates folder and copy
      # templates to it, overwriting existing files.
      Write-Host "`n`nCreating DRM folder...`n`n"
      New-Item "$env:localappdata\Microsoft\DRM" -Type Directory
      Write-Host "`n`nCreating Templates folder in new DRM folder...`n`n"
      New-Item "$env:localappdata\Microsoft\DRM\Templates" -Type Directory
      Write-Host "`n`nCopying rights policy templates to new Templates folder...`n`n"
      Copy-Item *.xml "$env:localappdata\Microsoft\DRM\Templates"
   }
}

Konfigurieren_RMS.bat

pushd %~dp0
powershell.exe -command ^
  "& {set-executionpolicy Remotesigned -Scope Process; .'.\Configure_RMS.ps1' }"
popd
pause

Sobald das Skript ausgeführt wurde, sollte der Endbenutzer in der Lage sein, vorhandene rechtegeschützte Inhalte zu öffnen oder Rechte auf Inhalte anzuwenden. In vielen Fällen wird der Benutzer bei der Verwendung von RMS aufgefordert, seinen Benutzernamen und sein Kennwort für Ihre Active Directory-Domäne einzugeben. Wenn der Benutzer über eine VPN-Verbindung mit Ihrem internen Netzwerk verbunden ist, kann RMS die Anmeldedaten des Benutzers vom VPN übernehmen und fordert den Benutzer nicht zur Authentifizierung auf.

Wie Sie vielleicht wissen, gibt es zwei Ansätze, um den Standort des RMS-Server-Clusters in der Registrierung auf RMS-Clients zu konfigurieren. Der hier verwendete Ansatz ist spezifisch für Office-Anwendungen und verwendet die Registrierungseinstellungen CorpLicenseServer und CorpCertificationServer. Die andere Möglichkeit ist die Verwendung der Registrierungseinstellungen Activation und EnterprisePublishing, die global sind und für alle Anwendungen gelten, die RMS verwenden, nicht nur für Office. Das Problem bei einem skriptgesteuerten Ansatz mit diesen Einstellungen besteht darin, dass die Einstellungen an unterschiedlichen Stellen in der Registrierung abgelegt werden, je nachdem, ob es sich um ein 32-Bit- oder 64-Bit-Betriebssystem handelt und ob die Version von Office (oder einer anderen Anwendung) 32-Bit oder 64-Bit ist. Wenn Sie jedoch RMS in Anwendungen von Drittanbietern unterstützen müssen, müssen Sie die Einstellungen Activation und EnterprisePublishing verwenden. Wenn Sie diesen Weg gehen müssen und sich nicht sicher sind, ob Sie mit 32-Bit oder 64-Bit arbeiten, können Sie diese Einstellungen immer sowohl in der regulären Struktur in der Registrierung als auch in der wow6432node-Struktur konfigurieren. Der Vorteil ist, dass Sie bei Verwendung der Einstellungen für Aktivierung und EnterprisePublishing nicht wissen müssen, welche Office-Version der Benutzer verwendet. (RMS funktioniert nur mit Office 2003 und höher.)