Netz-Weise Logo

Weisheiten - der Netz-Weise Blog

Hier finden Sie Tipps und Tricks für vor, während und nach der Schulung.

VHD-Dateien beim Windows-Start automatisch mounten

"So mounten Sie eine VHD oder VHDX-Datei beim Systemstart von Windows automatisch Windows kann seit Vista virtuelle Festplatten wie normale Datenträger bereit stellen. Um das zu bewerkstelligen, können Sie in die Computerverwaltung -> Datenspeicher -> Datenträgerverwaltung gehen, das Kontextmenü der Datenträgerverwaltung öffnen und auswählen "virtuelle Festplatte anfügen". Alternativ können Sie auch das Powershell-Commandlet Mount-VHD verwenden:

mount-vhd -path C:\vhd\daten.vhdx 

Leider ist der Datenträger nur so lange eingehängt, bis der Computer neu gestartet wird. Wenn Sie die virtuelle Festplatte aber gerne bei jedem Systemstart verfügbar hätten, müssen Sie tricksen. Variante 1: Nutzen Sie das Tool vhd attach. VHD Attach stellt eine grafische Oberfläche für die Verwaltung von VHD-Dateien zur Verfügung, installiert aber auch einen Dienst, der beim Systemstart eine vhd-Datei einhängen kann. Dafür starten Sie VHD Attach, mounten die Festplatte, die sie benötigen, und klicken dann im Menü auf ""Auto-Mounted"". Variante 2: Wenn Sie mehrere Maschinen mit einem Auto-Mount einrichten oder ohne Installation auskommen wollen, hilft Ihnen der Task-Scheduler weiter (Aufgabenplanung im Deutschen). Hier können Sie eine Aufgabe anlegen, die beim Systemstart ausgeführt wird und ein Powershell-Script mit mount-vhd startet. Und als kleine Fingerübung machen wird das gleich mit Powershell und einem geplanten Task. (Mehr zu geschedulten Tasks und Jobs in meinem nächsten Tipp).

$user = new-object -typename System.Management.Automation.PSCredential -argumentlist $Username,$Password 
$action = $jobtrigger = New-JobTrigger -AtStartup
New-ScheduledTaskAction -Execute 'powershell.exe' -Argument "-noprofile -command mount-vhd -Path 'C:\vhd\daten.vhdx'"
Register-ScheduledTask -TaskName Mount_VHD -Trigger $jobtrigger -Action $action -User "system" -RunLevel Highest

Der Jobtrigger -AtStartup legt fest, dass der Task beim Systemstart ausgeführt werden soll. Mit Register-ScheduledTask wird die Aufgabe im Taskplaner registriert. Die Action ist der Powershell-Aufruf, der das Befehl "Mount-VHD" startet. Erwähnenswert ist noch, dass der Task als Benutzer "System" gestartet wird und damit automatisch administrative Rechte hat. Um den Task als System zu starten, benötigt man allerdings administrative Berechtigungen.

  6760 Aufrufe

Boot von VHD auf einem leeren Datenträger einrichten

Sie haben einen leere Festplatte und möchten direkt von VHD booten? Abgesehen von kleinen Stolperfallen eigentlich ganz einfach...

Wenn Sie eine neue Festplatte in Ihrem Rechner haben, auf der noch kein Betriebssytem vorhanden ist, können Sie den Rechner trotzdem ohne eine Installation in Betrieb nehmen - vorausgesetzt, Sie haben eine VHD-Datei zur Verfügung. VHD-Dateien sind Dateien, die intern eine Festplatte simulieren. Windows kann direkt von VHD booten - Windows 8.1 sogar von VHDX, einer deutlich performanteren Version von VHD. Sie könnten Beispielsweise die Beta-Versionen von Windows 10 oder Windows Server NG (Next Generation) als vhd bei Microsoft herunter laden. Oder Sie erzeugen sich mit Convert-Windowsimage eine eigene vhd in 5 Minuten.  Um eine Festplatte für den Boot von VHD vorzubereiten, legen Sie zuerst eine Startpartition mit 300 MB Größe an. Als Partitionsformat wählen Sie FAT32. Setzen Sie die Partition anschließend aktiv. Von Windows PE per Kommandozeile aus können Sie das mit Diskpart erledigen:

 diskpart
 create partition primary size=300
 format quick fs=ntfs
 assign letter=s
 active

