Windows 10 – Standarddrucker verwalten

Ihr wundert euch warum euer Standard Drucker immer wechselt? Ein neues „Feature“ in Windows 10 setzt den aktuellen Standarddrucker immer auf den zuletzt benutzten Drucker.
Hierbei wird auch berücksichtigt, an welchem Standort sich das Gerät im Moment befindet. Sprich zuhause wird der Heimdrucker automatisch als Standard ausgewählt und im Büro ein anderer.
Das kann ganz praktisch sein, stört aber vielleicht auch. Daher beschreibe ich hier kurz wie ihr die Funktion „Windows verwaltet Standarddrucker“ entweder per Hand oder via Gruppenrichtlinie / Registry deaktivieren könnt.

Von Hand

  1. Öffnet die Einstellungen von Windows 10 (z.B. Windows Taste + i)
  2. Navigiere zu Geräte und anschließend Drucker & Scanner
  3. Entferne den Haken bei „Windows verwaltet Standarddrucker“

Per Registry

  1. Navigiere zu folgendem Pfad:
    HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows
  2. Ändere den Wert „LegacyDefaultPrinterMode“ (DWORD) auf 1 ab.

 

Per Gruppenrichtlinie

Per GPO findet ihr die Option „Turn off Windows default printer management“ unter:

User Configuration\Administrative Templates\Control Panel\Printers\

GPO – Fix: Encountered an error while parsing

Mit dem Update der aktuellen Windows 10 ADMX Tempaltes für das Creators Update (1703) bin ich bei uns im Group Policy Editor auf folgende Fehlermeldungen bei älteren GPO’s gestoßen:

Namespace 'Microsoft.Policies.Sensors.WindowsLocationProvider' is already defined as the target namespace for another file in the store.
File
\\domain...\microsoft-windows-geolocation-wlpadm.admx, line 5, column 110


Die gleiche Fehlermeldung kam ebenfalls nochmal für WinStoreUI:

Encountered an error while parsing.
Namespace 'Microsoft.Policies.WindowsStore' is already defined as the target namespace for another file in the store.
File \\domain...\WinStoreUI.admx, line 4, column 80


Problem:
Eine kurze Recherche ergab, dass Microsoft die Templates „WinStoreUI.admx“ in „WinStoreUI.admx“ bzw. „LocationProviderAdm.admx“ in „microsoft-windows-geolocation-wlpadm.admx“ umbenannt hat.
In der Regel werden die ADMX Dateien automatisch bei einem Update überschrieben. In diesem Fall kommt jedoch das neuere File dazu.
Aus diesem Grund gibt 2 admx Dateien mit den gleichen Namespaces, weswegen die Fehlermeldung erscheint.

Lösung:
Die alten ADMX Dateien (WinStoreUI.admx und LocationProviderAdm.admx) können samt der Language Files gelöscht werden. Die neuen ADMX Templates sind mit allen Einstellungen Abwärtskompatibel.

WSUS 2012R2 für Verteilung von Windows 10 Upgrades vorbereiten

Mit der neusten Version des Windows Update Services bietet Microsoft jetzt endlich auch die Möglichkeit, Upgrades für Windows 10 bereitzustellen.
Dafür wird die WSUS Version „Build 6.3.9600.18324“ vorausgesetzt. Das aktuellste Patchlevel könnt ihr bei wsus.de einsehen (ganz runter scrollen).
In der Regel fehlen bei einem 2012 R2 Server lediglich die beiden Patches: KB3095113 sowie KB3159706 die mittlerweile aber auch per Automatische Updates verteilt werden.
In meinem Fall lies sich danach der WSUS nicht mehr starten, was sich über den Eventlog Eintrag: „Update Services failed its initialization and stopped.“ ausdrückte.

Aus der Fehlermeldung lies sich jetzt noch nicht das Problem erkennen. Das etwas detailliertere Logfile findet sich unter:

C:\Program Files\Update Services\LogFiles\SoftwareDistribution.txt

Dort fand sich dann das eigentliche Problem:

2017-04-24 09:35:55.755 UTC Info WsusService.6 SusService.SusServiceStartUpThreadProc WSUS Server Version: 6.3.9600.18324
2017-04-24 09:36:19.724 UTC Error WsusService.6 SusService.SusServiceStartUpThreadProc WUS Service failed during startup processing, sleeping before retry - Error Details: System.Data.SqlClient.SqlException (0x80131904): Cannot open database "SUSDB" requested by the login. The login failed.
Login failed for user 'NT AUTHORITY\NETWORK SERVICE'.
at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling)
at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry)
at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
at System.Data.SqlClient.SqlConnection.Open()
at Microsoft.UpdateServices.DatabaseAccess.DBConnection.Connect(String connectionString)
at Microsoft.UpdateServices.Internal.DataAccess.ExecuteSPUpdateServerHealthStatus(String componentName, Boolean isRunning)
at Microsoft.UpdateServices.EventSystem.SusService.SusServiceStartUpThreadProc()
ClientConnectionId:5ef465d2-f07e-466e-a09d-ab40a02d50e8

Mit dieser Fehlermeldung kommt man auf den KB3159706 von Microsoft. Dort wird erklärt, dass noch die folgenden manuelle Schritte notwendig sind um die Installation der beiden vorherigen KB’s abzuschließen:

  1. Als Administrator in der Konsole ausführen
    C:\Program Files\Update Services\Tools\wsusutil.exe" postinstall /servicingführt zu folgendem Output:
    Log file is located at C:\Users\Username\AppData\Local\Temp\2\tmp46DF.tmp
    Post install is starting
    Post install has successfully completed
  2. Im Server Manager über „Add Roles and Features“ das „HTTP Activation“ Feature für .NET Framework 4.5 aktivieren
  3. Den WSUS Dienst neustarten
    net stop WsusService && net start WsusService

Für diejenigen, wo kein SSL für ihren WSUS aktiviert haben, war es dass an dieser Stelle. Wer SSL benutzt bekommt eventuell in dem Moment noch die folgende Fehlermeldung zu Gesicht: „The Client Web Service is not working.“

In diesem Fall muss noch die web.config Datei des Webservices angepasst werden.
 

  1. Wieder als Administrator per cmd ausführen:
    cd C:\Program Files\Update Services\WebServices\ClientWebService\
    takeown /f web.config /a
    icacls "C:\Program Files\Update Services\WebServices\ClientWebService\Web.config" /grant administrators:f
    
  2. Weitere Endpoint Einträge in der Datei „C:\Program Files\Update Services\WebServices\ClientWebService\Web.Config“ hinzufügen.
    Hier am einfachsten nach „endpoint address“ suchen. Der Block fängt mit folgenden Zeilen an:

    <services>
    <service
    name="Microsoft.UpdateServices.Internal.Client"
    behaviorConfiguration="ClientWebServiceBehaviour">

    Anschließend kommen die Einträge der Endpoints, zu denen ihr die folgenden dazu kopiert:

    <!--
    These 4 endpoint bindings are required for supporting both http and https
    -->
    <endpoint address=""
    binding="basicHttpBinding"
    bindingConfiguration="SSL"
    contract="Microsoft.UpdateServices.Internal.IClientWebService" />
    <endpoint address="secured"
    binding="basicHttpBinding"
    bindingConfiguration="SSL"
    contract="Microsoft.UpdateServices.Internal.IClientWebService" /> 

    Der restliche Teil des Eintrages sieht zur Vollständigkeit wie folgt aus:

    <endpoint address=""
    binding="basicHttpBinding"
    bindingConfiguration="ClientWebServiceBinding"
    contract="Microsoft.UpdateServices.Internal.IClientWebService" />
    <endpoint address="secured"
    binding="basicHttpBinding"
    bindingConfiguration="ClientWebServiceBinding"
    contract="Microsoft.UpdateServices.Internal.IClientWebService" />
    </service>
    </services> 
  3. Jetzt noch ganz unten in der Datei den letzten Eintrag wie folgt anpassen/hinzufügen:
    </bindings> <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" /> </system.serviceModel> 
  4. Jetzt zur Sicherheit nochmal das System neustarten, Fertig.

