Server 2012R2 RDP Sitzung Spiegeln (Remoteüberwachung)

Problem

server2012r2-spiegelen-ueberwachenIm Windows Server 2012 hat Microsoft die Funktion „Remoteüberwachung“ zum spiegeln von Benutzern vollständig entfernt. Ob absichtlich oder Unfall – ärgerlich ist das allemal. Glücklicherweise wurde das „Spiegeln“ oder zu neudeutsch „Shadowing“ mit dem Server 2012R2 wieder eingeführt. Leider auch hier nicht über den schnellen Klick im Taskmanager, sondern an der Kommandozeile (und auf Terminalservern im Servermanager).

Lösung

Man benötigt zuerst die Sitzungs-ID der Session, die es zu spiegeln gilt:

Alle Sitzungen anzeigen

C:\>query USER  /SERVER:<SERVERNAME>

Bestimmte Sitzung anzeigen:

C:\>query USER <USERNAME> /SERVER:<SERVERNAME>

Mit der entsprechenden ID lässt sich die Session dann mit dem eingebauten RDP-Client spiegeln:

C:\>mstsc /shadow:<SessionID> /control

Bessere Lösung

Dieses Script automatisiert den Vorgang und lässt sogar das direkt Remote-Spiegeln zu. Es wird eine Liste der aktiven Sitzungen präsentiert und man tippt nur noch die Nummer ein.

Achtung, die Remote-Spiegelung (zum Beispiel von einem Admin-Client) funktioniert nur wenn der Server lizenziert (RDSCAL) ist. Lokal klappt das hingegen immer.

@echo off
title Remoteueberwachung
REM --- Wie heisst der Server?
set termserver=localhost

REM --- Session IDs auslesen
query session /server:%termserver% & echo.
set /p sessionid=Die Session-ID eingeben oder mit q Beenden ...
if %sessionid%==q @exit
start mstsc /v:%termserver% /shadow:%sessionid% /control

SQL Server Management Studio „.NET Framework Error“ (Unable to read the list of previously registered servers on this system)

Problem

Das SQL Management Studio (alle Versionen ab 2008) startet nicht nur noch mit einer Fehlermeldung:

Microsoft.SqlServer.Management.RegisteredServers.RegisteredServerException: Unable to read the list of previously registered servers on this system.
Re-register your servers in the 'Registered Servers' window.
Microsoft.SqlServer.Management.Sdk.Sfc.SfcSerializationException:
Deserialization operation on /RegisteredServersStore/ServerGroup/CentralManagementServerGroup has failed.

Wenn das SQL Server Management Studio dann aber gestartet ist, kann man sich zwar verbinden, sieht aber keine Inhalte. Stattdessen erscheint der Fehler

Value cannot be null.

Oder auf Deutschen Systemen:

Wert darf nicht null sein.

Lösung

Das Temp-Verzeichnis der %TEMP% Variable ist nicht gesetzt, der Paf existiert nicht oder ist nicht beschreibbar. Auf dem System auf dem ich mich grade herumtreibe konnte ich den Fehler daher schnell beheben:

mkdir %TEMP%

Office 2013 auf Office365 offline herunterladen/installieren oder im Netzwerk verteilen

OfficeSetupDas Setup für die Office 2013 Programme aus Office 365 (die Clickstream-Installation) ist sehr einfach erledigt und bei einer schnellen Internetverbindung in relativ kurzer Zeit passiert.

Wie aber installiert man mehrere Computer in einem Netzwerk? Oder einen PC mit langsamer Internetanbindung? Microsoft hat diesen Fall immerhin vorgesehen, wenn auch nicht unbedingt einfach zugänglich gemacht. Es wäre ja auch VIEL zu einfach, wenn ein Admin das Officepaket herunterladen und direkt installieren könnte *kopfschüttel*. wie auch immer, so funktioniert die Office 365 Netzwerkverteilung (neudeutsch ‚On Premise deployment‘).

Lösung

  1. Das „Office Deployment Tool for Click-to-Run“ herunterladen und den Inhalt der Datei mit 7Zip auf den deployment UNC-Netzwerkshare (\\server\foobar) auspacken. Eine Installation ist NICHT notwendig.
  2. Die configuration.xml wie folgt bearbeiten:
    <Configuration>
     <Add SourcePath="\\server\foobar\ordner\" OfficeClientEdition="32" >
     <Product ID="O365ProPlusRetail">
     <Language ID="de-de" />
     <ExcludeApp ID="InfoPath" />
     </Product>
     </Add>
     <Updates Enabled="TRUE" UpdatePath="\\dcw1\install$\office365\" />
     <Display Level="None" AcceptEULA="TRUE" />
    </Configuration>

    Es ist hier auch möglich, das Setup noch weiter anzupassen:

    1. Office-Apps von der Installation ausnehmen
    2. Office-Apps hinzufügen (Visio, Project …)
    3. Setup-Optionen (EULA, Logging …)
  3. Das Setup zum Herunterladen der Office-Click-to-Run Setupdateien auffordern (das Paket ist etwa 1.4gb groß):
    setup.exe /download <pfad>\configuration.xml
  4. Aus diesen Ordner kann man dann das Officepaket nun lokal im Netzwerk installieren:
    setup.exe /configure <pfad>\configuration.xml

Wird das Setup mit „/download“ aufgerufen, werden die Dateien auf der Netzwerkfreigabe (oder dem lokalen Laufwerk) gespeichert. Wenn das Setup dann zum Installieren mit „/configure configuration.xml“ gestartet wird, holt der Installer die notwendigen Dateien ebenfalls vom selben Ort ab. Mehr Details zu dem Tool gibt es bei Microsoft unter http://technet.microsoft.com/en-us/library/jj219422.aspx.

Windows 2008/2008R2 DNS Server braucht viel zu viel Speicher

Problem

Der Windows 2008/2008R2 DNS-Server („dns.exe“) konsumiert ohne Ende Speicher. Der Server startet mit 120Mb, wächst auf über 400Mb und erreicht auch gerne über 1Gb RAM. Das ist für mittlere Netzwerke mit ein paar hundert PCs ein bisschen viel.

Lösung

Standardmäßig öffnet der Windows DNS-Server einen Pool von 5000 UDP sockets (2500 IPv4 und 2500 IPv6). Unter Windows Server 2008 R2 werden für jeden Port ~2.5Kb RAM allokiert, plus zusätzliche ~7.2Kb pro Empfanspuffer fällig – und es wird pro CPU ein Buffer erstellt. Auf Maschinen mit mehreren CPUs läpper sicht das schnell ordentlich zusammen:

(2.5kb x 5000 sockets) + (32 cpus/cores x 5000 sockets  x 7.2kb ) = (12500kb) + (1152000kb) = 1164500kb = ~ 1.1GB

Sinnvollerweise verringert man also die Anzahl der Sockets:

dnscmd /Config /SocketPoolSize 100

100 ist ein guter Wert (~250PCs). Die aktuelle Anzahl prüft man mit:

dnscmd /Info /SocketPoolSize

Windows 7/8 „Senden an“ Menü anpassen

menue-senden-an-bearbeitenUm unter Windows die Auswahlmöglichkeiten aus dem „Senden an“ Menü der rechten Maustaste zu bearbeiten, sind nur wenige Handgriffe notwendig:

  1. Ordner %appdata%\Microsoft\Windows\SendTo öffnen
  2. Die gewünschte Verknüpfung erstellen

Mit Start > Ausführen > „shell:sendto“ kommt man da noch schneller hin (thx heiko)