Anschliessend richten Sie den Rest der Festplatte als eine große Partition ein:

 create partition primary 
 format quick fs=ntfs
 assign letter=c 
 exit

Nun können Sie die vhd-Datei auf den neuen Datenträger kopieren. Im letzten Schritt müssen Sie die Festplatte mit einem Boot-Bereich (BCD-Store) austatten. Hierfür müssen Sie die vhd-Datei mounten: 

 diskpart
 select vdisk file=C:\windows.vhdx
 attach vdisk

Nun müssen der VHD-Datei einen Laufwerksbuchstaben zuweisen, damit Sie Zugriff auf die Partition bekommen - im Beispiel der Laufwerksbuchstabe v:

Weiterlesen
  5289 Aufrufe

Mit Powershell Reg_Binary Werte in die Registry schreiben

Wie Sie mit der Powershell Reg-Binary Werte in die Registry schreiben Powershell bietet ein mächtiges Kommando zum setzen von Registry-Werten: SET-ITEMPROPERTY bzw. NEW-ITEMPROPERTY. Mit Set können Sie einen bestehenden Wert überschreiben, mit New erzeugen Sie einen neuen Wert. Die Syntax ist grundstätzlich sehr simpel:

New-Itemproperty -Path "Registrierungsschlüssel" -name "Name des Werts"  -Value "Zu setzender Wert" -PropertyType "Typ des Eintrags"

Als Propertytype kommen dabei in Frage:

  • BINARY
  • DWORD
  • STIRNG
  • EXPANDSTRING
  • MULTISTRING
  • QWORD

Die meisten der Werte sind einfach zu setzen, allerdings erweist sich Binary  mitunter als widerspenstig. Wird als PropertyType "BINARY" angegeben, so muß der angegebene Wert sich auch im Binärdatentyp befinden. Eine Umwandlung kann dabei über die Konvertierungsfunktion [BINARY] erfolgen. Ein wenig trickreich wird es, wenn man Daten z.B. aus einem Regfile ausliest, weil beim Registrierungsepxort die Daten nicht als Binärdaten ausgegeben werden, sondern als HEX-Zahlen. Diese müssen vorher erst wieder ins Dezimalformat umgewandelt werden, bevor man sie ins Binärformat konvertieren kann. Eine mögliche Lösung sieht so aus:

New-ItemProperty -Path 'HKCU:\Software\' -name "EinWert"  -Value (&{'c7,02,00,00'.split(",") | %{"0x"+$_}}) -PropertyType BINARY}

Kurze Erklärung: Die Hex-Werte werden in einem Script-Block aufgesplittet und per String-Addition für Powershell in einen Hex-Wert gewandelt. Diesen kann Powershell dann implizit konvertieren. Weitere Informationen zur Konvertierung finden Sie in unserem vorigen Tipp.

  7551 Aufrufe

Onedrive for Business mit Gruppenrichtlinien steuern

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.

Onedrive for Business ist in Office 365 enthalten und wird ein immer spannenderes Werkzeug für die Verwaltung von Benutzerdaten. Mit der aktuellen Version ist es z.B. möglich, die Ordner Bilder, Dokumente und Desktop automatisch in den Onedrive-Ordner zu verschieben. Dadurch können die Benutzerdaten nicht nur geräteübergreifend synchronisiert werden - was ich mit mehreren Rechnern - PC in der Firma, PC zu Hause und Latpop mache und sehr schätze - sondern durch die Versionierung der Sharepoint-Bibliotheken hat man auch gleich ein integriertes Backup, mit dem es möglich ist, alte Daten wiederherzustellen. Darauf weist inzwischen auch der Windows Defender hin, denn durch die Versionierung können Verschlüsselungstrojaner zwar ein Dokument verschlüsseln, aber der Schaden kann einfach durch rückspielen einer alten Version wieder behoben werden.