Windows 10 im Unternehmen – Viele Features & Einstellungen

Windows 10 LogoMit Windows 10 kommen viele neue Features, vor allem was das Userfeeling angeht. Allerdings stellt sich bei einigen davon die Frage ob sie im Business Umfeld auch brauchbar sind und keine unnötigen Sicherheitsrisiken darstellen. Viele neue Sachen wie eine tiefgehende Integration von Xbox Live, Cortana und dem allgemeinem Drang des Daten sammeln sollte man zuvor überdenken und ggf. deaktivieren.
Ich liste hier ein paar Punkte auf die man beim Einsetzen von Windows 10 im Unternehmen berücksichtigen sollte – sowie die passenden Einstellungen dazu.
1. Startmenü anpassen
2. Windows Store deaktivieren
3. Automatische Updates konfigurieren
4. Synchronisation konfigurieren / deaktivieren
5. Active Help / Suchfunktion konfigurieren
6. Senden von Feedback/Telemetry Daten verhindern
7. Wifi-Sense deaktivieren
8. Update Optimierte Verteilung deaktivieren
9. Cortana deaktivieren
10. OneDrive aus Explorer entfernen
11. Windows Explorer anstatt Schnellzugriff anzeigen
12. Windows Apps entfernen
Mit Windows 10 kommen eine ganze Hand voll neuer vorinstallierter Apps hinzu, die Möglicherweise unerwünscht sind. (z.B. Spiele)
Diese kann man per Powershell entfernen:

Get-AppxProvisionedPackage -Online | Out-GridView -PassThru | Remove-AppxProvisionedPackage -Online

Apps wie der WindowsStore lassen sich zwar so nicht entfernen, das geht dann wiederum aber per GPO.
13. Error Reporting
Die Fehlerberichtsersattung kann man ebenfalls konfigurieren, sodass keine zusätzlichen Dateien gesammelt werden, sowie dass man Fehler an Microsoft berichten kann.
Die Fehlerberichtserstattung kann auch komplett deaktiviert werden, aber das macht die Fehlersuche eventuell nur schwerer.
per GPO:

Computer Configuration > Administrative Templates > Windows Components > Windows Error Reporting
Configure Error Reporting (do not collection additional files, do not collect additional machine data).
Disable Windows Error Reporting.
Disable logging.
Do not send additional data.

Error Reporting - GPO
14. Unnötige Dienste deaktivieren
Es gibt einige Dienste die im Unternehmen bestimmt keinen Sinn haben wie zum Beispiel die folgenden 3, welche problemlos deaktiviert werden können:

Xbox Live Auth Manager
Xbox Live Game Save
XboxNetApiSvc

Eine Auflistung aller Windows Dienste sowie die Einstufung, ob diese benötigt werden oder nicht gibt es am besten sortiert bei BlackViper.
Habe ich etwas vergessen, oder ihr habt Anmerkungen ? Lasst es mich wissen!

Windows 10 – Startmenü anpassen

Ein cooles neues Feature von Windows 10 ist die Anpassbarkeit des Startmenü, sowie die globale Verteilung davon.
Hier passt man das Startmenü nach den eigenen wünschen unter einem beliebigem Benutzer an, kann Gruppen erstellen, Live Tiles etc.
Zum Exportieren des Layout dann via Powershell folgenden Befehl absetzen:

export-startlayout -path c:\CustomizeLayout.xml –verbose

Alternative als Binary File: export-startlayout -asbin –path c:\configs\start.bin
Um die Einstellungen nun in das Default User Profil des lokalen PC’s zu kopieren als Administrator das Profil wieder importieren:

import-startlayout -layoutpath c:\CustomizeLayout.xml -mountpath %systemdrive%\

Die XML Datei kann auch per Hand bearbeitet werden, wenn man sich einmal in das Schema eingelesen hat.
windows-startmenü
per GPO verteilen:
Man beachte, wenn man das Layout per GPO verteilt, können Benutzer das Startmenü NICHT mehr selbst verändern. Hier also gut überlegen ob man das Layout nicht besser per Default Profil verteilt.

