Möchte man eine Instanz in eine andere Infrastruktur migrieren (möglicherweise aufgrund einer Aktualisierung), sollten folgende Schritte beachtet werden.

  • Bevor die Instanz in der „alten Umgebung“ abgeschaltet wird, sollte der aktuelle Schlüssel für die Datenverschlüsselung kopiert werden. Diesen finden Sie ab Dynamics CRM 2011 unter Einstellungen > Datenverwaltung > Datenverschlüsselung > [X] Schlüssel anzeigen. Sie benötigen diesen nach der Migration, um die Datenverschlüsselung wieder zu aktivieren.
  • Stellen Sie zudem sicher, dass es einen CRM-User gibt, der alle der folgenden Eigenschaften besitzt.
    • Zugriffsmodus: Lesen-Schreiben (NICHT Administrator und erst recht nicht Lesezugriff)
    • Rolle: Mindestens Systemadministrator
  • Anschließend können Sie auf dem Anwendungsserver die Instanz deaktivieren und löschen. Hierbei wird die Datenbank nicht gelöscht.
  • Besagte Datenbank können Sie anschließend auf dem SQL-Server entweder im Rahmen eines Backups sichern, oder aber die Datenbank einfach aushängen.
  • In beiden Fällen können Sie die Datenbank entweder durch simples Wiedereinhängen oder durch das Wiederherstellen der Sicherung im neuen SQL-Server einhängen.
  • Auf dem neuen CRM- / Dynamics 365-Server können Sie dann die Organisation importieren. Nach der erneuten Eingabe der Namen sowie der Auswahl des Report-Servers kommen wir hier zum Benutzermapping. Dies können Sie automatisiert durchlaufen lassen, sofern die Domäne gleich bleibt. Anderenfalls müssen Sie die CRM-Benutzer manuell den AD-Benutzern zuweisen.
  • Im Falle des Fehlers „You must map your Active Directory user account to at least one enabled Microsoft Dynamics CRM user who has the System Administrator role before the organization can be imported“ sind folgende Ursachen möglich:
    • Sie führen den Import mit einem Benutzer durch, den Sie nicht gemappt haben > Sie müssen sich entweder den Import mit dem Benutzer durchführen, auf den die Anforderungen aus Schritt 2 passen, oder Ihren aktuellen Benutzer auf den besagten CRM-User mappen.
    • Sie führen den Import mit einem Benutzer durch, dessen CRM-User nur administrativen Zugriff auf das CRM hat > Führen Sie folgende Query in der Datenbank Ihrer Instanz aus:
      UPDATE SystemUserBase
      SET AccessMode = 0
      WHERE DomainName = 'DOMAIN\User'
    • Sie führen den Import mit einem Benutzer durch, dessen CRM-User deaktiviert ist > Führen Sie folgende Query in der Datenbank Ihrer Instanz aus:
      UPDATE SystemUserBase
      SET IsDisabled = 0
      WHERE DomainName = 'DOMAIN\User'

      Es kann sein, dass Sie davor einen anderen Benutzer deaktivieren müssen, um die maximale Anzahl von Benutzern nicht zu überschreiten:

      UPDATE SystemUserBase
      SET IsDisabled = 1
      WHERE DomainName = 'DOMAIN\OtherUser'
  • Danach wird der Import durchgeführt. Dies lief bei uns fehlerfrei durch. Sollten uns bei kommenden Migrationen noch gängige Fehler auffallen, werden wir diese an der Stelle ebenfalls festhalten.
  • Nach dem erfolgreichen Umzug müssen Sie bei der Verwendung von ADFS spätestens jetzt die alte Instanz löschen. Aktualisieren Sie anschließend beide Relying Party Trusts (mangels deutscher Server fehlt mir hier die Übersetzung) – die der alten Instanz und die der neuen.
  • Der A-Record muss ebenfalls auf die neue Infrastruktur zeigen.
  • Tragen Sie nach dem erfolgten Zugriff auf das neue CRM den in Schritt 1 gespeicherten Verschlüsselungskey wieder unter Einstellungen > Datenverwaltung > Datenverschlüsselung ein. Danach ist das CRM / Dynamics 365 wieder voll benutzbar.

Bei frisch installierten Windows 10- und Windows Server 2016-Systemen wird beim Öffnen des Explorers der „Schnellzugriff“ statt „Dieser PC“ angezeigt. Diese Änderung sorgte für viel Unmut, auch weil nicht sofort ersichtlich war, wie man das ändert.