Die Onedrive-Features können auch durch Gruppenrichtlinien automatisch aktiviert werden, allerdings sind die Onedrive-ADMX Dateien nicht Bestandteil des Office 2016 ADMX-Vorlagen, die man bei Microsoft herunterladen kann. Stattdessen werden die Vorlagen beim Installieren des neuen Onedrive Sync Clients (Onedrive.exe) lokal im Benutzerprofil abgelegt. Achten Sie also darauf, dass Sie, wenn Sie einen neuen Onedrive-Client bereitstellen, immer auch die Vorlagen aktualisieren. Die Dateien liegen unter %LocalAppData%\Onedrive\<Version>\adm. Um es den Administratoren nicht zu leicht zu machen, sind die Dateien allerdings nicht so abgelegt, dass man sie direkt kopieren kann. Stattdessen liegt die englische .adml-Datei direkt im Ordner .adm, die fremdsprachigen .adml-Dateien liegen in teilweise nicht korrekt benannten Ordnern. Bevor Sie die Dateien also in Ihren Policy-Store kopieren, erstellen Sie zuerst einen Ordner en-us im adm-Ordner und kopieren die Onedrive.adml-Datei hinein, und außerdem benennen Sie den Ordner \de um in \de-de. Danach können Sie die Onedrive.admx inklusive der zwei Unterordner \de-de und \en-us in den PolicyStore-Ordner kopieren.


Mehr zu den Einstellungen finden Sie im folgenden Artikel Onedrive for Business Ordner umleiten, manuell und mit Gruppenrichtlinien.

  4975 Aufrufe

Windows Datei- und Druckserver migrieren

Windows Server bringt eine Reihe von Migrationstools mit, die die Migration von Benutzern, Druckern und Dateien recht einfach machen Sie müssen lokale Benutzer, Gruppen, Drucker oder Dateien zwischen zwei Windows-Server migrieren? Kein Problem mit den Windows Server Migrationstools.

Szenario 1: Benutzer und Gruppen migrieren

Um Benutzer und Gruppen zu migrieren, verwenden Sie die Windows Migration Tools. Auf Windows Server 2008 R2 und 2012 (R2) installieren Sie diese über den Server-Manager oder über Powershell auf dem Quell- und auf dem Zielserver:

Install-WindowsFeature -Name Migration

Danach laden Sie in Powershell das Migrations Snap-In:

Add-PSSnapin Microsoft.Windows.ServerManager.Migration

Exportieren Sie nun zuerst auf dem Quellserver die Benutzer und Gruppen mit Hilfe des Cmdlets Export-SmigServerSettings. Über den Parameter User können Sie angeben, welche Benutzer exportiert werden sollen. Es stehen Ihnen die Optionen "All","Enabled" und "Disabled" zur Verfügung. Wenn Sie auch die lokalen Gruppen exportieren wollen, verwenden Sie den Parameter Group. Achten Sie aber darauf, dass Sie die Gruppen in einem Befehl mit den Usern exportieren, da Sie sonst ein weiteres Export-Verzeichnis benötigen. Das Export-Verzeichnis sollte sinnigerweise von beiden Servern aus erreichbar sein. Da der Export mit Kennwort erfolgt, müssen Sie die Daten mit einem Kennwort verschlüsseln.

Weiterlesen
  12953 Aufrufe

Bitlocker mit FDE (Verschlüsselung in Hardware) nutzen

*Update*: Microsoft unterstützt die Verschlüsselung in Hardware seit Windows 10 1903 nicht mehr, da es zu häufig Probleme mit der Implementierung der Hersteller gab.