User configuration > Administrative Templates > Start Menu and Taskbar > Start Layout

Der Pfad muss ein Netzwerkshare sein.
gpo-startmenu

Windows 10 – App Store deaktivieren

Wer den Windows Store komplett deaktivieren will kann dies per GPO erledigen:

Computer Configuration > Administrative Templates > Windows Components > Store

Windows Store - GPO

oder per Registry:

Hier muss ein neuer Wert (ggf. noch der Ordner zuvor) angelegt werden:

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsStore\
Dwort Wert: RemoveWindowsStore
Option: 1 = deaktiviert
0 = aktiviert

Windows 10 – Automatische Updates konfigurieren

Das Updateverhalten wurde mit Windows 10 ja komplett überarbeitet, so gibt es auch einige neue Einstellungsmöglichkeiten.
Man beachte: Wenn Updates installiert werden, startet Windows nach einem gewissem Zeitraum automatisch neu.
Wenn man dies verhindern möchte kann man die Updates auf „Benachrichtigen zum Download“ oder „Benachrichtigen zum Installieren“ setzen.
Außerdem kann man einen Tag planen, an dem Updates installiert werden sollen.
Update verschieben: Updates können bis zur nächsten Updateperiode verschoben werden. (Nur für Pro & Enterprise Benutzer)
Windows Upate - GPO

Windows 10 – Synchronisation steuern/deaktivieren

Seit Windows 8 können Benutzer auch ihre Einstellungen, Passwörter, Startmenü, Apps und vieles mehr über ihr Microsoft-Konto synchronisieren.
Was synchronisiert werden darf kann man einschränken, sodass zum Beispiel keine Passwörter synchronisiert werden oder die Sync Funktion komplett deaktiviert ist.
per GPO:

Computer Configuration > Administrative Templates > Windows Components > Sync Your Settings

Sync your Settings - GPO

Windows 10 – Active Help deaktivieren

Hier kann auch Cortana komplett deaktivert werden, oder falls die Dame doch gewünscht ist einige Sachen eingeschränkt werden wie zum Beispiel ob die Suchfunktion  und Cortana den Standort benutzen dürfen um Suchergebnisse auf lokaler Ebene anzubieten.

Computer Configuration > Administrative Templates > Windows Components > Search

Allow Cortana.
-> Cortana komplett deaktivieren
Allow indexing of encrypted files.
-> Zum Beispiel verschlüsselte externe Bitlocker Laufwerke nicht indexieren.
Allow search and Cortana to use location.
-> Standort wird nicht weitergegeben.
Do not allow web search.
-> Deaktiviert die Bing Suche komplett.
Don’t search the web or display web results in Search.
-> Deaktiviert die Bing Suche im „Windows durchsuchen“ Feld.
Cortana & Suche - GPO

Windows 10 – Feedback Daten verhindern

Feedback DatenAls Telemetry Daten bezeichnet man die Nutzungsdaten die gesammelt werden. Mit Windows 10 ist das Thema Datenschutz ja wieder bei einigen groß im rennen und auch die Fragestellung was alles so an Microsoft nach Hause gefunkt wird.
Die Option der Telemetry Daten
Hier gibt es mehrere Varianten:
– 0 Komplett Deaktivieren
– 1 Basic (Anonymisiert)
Für Enterprise & Server Versionen von Windows 10 gibt es die möglichkeit die Funktion komplett auszuschalten. Benutzer der Home & Professional Versionen können die Funktion nicht komplett deaktivieren. Es kann lediglich Basic (anonymisiert) ausgewählt werden.
per Registry:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection
Dwort Wert: DataCollection
Option: 0 = ausgeschaltet (nur Enterprise Versionen)
1 = Basic (für alle anderen)

per GPO:
Computer Configuration > Administrative Templates > Windows Components > Data Collection.
Diese Policy einschalten und den Wert auf 0 Ändern.
Telemetrydaten vermindern