Manuell:

  • Rechtsklicken Sie auf „Schnellzugriff“ in der linken Navigationsleiste des Explorers und gehen Sie auf „Optionen“.
  • Wählen Sie im Reiter „Allgemein“ unter der Einstellung „Datei-Explorer öffnen für:“ die Option „Dieser PC“.
  • Bestätigen Sie mit Klick auf „OK“.

Gruppenrichtlinie:

  • Erstellen Sie eine neue Gruppenrichtlinie mit einem treffenden Namen.
  • Navigieren Sie in der GPO zu folgender Einstellung: „Computer Configuration“ -> „Preferences“ -> „Windows Settings“ -> „Registry“
  • Rechtsklicken Sie in den freien Raum und wählen dann „Neu“ -> „Registry Item“
  • Füllen Sie die Maske wie folgt aus:
    Action: „Update“
    Hive: „HKEY_LOCAL_MACHINE“
    Key Path: „SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced“
    Value Name: „LaunchTo“
    Value type: „REG_DWORD“
    Value data: „1“
    Base: „Decimal“
  • Diese Eingaben per Klick auf „OK“ bestätigen.
  • Die restlichen Fenster können geschlossen werden.

Wir haben mehrere CentOS-basierte Zabbix-Proxies. Damit diese auch nach dem Neustart noch ihren Zweck erfüllen und nicht irgendwie in der Luft hängen, haben sich folgende Schritte etabliert.

nano /etc/rc.d/rc.local

Hinter diesem Pfad verbirgt sich ein Startup-Script. Dieses kann schon einige Zeilen enthalten. Wir ergänzen es einfach um folgende Einträge:

# eth1 ist die NIC in unser Netzwerk. eth0 ist die NIC mit Default Gateway in das zu überwachende Netz
# Zu Beginn starten wir diese NIC einmal neu, um sicherzustellen, dass sie aktiv ist
ifdown eth1
ifup eth1

# Dann setzen wir die Route für das Netz, in dem der Zabbix-Server letztendlich steht
ip route add [MgmtNetz]/[Hostbits] via [IP des Gateways der NIC] dev eth1 proto static metric 10
# Bsp.: ip route add 192.168.1.0/24 via 172.16.1.1 dev eth1 proto static metric 10

# SELinux Konfiguration „Eine Bastion gegen Angriffe“
setsebool zabbix_can_network 1
setsebool httpd_can_connect_zabbix 1

# Sicherstellen dass die Dienste laufen
systemctl start zabbix-proxy
systemctl start zabbix-agent
systemctl start postgresql

Anschließend stellen wir sicher, dass das Script ausführbar ist:

chmod +x /etc/rc.d/rc.local

Damit sollte der Proxy künftige Neustarts überleben.

Szenario:

Über ein beliebiges Tool wird versucht, per SMTP eine Mail unter Verwendung des Exchange-Servers als Relay zu versenden. Die Authentifizierung klappte tadellos und als Absenderadresse wird die Antwortadresse des Accounts verwendet, mit dem man sich zuvor angemeldet hat. Und doch sagt der Exchange-Server:

5.7.1 Client does not have permissions to send as this sender

Grund / Lösung:

Man muss obige Fehlermeldung nur in Google eingeben, um herauszufinden, dass es so einige Ansätze zur Problemlösung gibt. Bei uns war es jedoch ein sehr unüblicher Grund: Vor zwei Tagen hatte ich die Domain, die die Mailadresse des Benutzers hinter dem @ stehen hat, als „External Relay“ definiert. Damals wollte ich sicherstellen, dass der Exchange immer versucht, die Mail über das Internet zu versenden, auch wenn das Empfängerpostfach lokal vorliegt. Das oben beschriebene Szenario ist hier jedoch ein unangenehmer Nebeneffekt. Verwendet man also den Exchange-Server als Relay für andere Programme, so sollte die sendende Domain immer als „Authorative“ oder „Internal Relay“ eingerichtet sein.

Wird ein öffentlicher Ordner bzw. ein darin untergeordneter Ordner für das Empfangen von Mails aktiviert, kann es sein, dass er auf Grund von vorher gesetzten Berechtigungen dennoch keine Mails empfängt. Sollte dies externe Mails betreffen, können Sie die Lösung hier nachlesen. Geht es jedoch um interne Mails, sind Sie hier richtig.

