Wenn Sie versuchen, Ihr Systemlaufwerk mit Bitlocker zu verschlüsseln, und Sie erhalten direkt nach dem Aufruf die Fehlermeldung "Das System kann die angegebene Datei nicht finden" fehl, prüfen Sie, ob im Ordner %Windir%\System32\Recovery eine Datei ReAgent.xml Datei liegt und benennen Sie sie z.B. in ReAgent.old um. Danach sollte die Verschlüsselung klaglos starten.
Weisheiten - der Netz-Weise Blog
Heute stand ich vor der Aufgabe, eine MAC-Adresse einzulesen. Das Einlesen der MAC-Adresse gestaltet sich dabei einfach. Unter Windows am einfachsten geht das über Get-Netadapter:
PS > Get-NetAdapter
Name InterfaceDescription ifIndex Status MacAddress LinkSpeed
---- -------------------- ------- ------ ---------- ---------
Internal Microsoft Hyper-V Network Adapter 10 Up 00-15-5D-64-98-00 10 Gbps
Unter Windows PE steht das Cmdlet leider nicht zur Verfügung, da es zu den CDXML-Datei basierten Cmdlets gehört. Glücklicherweise kann man sich behelfen, indem man einfach auf Get-WMIObject zurückgreift:
PS > Get-WmiObject -Class win32_networkadapter
Virtuelle Festplatten (Vhdx-Dateien) in Windows sind sehr praktisch. Man kann Sie nämlich nicht nur für virtuelle Maschinen verwenden, sondern auch als universelles Containerformat, um Daten zu transportieren oder sogar, um Windows aus einer VHD-Datei zu booten (s. https://www.netz-weise-it.training/weisheiten/tipps/item/377-boot-von-vhd-auf-einem-leeren-datentraeger-einrichten.html). Das Erstellen einer VHD-Datei ist allerdings etwas mühselig, weil man erst die Datei erstellen, dann einrichten und anschließend eine Partition erstellen muss. Da man das aber auch mit Powershell erledigen kann, und ich dieses Feature sehr oft verwende, habe ich eine kleine Funktion dafür geschrieben.
#requires -Modules Hyper-V, Storage -RunAsAdministrator
function Get-Freedrive
{
<#
.SYNOPSIS
Get-Freedrives lists the first free driveletter in the alphabet.
.DESCRIPTION
Get-Freedrive can be used to test for the first available free driveletter. The Parameter $inverse searches backwards through the alphabet.
.EXAMPLE
get-freedrive -inverse -startLetter Z
Starts the search with letter z searching backwards. Returns a character.
.NOTES
Version: 1.0
Author: Holger Voges
Date: 2018-08-17
www.netz-weise-it.training/weisheiten/
#>
[cmdletbinding()]
param(
# The letter to start the search from - default is C or Z, if -inverse is chosen
[char]$startLetter = 'C',
# Inverse forces a backwards search through the alphabet
[switch]$inverse
Letzte Woche habe ich durch Zufall festgestellt, dass der Rechner einer Kollegin, der schon vor Jahren per automatischem Update auf Windows 10 aktualisiert worden ist, immer noch nicht aktiviert war, obwohl das vorher installierte Windows 8.1 es war und Windows 10 sich außerdem den Key automatisch aus der Firmware ziehen soll, wenn er da hinterlegt ist. Glücklicherweise ist die Aktivierung von Windows 10 immer noch mit den Keys voriger Versionen möglich. Der Key selbst ist im BIOS nicht einsehbar, läßt sich aber über WMI einfach auslesen. Er ist in der Klasse SoftwareLicensingService in der Eigenschaft OA3xOriginalProductKey hinterlegt. Mit Powershell nutzen Sie für das Auslesen einfach Get-WMIObject oder Get-CIMClass:
(Get-WmiObject -Class SoftwareLicensingService).OA3xOriginalProductKey
oder ab Powershell 4 auch
(Get-CimInstance -ClassName SoftwareLicensingService ).OA3xOriginalProductKey
Mit dem Tool slmgr.vbs können Sie die LIzenz auch gleich installieren und aktivieren:
Das Sperren von Benutzerkonten ist ein bewährtes Mittel, um Brute-Force-Attacken gegen Kennwörter im Unternehmen zu verhindern. Allerdings empfehlen sowohl Microsoft als auch das BSI inzwischen, Kontosperrungen nicht zu verwenden, da eine Malware oder ein Hacker durch das Sperren sämtlicher Benutzerkonten ein Netzwerk komplett lahm lagen kann - man spricht auch von einem denial of Service.
Die alternative Empfehlung lautet, lange Kennwörter in Form von Passphrases und am Besten Multifaktor-Authentifizierung einzusetzen. Grundsätzlich ist das ein vernünftiger Ansatz, aber leider scheitert er in vielen Netzwerken immer noch an der Praxis. Zum einen muß man den Benutzern erklären, dass Sie jetzt lange komplexe Kennwort-Sätze verwenden sollen, zum Anderen muß man mit dieser Variante auch für eine ordentliche Anmeldungs-Überwachung sorgen, da ein großangelegter Angriff auf die Benutzerkennwörter sonst gar nicht auffällt. Mit aktivierter Kennwortsperrung merkt man normalerweise sehr schnell, dass etwas nicht stimmt.
Mein pragmatischer alternativer Ansatz, um die Kontosperrungen weiterhin nutzen zu können, arbeitet mit automatisierten Prozessen und Powershell. Denn mit Powershell ist es sehr schnell und einfach möglich, Benutzerkonten zu entsperren. Verwenden Sie dafür die Cmdlets Search-ADAccount und Unlock-ADAccount. Search-ADAccount kann mit dem Parameter -Lockedout alle gesperrten Benutzerkonten in einem Rutsch auflisten, Unlock-ADAccount kann sie direkt entsperren. Mit Hilfe des Cmdlets Out-Gridview können Sie sich auch gleich noch eine grafische Benutzeroberfläche einrichten, um nur ausgewählte Benutzer zu entsperren.
Search-ADAccount -Lockedout | Out-Gridview -Passthru | Unlock-ADAccount
Damit wird das Entsperren nach einem Denial of Service zu einem Kinderspiel. Allerdings muß noch ein zweites Problem gelöst werden. Wenn Sie nämlich das Standard-Administratorkonto auf der Domäne deaktivieren, haben Sie eventuell gar keine Möglichkeit mehr, die Domäne zu entsperren, weil Ihr Administrator auch gesperrt ist. Deswegen legen Sie sich nun ein niedrig privilegiertes Konto an, dass neben dem Entsperren von Benutzern in der Domäne nichts kann, aber nicht gesperrt wird.
Windows 10 kennt zwei verschiedene Anwendungstypen - die klassischen Anwendungen und Apps. Apps gibt es seit Windows 8, und sie sind vom App-Konzept von Apple und Google übernommen. Apps unterscheiden sich in einigen grundlegenden Dingen von Anwendungen:
- Apps lassen sich von jedem Benutzer bereitstellen - es werden keine administrativen Berechtigungen benötigt
- Eine App wird normalerweise für einen Benutzer bereitgestellt, nicht für den Computer
- Das App-Berechtigungskonzept bietet mehr Sicherheit, da jeder App der Zugriff auf jedes Gerät explizit gesperrt werden kann.
- Apps haben keinen Installer, sondern werden aus dem Microsoft Store oder per Sideloading installiert
Zumindest der letzte Punkt könnte sich ändern, denn Microsoft hat ein neues Format für die automatische Installation entwickelt, nämlich msix. Trotzdem möchte nicht jeder Administrator Apps in seiner Umgebung bereitstellen. Um die bereits mit Windows mitgelieferten Apps loszuwerden, muß man allerdings einige konzeptuelle Dinge verstehen:
Grundsätzlich werden Apps pro Benutzer installiert. Man spricht von Appx-Paketen. Um Appx-Pakete zu verwalten, können Sie Powershell-Cmdlets verwenden:
- Get-AppxPackage listet installierte Apps auf
- Remove-Appxpackage entfernt installierte Apps
- Get-AppxLog zeigt das Installations- und Wartungslog für Apps an.
Dies ist ein Auschnitt aus der Neuauflage meines Gruppenrichtlinien-Buchs "Gruppenrichtlinien in Windows Server 2019 und Windows 10, das vermutlich im Oktober 2018 erscheinen wird
Übermittlungsoptimierung oder Delivery Optimiziation (DO) ist ein neues Feature, das Microsoft mit Windows 10 eingeführt hat, und das die Menge an Daten, die von Windows Update und dem Windows Store heruntergeladen werden, massiv reduziert. Das Verfahren basiert auf Peer To Peer Technologie, Clients teilen bereits heruntergeladene Daten also mit anderen Clients (Peers) im gleichen Netzwerk (oder auch über das Internet). Dafür werden Dateien in Blöcke aufgeteilt, gehashed (es wird eine eindeutige ID erzeugt), und dann Blockweise verteilt anstatt als Monolithische Datei. Damit ein Client tatsächlich nur Original-Daten erhält, sind die Dateien digital signiert, der Client kann also nach Empfang der kompletten Datei prüfen, ob er ein unverändertes Update erhalten hat.
Wenn ein Client ein Update von einem Update-Server herunterladen möchte und die Übermittlungsoptimierung aktiviert ist, erhält er vom Update-Service über die URL *.do.dsp.mp.microsoft.com eine Liste von Rechnern, die bereits Blöcke der Update-Datei bezogen haben. Auf Windows 10 Pro und Enterprise ist die Einstellung dabei standardmäßig so konfiguriert, dass ein PC Daten nur von Peers aus seinem eigenen lokalen Netzwerk empfängt (s. Bild 1.2). Der Update-Service ermittelt über die IP des sich verbindenden Rechners (normalerweise die öffentliche IP des Routers oder Proxys, über den der Client sich verbindet), mit welchen Peers er Daten austauschen darf. Zusätzlich greift der Dienst auf die AD-Standortdaten zurück oder, wenn diese nicht verfügbar sind, auf die Domäne. Man kann diese automatische Gruppierung aber auch überschreiben und manuell festlegen, welche Clients miteinander Daten austauschen dürfen, indem man eine Group-ID festlegt. Die Group-ID wird dann als einziges Kriterium verwendet, um zu ermitteln, welche Clients Daten austauschen dürfen. Das ist wichtig, wenn man bereits mit IPv6 arbeitet (alle Clients haben eine öffentliche IP-Adresse) oder der Zugriff nach außen über Proxy-Arrays oder Load-Balancing stattfindet, so dass ein Standort nicht über eine eindeutige ID verfügt. Die Group-ID ist eine GUID (Globally Unique Identifier), die man z.B. mit dem Powershell-Cmdlet New-GUID zufällig generieren kann.
Die Übermittlungsoptimierung arbeitet höchst effizient und teilt Daten deutlich schneller als die Alternative Branchcache. Sind die Daten erst einmal im lokalen Netzwerk, dauert es nur Sekunden, bis Clients lokale Peers als Quelle verwenden können. Die Daten werden dann mit voller lokaler Netzwerkgeschwindigkeit geteilt. Der Übermittlungsoptimierungsdienst verwendet hierfür Port 7680 im lokalen Netzwerk, für den Datentausch mit Internet-Peers Port 3544 (Teredo-Protokoll, eine IPv6-Übergangstechnologie).
Übermittlungsoptimierung ist vor allem für große Dateien effektiv und kostet außerdem Client-Ressourcen, weshalb Branch-Cache standardmäßig erst aktiviert wird, wenn der Client mindestens über 4 GB RAM und 32 GB freien Speicherplatz auf dem Cache-Laufwerk verfügt. Alle diesen Daten können über Gruppenrichtlinien angepasst werden, die Sie in der Computerkonfiguration unter ADMINISTRATIVE VORLAGEN - WINDOWS-KOMPONENTEN - WINDOWS UPDATE - ÜBERMITTLUNGSOPTIMIERUNG finden.
Mehr zum Thema Gruppenrichtlinien finden Sie auch in meinem Buch Gruppenrichtlinien in Windows 10 und Windows Server 2019, das voraussichtlich im Oktober in der Neuauflage erscheint.
Jedes Windows 10 Feature-Release bringt neue Funktionen und neue Gruppenrichtlinien mit. Welche Richtlinien in welcher Version neu dazugekommen sind, können Sie im Group Policy Settings Reference-File nachschauen, das Microsoft zum Download anbietet.
Manche Richtlinien sind leider nicht wirklich kompatibel zueinander. Z.B. hat Microsoft mit dem Feature Release 1607 die Nutzungszeit eingeführt und auf 12 Stunden festgelegt. Ab 1703 sind es aber maximal 18 Stunden. Sie können die Nutzungszeit auch per Gruppenrichtlinie festlegen, aber die Maximalwerte von 1703 kann 1607 nicht verarbeiten. Die Lösung sind zwei Gruppenrlichtlinienobjekte (GPOs), die per WMI-Filter "Ihre" Version aussortieren.
Aber auf welchen Wert kann man filtern? Die offizielle Nummer des Feature-Release kann man per WMI-Filter nicht erfragen. Stattdessen kann man aber die Build-Nummer verwenden, die sich mit jedem Feature-Release ändert. Eine Liste der aktuellen Build-Nummern finden Sie bei Wikipedia unter https://en.wikipedia.org/wiki/Windows_10_version_history. In der ersten Tabelle finden Sie in der Spalte Builds die jeweilige Build-Nummer.
Per WMI ermitteln Sie die Build-Nummer über die Klasse Win32_OperatingSystem und die Eigenschaft BuildNumber.
Seit Windows 8.1 gibt es das administrative Startmenü (im englischen Power User Menü genannt), das man über Windows-Taste+X oder über das Kontextmenü des Startbuttons erreichen kann. Das Startmenü ist ausgesprochen praktisch, wenn es um das Aufrufen von administrativen Werkzeugen geht. Außerdem hat man hier die Möglichkeit, den Rechner sowohl herunterzufahren als auch eine Abmeldung durchzuführen, ohne unterschiedliche Menüs verwenden zu müssen.
Leider gibt es keine Bordmittel, um das Menü anzupassen. Prinzipiell kann man auf manuellem Weg mit ein paar Tricks die Einstellungen vornehmen, um eigene Tools im Menü zu verlinken. Es gibt aber auch einen angenehmen Weg, nämlich den Win+X-Editor. Er kann kostenlos bei WinAero heruntergeladen werden. Achten Sie darauf, dass Sie den richtigen Link erwischen, er ist ein wenig versteckt. Eine kleine Anleitung inklusiver der Handgriffe, die man ausführen muß, um die Anpassungen manuell durchzuführen, finden Sie bei Digital Citizen: All the ways to customize the WinX menu in Windows 10 (and Windows 8.1).
Heute habe ich das neue Kapitel über Group Policy Preferences für die Neuauflage meines Gruppenrichtlnienbuchs beendet. Dabei habe ich ein sehr schönes Beispiel für den Einsatz der Registry-Einstellungen gefunden.
Die Sprachleiste ist in den meisten Fällen ein sehr überflüssiges Feature, denn sie erlaubt das Umschalten zwischen verschiedenen Tastaturlayouts. Welchen Sinn das haben soll, ist mir bis heute verborgen geblieben, denn ich wechsel eigentlich nie mal zwischendurch für ein frischeres Erlebnis auf eine chinesische Tastatur. Trotz allem dürfen wir dieses tolle Feature seit vielen Windows-Generationen genießen. Wenn die Funktion einfach nur da wäre, wäre das ja nicht weiter schlimm, aber dummerweise implementiert Sie auch noch die unseelige Tastenkombination Shift+Alt, die das Tastaturlayout automatisch umschaltet. Wie viele Helpdesk-Tickets aufgrund eines versehentlich aktivierten englischen Tastaturlayouts aufgemacht wurden, möchte ich nicht wissen. Glücklicherweise hat Microsoft in der aktellen Version 1803 von Windows 10 zumindest eine Option vorgesehen, das hinzufügen weiterer Layouts zu überspringen.
Die Sprachleiste wird über die Registry gesteuert, und zwar über den Schlüssel HKEY_CURRENT_USER\Keyboard Layout\Preload. Hier ist für jede Sprache ein Werte hinterlegt, wobei der Wertname der Priorität entspricht, und der Wert selber den Sprachcode bestimmt. Bei ITProToday finden Sie eine Liste der Sprachcodes. Bei mir finden sich zwei Einträge in der Liste:
Name | Typ | Daten |
1 | REG_SZ | 00000407 |
2 | REG_SZ | 00000409 |
Der Wert 407 entspricht dem deutschen Layout, 409 ist das US-Englische Tastaturlayout.
Um die Sprachleiste zu entfernen, müssen Sie lediglich den kompletten Schlüssel Preload entfernen. Dies kann mit einem Powershell-Skript einfach erledigt werden, oder mit Gruppenrichtlinen-Einstellungen.