"So verschlüsseln Sie Ihre Festplatte performant, aber zentral verwaltet Seit Windows 8 unterstützt Bitlocker die Möglichkeit, direkt die Hardwareverschlüsselung der Festplatte zu nutzen. Diese Technik wird von Microsoft als edrive bezeichnet. Dadurch, dass Bitlocker die Daten nicht mehr verschlüsseln muß, bevor er sie auf der Festplatte speichert, bekommt man die Verschlüsselung quasi komplett ohne Performance-Einbußen. Im Gegensatz zur reinen FDE-Verschlüsselung (Full Drive Encryption), also der Verschlüsselung direkt durch die Festplatte ohne Bitlocker, kann man die Verschlüsselung aber zentral administrieren. Leider ist das Feature mal wieder bescheiden dokumentiert. Daher habe hier nach einer langen Leidens- bzw. Experimentierphase mal alle Erkenntnisse zusammengetragen. Um Bitlocker mit FDE nutzen zu können, benötigt man zum einen eine Festplatte (SSD), die FDE unterstützt und OPAL 2.0 kompatibel ist. Zwei Modelle, von denen ich das definitv weiß, sind die Crucial M500 und Nachfolgemodelle, sowie die Samsung Evo 840. Zum anderen muß der Computer bereits über UEFI-Bios (ab UEFI 2.3.1) verfügen und UEFI muß aktiviert sein. Der Secure Boot Mode darf laut Crucial nicht aktiviert sein! Um die Hardware-Verschlüsselung nutzen zu können, muß Windows im UEFI-Modus installiert werden. Das passiert automatisch, wenn das BIOS auf UEFI-Boot gesetzt ist. Eine große Stolperfalle: Die Festplatte muß leer und blank sein, wenn Windows die Installation startet. Dafür reicht es NICHT aus, die Partitionen auf der Festplatte im Installationsmenü zu löschen - das habe ich auf dem harten Weg gelernt. Löschen Sie stattdessen die Festplatte mit Diskpart, falls die Platte bereits initialisiert war. Dazu können Sie im Installationsmenü von Windows 8 die Tastenkombination shift-F10 drücken. Dann öffnet sich ein Kommandozeilenfenster. Geben Sie folgende Befehlskombination ein:

List Disk 
-> Finden Sie aus der List Ihre SSD
Select Disk
-> Geben Sie die Nummer Ihrer Festplatte an
Clean
-> löscht die Festplatte ratzekahl leer

Achtung! Clean heißt, dass die Festplatte komplett komplett gelöscht wird. Die Partitionen genauso wie die Partitionstabellen werden entfernt. Kontrollieren Sie also 3 mal, ob sie den richtigen Datenträger ausgewählt haben. Nun können Sie Windows 8 installieren. Nach der Installation können Sie Bitlocker installieren. Wenn Sie kein TPM (Trusted Platform Module) in Ihrem PC haben, müssen Sie Windows explizit erlauben, die Verschlüsselung mit USB-Datenträger oder Kennwort zu sichern. Starten Sie hierfür GPEdit.msc und öffnen Sie ""Computerkonfiguration -> Administrative Vorlagen -> Windows Komponenten -> Bitlocker Laufwerksverschlüsselung -> Betriebssystemlaufwerke -> Zusätzliche Authentifizierung beim Start anfordern"" und setzen sie den Radiobutton bei aktiviert. Anschliessend klicken Sie auf OK. Um sicher zu gehen, dass Sie wirklich die Hardwareverschlüsselung nutzen, verwenden Sie zur Aktivierung am Besten die Powershell. Starten Sie dafür ein Windows Powershell-Fenster mit Administrativen Rechten und starten Sie folgenden Befehl:

$password = ConvertTo-SecureString -String "Passwort" -AsPlainText -Force
Enable-BitLocker -MountPoint "C:" -HardwareEncryption -PasswordProtector -Password $Password