Führt man eine Sendungsverfolgung auf dem Exchange aus, wird uns folgender Fehler angezeigt:

RecipientStatus: {[{LRT=};{LED=550 5.7.1 RESOLVER.RST.NotAuthorized; not authorized [Stage: CreateMessage]};{FQDN=};{IP=}]}

Hier wird also ein Benutzer erkannt, von dem die Mail ausgeht. Dieser hat keine Berechtigung, Mails im Zielordner zu „erstellen“. Nichts anderes passiert im Prinzip, wenn man eine Mail an einen Public Folder schickt. Beheben kann man das folgendermaßen:

Add-PublicFolderClientPermission -identity "\Ordner\Unterordner” –User Default -AccessRights CreateItems

Man kann es natürlich an dieser Stelle auch auf einzelne Benutzer runterbrechen. „Default“ beschreibt alle nicht extra genannten Benutzer.

Einleitung:

Im Rahmen einer Fehlersuche entfernten wir ein CSV aus dem Cluster, da dieses von einer der Clusternodes nicht mehr „in Besitz“ genommen werden konnte. Später an diesem Tag wollten wir das CSV wieder dem Cluster hinzufügen, da das Problem an anderer Stelle festgemacht werden konnte. Da wir das CSV nicht nur als solches, sondern auch als verfügbaren Speicher enfernt hatten, wollten wir über den Knopf „+ Add Disk“ die präsentierte Disk wieder hinzufügen. Statt uns die Disk anzubieten, überraschte uns Microsoft mit der Fehlermeldung:

Für Clusterdatenträger wurden keine geeigneten Datenträger gefunden.

In der Datenträgerverwaltung wurde die Disk in einem der Cluster als RAW-Datenträger erkannt, auf den anderen Nodes war gar keine Formatierung zu erkennen. Egal welche Node wir zu diesem Zeitpunkt als Master verwendeten, die Fehlermeldung blieb die selbe.

Wir versuchten sogar, die Disk auf einer Node online zu schalten und ihr einen Laufwerksbuchstaben zu verpassen. Auch dieser Zugriff war nicht möglich, hier bekamen wir nur folgenden Fehler:

Die angeforderte Ressource wird bereits verwendet.

Ursache:

Scheinbar hat sich bei dem übergeordneten Problem, welches wir hatten und weswegen auch dieser Schritt erst notwendig wurde, der Cluster bei der Ownership-Vergabe verhaspelt. Fakt ist, dass dieses scheinbar nicht lesbare Laufwerk zum Zeitpunkt des Enfernens aus den CSVs noch einer Node zugeordnet war und diese Zuordnung auch nicht verloren hat. Diese Zuordnung verhindert ein erneutes Auffinden der Disk über den Knopf „+ Add Disk“.

Behebung:

Ein einfacher PowerShell-Befehl hat uns im Endeffekt geholfen. Über die Datenträgerverwaltung konnten wir die Disknummer ausmachen (Disk 6). Mit diesem Wissen konnte folgender Befehl über die PowerShell-Konsole abgesetzt werden:

Clear-ClusterDiskReservation -Disk 6

Das ganze musste kurz bestätigt werden und direkt im Anschluss war die Disk wieder zu finden.

Geben Sie in Ihren Webbrowser https://(IP-Adresse Ihres Geräts) ein, um auf das Webinterface zu kommen, z.B. https://192.128.10.64.

Die IP-Adresse des Telefons findet man am Telefon unter: (Menü Taste) > 6 Information > 2 Systeminfo

Die Eingabe der SIP-URI am Telefon kann man umgehen, indem man 3 Mal hintereinander, ungefähr 3 Sekunden lang die X –Taste drückt. So kommen Sie auf die Startseite und können nach Ihrer IP-Adresse schauen.

Sobald Sie Ihre IP-Adresse im Webbrowser eingegeben haben, klicken Sie Links im Menü auf UC Zugangsdaten.

Zuerst wird nach der SIP-URI gefragt. Dort tragen Sie die E-Mail Adresse ein, die Sie auch in Lync nutzen, z.B. MMustermann@Beispiel.de.

Danach müssen Sie Domain\User eingeben, z.B. Beispiel\MMustermann.

Zum Schluss geben Sie Ihr Lync Passwort ein. Danach ist ihr Telefon mit Lync verbunden und funktionsfähig.

Ihre Lync- Kontakte werden auf das Telefon synchronisiert.

Anschließend gehen Sie auf Identität 1. Ihnen erscheint oben die Meldung: „Es gibt Änderungen, die noch nicht permanent gespeichert wurden“ welche sie mit Speichern bestätigen.

Danach klicken Sie unten auf Übernehmen und dann auf Re-Registrieren.

Bei uns gab es die Anforderung, die Größe eines Öffentlichen Ordners zu bestimmen. Kein Problem eigentlich, gibt es doch folgenden Befehl:

[PS] C:\Windows\system32>Get-PublicFolder "\[Ordnername]" | Get-PublicFolderStatistics | Select TotalItemSize

Doch weit gefehlt, dieser Befehl gibt nur die Größe der direkt darin befindlichen Dateien zurück. Größen von Unterordner bzw. der darin befindlichen Dateien werden nicht berücksichtigt. Abhilfe schafft hier folgender Befehl:

[PS] C:\Windows\system32>Get-PublicFolder "\[Ordnername]" -Recurse | Get-PublicFolderStatistics | Measure TotalItemSize -sum

Oder etwas freundlicher fürs Auge:

[PS] C:\Windows\system32>Get-PublicFolder "\[Ordnername]" -Recurse | Get-PublicFolderStatistics | Measure TotalItemSize -sum | Select @{N='Anzahl der Items'; E={$_.Count}}, @{N='Speicher in Byte'; E={$_.Sum}} | fl

Bitte beachten Sie, dass es eine Weile dauern kann, bis der Befehl durchgeführt wurde.

Im Internet gibt es viele Anleitungen, die beschreiben, wie man einen WSUS-Server mit einem SSL-Zertifikat versieht. Jedoch ist dort immer nur die Rede von selbst erstellten Zertifikaten und damit einhergehend auch grundsätzlich von einem internen Namen. Geht man nun strikt nach der Anleitung, verwendet aber stattdessen ein öffentliches Zertifikat, so scheitert es spätestens beim Verbinden der Serverkonsole (MMC) auf die neue Zugriffs-URL.

In diesem Tutorial gehe ich davon aus, dass das Zertifikat bereits im Zertifikatsspeicher des WSUS liegt. Im Anschluss sind folgende Schritte zu tätigen:

Setzen des Zertifikats

  • Wir öffnen den IIS Manager
  • Erweitern die Baumstruktur links auf folgenden Pfad:
    [Servername] -> Sites -> WSUS Administration
  • Während WSUS Administration markiert ist, kann rechts unter Actions auf Bindings… geklickt werden.
  • Nun kann auf das https-Binding doppelgeklickt werden.
  • Unten in der Rubrik SSL certificate kann im DropDown-Menü nun das Zertifikat ausgewählt werden, das zuvor eingespielt wurde.
  • Anschließend können die offenen Fenster mit OK und Close geschlossen werden.