Wobei Mountpoint dem Laufwerk entspricht, dass Sie verschlüsseln wollen. Gibt es ein Problem mit Ihrer Konfiguration, meldet der Befehl, dass eine Hardwareverschlüsselung nicht möglich ist. Um Bitlocker per GUI zu aktivieren, starten Sie die Systemsteuerung, wählen ""Bitlocker Laufwerkverschlüsselung"" und dann aktivieren für das zu verschlüsselnde Laufwerk. Geben Sie ein Kennwort ein und wählen Sie, wo Sie den Wiederherstellungsschlüssel speichern wollen (Achtung! Wenn Sie den Wiederherstellungsschlüssel verlieren und Ihr Kennwort vergessen, kann bestenfalls der NSA noch Ihre Daten wiederherstellen, wobei selbst das eher unwahrscheinlich ist!). Danach wird eine Systemüberprüfung durchgeführt. Wenn Ihnen Bitlocker da"

  2941 Aufrufe

Tastarlayout in Windows Server Core umstellen

Im letzten Artikel Default Shell in Server Core ändern habe ich beschrieben, wie Sie Powershell zur Default-Shell in Servercore machen können. Sie können aber auch das Tastaturlayout anpassen, wenn Sie bei der Installation die falsche Sprachversion ausgewählt haben. Hierzu passen Sie den Schlüssel HKEY_CURRENT_USER\Keyboard Layout\Preload an. Unter dem Schlüssel Preload sind die konfigurierten Tastaturlayouts gespeichert, die Servercore unterstützt, und zwar in numerischer Reihenfolge, wobei das Layout mit der Nummer 1 Priorität hat uns als erstes geladen wird.

Um das Tastaturlayout für den angmeldeten Benutzer anzupassen, setzen Sie einfach den Sprachcode Ihrer Tastatur für den Wert mit dem Namen 1. Für deutsche Tastaturen ist das 00000407. Das können Sie einfach im Regedit machen, oder mit folgender Codezeile:

Set-ItemProperty -Path HKCU:\Keyboard Layout\Preload -Name 1 -Value 00000407

Die vollständige Auflistung aller Codes finden Sie unter Default Input Profiles in Windows auf der Microsoft Website.

 

  4885 Aufrufe

Eine Zahlenreihe in zwei alternierende (wechselnde) Gruppen aufteilen mit Powershell

Stellen Sie sich vor, Sie haben eine aufsteigende Reihe natürlicher (ganzer) Zahlen. Sie wollen die Zahlenreihe in 2 Blöcke aufteilen, die nach einer bestimmten Menge von Zahlen jeweils wechselt. Dazu ein Beispiel:

Gruppe 1Gruppe 2
1-500501-1000
1001-1500 1501-2000
2001-25002501-3000

 

 

 

 

Weiterlesen
Markiert in:
  3916 Aufrufe

Für Powershell Cmdlet-Parameter Standardwerte definieren

Das Feature ist nicht neu, aber trotzdem noch mal eine Erinnerung wert. Wenn Sie in einem Skript für einen Parameter immer wieder das gleiche Argument verwenden, können Sie es auch als Standard-Wert hinterlegen. Konkret könnte das z.B. der Domänencontroller sein, der die Einzelbetriebsmasterrolle PDC-Emulator inne hat. Powershell stellt Ihnen dafür die Systemvariable $PSDefaultParameterValues zur Verfügung. Sie wird mit einem Hash-Array befüllt, das für jedes Cmdlet als Schlüsselwert den Cmdlet-Namen und, mit einem ":" getrennt, den Parameternamen enthält, sowie als Wert das Standard-Argument.

$Pdc = Get-ADDomainController -Service PrimaryDC -Discover
$ServerDefaults = @{ "Get-ADUser:Server"=$pdc.HostName
   "Get-ADComputer:Server"=$Pdc.HostName
   "Get-ADObject:Server"=$Pdc.Hostname
 }
$PSDefaultParameterValues = $ServerDefaults
$PSDefaultParameterValues
Get-ADUser -Filter *

Markiert in:
  2395 Aufrufe

Den Windows Lizenzkey aus der Firmware aka Bios auslesen und aktivieren per Powershell

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:

Weiterlesen
  6086 Aufrufe