Erzwingen von SSL-Verbindungen

  • Erneut im IIS Manager angekommen erweitern die Baumstruktur links auf folgenden Pfad:
    [Servername] -> Sites -> WSUS Administration (
  • Darunter sind folgende Applications für uns nun von Belang:
    ApiRemoting30
    ClientWebService
    DSSAuthWebService
    ServerSyncWebService
    SimpleAuthWebService
  • Nacheinander markieren wir nun jede dieser Applikationen, um anschließend auf SSL Settings zu gehen und folgende Einstellungen vorzunehmen:
    [X] Require SSL
    Client certificates: (o) Ignore
  • Damit wäre dieser Schritt erledigt. Sollte zum Zeitpunkt der Tätigkeiten der WSUS Manager geöffnet gewesen sein, wird dieser nun meckern.

WSUS für SSL konfigurieren

  • Nun öffnen wir ein Konsolenfenster als Administrator
  • Dort angekommen navigieren wir zu folgendem Pfad: „C:\Program Files\Update Services\Tools“
  • Nun führen wir folgenden Befehl aus: WSUSUtil.exe ConfigureSSL [Zukünftige URL]
    Bsp: WSUSUtil.exe ConfigureSSL wsus.domain.tld

Der Serverkonsole den lokalen Zugriff ermöglichen

Nun kommen wir zum Knackpunkt. Die Serverkonsole kann sich standardmäßig nur auf den internen Namen verbinden. Nach den vorhergehenden Änderungen wäre nun aber eigentlich die URL zum erneuten Verbinden der WSUS Managementkonsole einzugeben. Die Lösung hierfür konnte im TechNet von Microsoft (unten verlinkt) gefunden werden:

  • Wir öffnen den Registry-Editor und navigieren zu folgendem Pfad: „HKLM\System\CurrentControlSet\Controls\Lsa\MSV1_0“
  • Nun rechtsklicken wir auf den Key MSV1_0 und klicken dann auf New -> Multi-String Value. Als Name geben wir BackConnectionHostNames ein.
  • Nach der Anlegung öffnen wir nochmals den Wert, um als Value data die zukünftige URL einzutragen.
  • Anschließend kann das Fenster per Klick auf OK bestätigt und der Registry Editor wieder geschlossen werden.

Die Serverkonsole erneut verbinden

Abschließend können wir auf der Serverkonsole die aktuelle Verbindung auf den „alten“ FQDN schließen und anschließend auf die neue URL verbinden.

Quellen:
Problemlösung mit der externen URL: https://social.technet.microsoft.com/Forums/windowsserver/en-US/84033ed9-f7aa-4676-a68a-01607eb1f160/wsus-not-working-properly-with-ssl?forum=winserverwsus

Benötigt wird:

  • Das Zertifikat im PFX-Format
  • Das Passwort für das Zertifikat
  • Die CA-Chain in Textform
  • OpenSSL (http://www.heise.de/download/product/win32-openssl-47316/download)

Als erstes „zerlegen“ wir das PFX-File in die benötigten Einzelteile. Am einfachsten geht das, in dem man das Zertifikat mit den OpenSSL-Binaries in einen Ordner legt, z.B. C:\OpenSSL-Win64\bin. Danach öffnen wir eine Konsole und navigieren mit Ihr zu diesem Pfad. Alternativ kann man auch in dem Zielordner per Shift-Rechtsklick die „Eingabeaufforderung hier öffnen“.

In dem Ordner angekommen, setzen wir als erstes folgenden Befehl ab ([Cert] durch Dateinamen ersetzen):

openssl pkcs12 -in [Cert].pfx -clcerts -nokeys -out [Cert].cer

Damit haben wir das reine Zertifikat. Mit dem nächsten Befehl…:

openssl pkcs12 -in [Cert].pfx -nocerts -nodes  -out [Cert].key

haben wir dann auch noch das passende Keyfile. Beide Dateien öffnen wir nun am besten mit WordPad oder Notepad++ (Editor kann die Zeilenumbrüche nicht interpretieren). Im Header beider Files stehen ein paar Infos zum Zertifikat (Bag Attributes), die uns aber nicht interessieren. Wir kopieren nun aus dem .cer-File folgenden Inhalt…:

-----BEGIN CERTIFICATE-----
[Zeichenfolge]
-----END CERTIFICATE-----

und fügen diesen in ISPConfig unter Webseiten -> Webseite -> [Seitenname] -> Reiter „SSL“ -> Textbox „SSL-Zertifikat“ ein.

Anschließend nehmen wir das .key-File, öffnen es ebenfalls mit einem Texteditor und kopieren folgenden Block:

-----BEGIN PRIVATE KEY-----
[Zeichenfolge]
-----END PRIVATE KEY-----

in die Textbox „SSL-Key“ rein.

Nun muss nur noch die CA-Chain ebenfalls inklusive der Begin- und End-Markierungen in des Textfeld „SSL-Bundle“ eingefügt werden. Hier kann es auch passieren, dass der Text aus mehreren Begins und Ends besteht:

-----BEGIN CERTIFICATE-----
[Zeichenfolge]
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
[Zeichenfolge]
-----END CERTIFICATE-----

Abschließend muss noch das Feld „SSL-Aktion“ auf Zertifikat speichern gesetzt werden. Die restlichen Felder müssen nicht ausgefüllt werden, diese wären nur für die Beantragung eines Zertifikats wichtig. Nach dem Klick auf Speichern sollte das Zertifikat nach kurzer Zeit sichtbar werden.

Man darf allerdings nicht den Haken „SSL“ bei den allgemeinen Domain-Einstellungen vergessen. Ohne diesen reagiert die Seite nicht auf SSL-Anfragen.