Windows Batch: Uhrzeit und Datum verwenden (UPDATE: mit führender „0“ bei einstelligen Stunden)

Ich benötige im Alltag ab und an das aktuelle Datum und die Uhrzeit „zerlegt“ in einzelne Variablen, um zum Beispiel Dateien nach Zeit oder Datum abzuspeichern oder Logeinträge korrekt formatiert auszugeben. Das ist seit Windows XP zum Glück recht einfach, aber weil ich faul bin lege ich hier meine zu diesem Zweck erzeugten Substring-Scriptschnipsel ab – dann muss ich die paar Zeilen nicht immer neu tippen (und korrigieren).

Es gibt da auch ein Problem mit den führenden Nullen: Windows setzt die Zeitvariable %time% nicht mit führenden Nullen, sondern in „Menschlich lesbar“.

Beispiel:

C:\>echo %time%        Ergibt ab 10Uhr: 11:02:18,04

C:\>echo %time%        Ergibt ab 24Uhr: _9:02:18,04 Hier ist ein Leerzeichen eingefügt, denn das Padding des Strings ist immer gleich breit.

Lösung

set YYYY=%date:~-4%
set MM=%date:~-7,2%
set DD=%date:~-10,2%
set hr=%time:~0,2%
if "%hr:~0,1%" == " " SET hr=0%hr:~1,1%
set min=%time:~3,2%
set sek=%time:~6,2%

Mit diesen Variablen würde eine Ausgabezeile zum Beispiel so aussehen:

echo Es ist heute der %DD%.%MM%.%YYYY% und wir haben die wundervolle Uhrzeit %hr%:%min%:%sek%

Mit führenden Nullen sieht das Ergebnis dann, korrekterweise, so aus:

Es ist heute der 24.12.2016 und wir haben die wundervolle Uhrzeit 01:04:37

Nicht das diese Zeile viel Sinn hätte, in der Praxis benötige ich beispielsweise eher so etwas:

zip –m -9 idslogs-%YYY%%MM%%DD%%.zip %1*.log

… das mir Dateien mit einem sinnvollen Namen (z.B. idslogs-20121203.zip) erstellt.

Wichtig zu wissen: Diese Zeilen legen die wichtigen Werte direkt in eigenen Variablen ab; die Zuordnung ist im Moment der Zuordnung statisch, was bedeutet das ein Wert sobald zugewiesen immer so bleibt und sich nicht mit fortschreitender Zeit ändert. Wenn die Werte aktualisiert werden sollen (beispielsweise zu beginn/ende eines Script) muss dieser Block wieder aufgerufen werden, etwa mit einer call: Anweisung dorthin.

Windows PKI Fehler „Der angeforderte Antragstellername ist ungültig oder zu lang (0x80094001)“

Problem

Beim ausstellen eines neuen Zertifikates mit einem frisch generierten CSR reagiert die Windows Zertifizierungsstelle (CA) in dem Webinterface mit diesem Fehler:

Der angeforderte Antragstellername ist ungültig oder zu lang (0x80094001)

Das gleiche tut Sie auch auf einem englischen Windows, mit einem englischen Fehler:

Error parsing request the subject name is invalid or too long 0x80094001 (CSR)

Lösung

Wenn die CA unter Windows Server 2008 oder früher erstellt wurde, hat diese warscheinlich das gute alte 64-Zeichen Limit für Domains geerbt. Man kann diese (heute) sinnlose limitierung ganz schnell abschalten:

c:\> certutil -setreg ca\EnforceX500NameLengths 0

Die Einstellung ist ebenfalls notwendig, wenn man Wildcard-Zertifikate mit einer Windows CA unterschreiben möchte.

Windows Defender (MsMpEng.exe) deaktivieren (Windows 10 und Windows Server)

Problem

Wärend eines Setups oder einer größeren Aktion auf einer Windows-Maschine kostet der Windows-Defender „MsMpEng.exe“ (der Diensthost des Windows-Defenders) unnötig viel Leistung und Zeit.Trotz der allgemein recht guten Performance des Virenwächters von Microsoft, lässt sich vor allem beim Zugriff auf große Dateimengen einiges an Zeit sparen wenn der Wächter temporär ausgeschaltet wird.

Lösung

In der Regel reicht es schon, an der PowerShell die Realtime-Engine für die Echtzeitüberwachung aus zu schalten. Dann sinkt die Last des Prozesses auf praktisch Null und man kann sofort eine deutlich bessere Performance beim Dateizugriff beobachten. Die Einstellungen werden sofort aktiv und brauchen keinen Neustart.

Windows Defender Echtzeitüberwachung deaktivieren

PS C:\> Set-MpPreference -DisableRealtimeMonitoring $true

Windows Defender Echtzeitüberwachung aktivieren

PS C:\> Set-MpPreference -DisableRealtimeMonitoring $false

Windows Defender Echtzeitüberwachung-Einstellung prüfen

PS C:\> Get-MpPreference | FL *RealtimeMonitoring

Windows-Defender vollständig deinstallieren

PS C:\> Remove-WindowsFeature Windows-Defender, Windows-Defender-GUI

VMware vSphere CLI „Connect to failed. Server SHA-1 thumbprint FF…

Problem

Die neuen VMware vSphere CLI Tools ab Version 6.0+ (Download v6.5) möchten nicht mehr „einfach so“ eine ESXcli Verbindung aufbauen. Wenn man einen Befehl startet, kommt sofort die Fehlermeldung „Server SHA-1 thumbprint <not trusted>“.

C:\>esxcli -s <SERVER> -u root -p <PASSWORT>

Connect to <SERVER> failed. Server SHA-1 thumbprint: F5:CE:AF:AF:D2:13:48:3D:C2:FB
:EE:C9:22:BE:B8:39:20:09:9D:B5 (not trusted).
C:\>

Das passiert, weil vSphere heute ganz spontan noch total viel sicherer ist als früher. Blöderweise laufen alle möglichen Scripts damit nun ins leere. Selbstverständlich gibt ESXCLI trotz des Fehlers den Errorlevel 0 („Erfolg“) zurück *seufz*

Lösung

Die schnellste und einfachste Möglichkeit: Den Fingerabdruck des Server an der Kommandozeile mitgeben.

C:\>esxcli -s <SERVER> -u root -p <PASSWORT> --thumbprint <THUMBPRINT>

Eine ‚permanente‘ Lösung ist dann (zum Beispiel), gar nicht direkt mit dem ESX-Host zu sprechen sondern über den vCenter Server über den Parameter ‚vihost‘ mit dem Host. Das erlaubt es, das vCenter Server Zertifikat vorher in den lokalen Zertifikatsspeicher zu importieren und somit der Maschine zu vertrauen.

  1. Die lokalen vSphere root-Zertifikate herunterladen und in den Stammzertifizierungsstellen-Speicher importierenvmware-root-zertifikat-herunterladen
  2. C:\>esxcli -s <VCENTER-SERVER> -u root -p <PASSWORT> --vihost <ESX-HOST>

 

Microsoft Edge Startseite mit Gruppenrichlinien (GPO) festlegen

Seit der Windows 10 Version 1511+ lässt sich ENDLICH die Startseite des neuen (und recht flottem) Browsers Edge über eine Gruppenrichtlinie vorgeben. Das hat eine Weile gedauert, viele Admins waren verblüfft über die offizielle „geht nicht“ Ansage kurz vorher.

Die nagelneuen passenden ADMX-Templates für Windows 10 (mit Edge) gibt es hier zum herunterladen: https://www.microsoft.com/de-DE/download/details.aspx?id=53430

Unsere Empfehlung ist an dieser Stelle, die neuen ADMX-Files auch direkt im AD Central-Store abzulegen.

Danach findet man die neue Einstellung in der Gruppenrichtlinienverwaltung unter:

Benutzerkonfiguration > Richtlinien > Administrative Vorlagen > Windows-Komponenten > Microsoft Edge

 

In RDP-Sitzungen (Remotedesktopverbindung) funktioniert auf einmal „kopieren“ und „einfügen“ nicht mehr

In einigen RDP-Sessions funktionieren plötzlich „kopieren und einfügen“ nicht mehr. Gestern ging’s noch, heute nicht mehr. In einer Sitzung kopieren, in eine andere einfügen geht nimmer. Auch Sitzung abmelden und anmelden bringt keine Besserung, copy+paste ist kaputt. Es ist davon auszugehen, das die Einstellung im Client richtig ist, also die Zwischenablage eingeschaltet ist (Lokale Ressourcen > Zwischenablage angehakt).

Der Fix ist einfach: Auf beiden Seiten (sowohl Sever als auch Client) den Prozess „rdpclip.exe“ beenden und neu starten. Dann gehts wieder. Dieser Bug ist erst knappe 8 Jahre bekannt, von einem Patch gehen wir also in nächster Zeit nicht aus. RDPCLIP beendet seine Abeit, wenn in einem Zwischenablage-Vorgang die Verbindung beendet wird. Passiert gerne mal wenn man eine größere Datei oder Textmenge kopiert und ein WLAN abreißt.

Lösung:

c:\> taskkill /IM "rdpclip.exe" /f && %SystemRoot%\System32\rdpclip.exe

(Auf Server UND Client ausführen)

Windows „Systemshortcuts“ einzeln deaktivieren.

Problem:

Man möchte (aus irgendeinem Grund) einzelne System-Tastenkürzel (z.B. Windows-Taste + L) deaktivieren.

Lösung:

Unter:

HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced

einen REG_EXPAND_SZ-Wert „DisabledHotkeys“ mit den Werten der zu sperrenden Zusatztasten anlegen.

Möchte man z.B. Windows+L und Windows+E verbieten:

disabledhotkeys-reg

Windows 7 Update „Es wird nach Updates gesucht“ dauert ewig, wird nicht fertig

Problem

Seit eingier Zeit funktioniert das Windows Update unter Windows 7 nicht mehr richtig. Ob das ein „Schubser“ in richtung 10 sein soll? 🙂  Das Windows 7 Update steht ewig lange bei „Es wird nach Updates gesucht“ und wird nicht fertig, wenn es fertig wird, findet es manchmal keine Updates. Im %windir%\windowsupdate.log findet man nichtssagende Timeouts („timed out“ um genau zu sein) und sonst sehr wenig. Der Vorgang lässt sich nicht vernünftig anhalten und das Windows-Update-Repair-Tool-Fixit Ding (https://support.microsoft.com/de-de/kb/971058) hilft auch nicht weiter. Dabei wird zudem der Computer teilweise überlastet, indem CPU- und RAM-Ressourcen (durch svchost.exe) entsprechend beansprucht werden.

Lösung

Wenn man sich genau an diese Vorgehensweise hält, läuft danach in der Regel alles wieder richtig. Vorher noch das SP1 installieren (falls noch nicht geschehen), ohne SP1 geht gar nichts.

  1. Reboot. (Clean Boot)
  2. In der systemsteuerung unter Windows Update > Einstellungen ändern die Einstellung „Wichtige Updates“ auf „Nie nach Updates suchen (nicht empfohlen)“ ändern.
  3. Reboot.
  4. DIESE Updates in DIESER Reihenfolge installieren:
    1. Windows 7 64bit
      1. Sicherheitsupdate für Windows 7 für x64-basierte Systeme (KB3078601) vom 11.08.2015
      2. Sicherheitsupdate für Windows 7 für x64-basierte Systeme (KB3087039) vom 05.09.2015
      3. Sicherheitsupdate für Windows 7 für x64-basierte Systeme (KB3109094) vom 05.12.2015
      4. Sicherheitsupdate für Windows 7 für x64-basierte Systeme (KB3145739) vom 11.04.2016
      5. Sicherheitsupdate für Windows 7 für x64-basierte Systeme (KB3168965) vom 11.07.2016
      6. Sicherheitsupdate für Windows 7 für x64-basierte Systeme (KB3185911) vom 12.09.2016
    2. Windows 7 32bit
      1. Sicherheitsupdate für Windows 7 (KB3078601) vom 11.08.2015
      2. Sicherheitsupdate für Windows 7 (KB3087039) vom 05.09.2015
      3. Sicherheitsupdate für Windows 7 (KB3109094) vom 05.12.2015
      4. Sicherheitsupdate für Windows 7 (KB3145739) vom 11.04.2016
      5. Sicherheitsupdate für Windows 7 (KB3168965) vom 11.07.2016
      6. Sicherheitsupdate für Windows 7 (KB3185911) vom 12.09.2016
    3. Windows 8.1 / Server 2012 R2 64bit
      1. Sicherheitsupdate für Windows 8.1 / Server 2012 R2 für x64-basierte Systeme (KB3021910)
      2. Sicherheitsupdate für Windows 8.1 / Server 2012 R2 für x64-basierte Systeme (KB3173424)
      3. Sicherheitsupdate für Windows 8.1 / Server 2012 R2 für x64-basierte Systeme (KB3172614)
    4. Windows 8.1 / Server 2012 R2 32bit
      1. Sicherheitsupdate für Windows 8.1 / Server 2012 R2 (KB3021910)
      2. Sicherheitsupdate für Windows 8.1 / Server 2012 R2 (KB3173424)
      3. Sicherheitsupdate für Windows 8.1 / Server 2012 R2 (KB3172614)
  5. Reboot
  6. Die Einstellung „Wichtige Updates“ auf den ursprünglichen Wert zurücksetzen.
  7. Fertig

Ab hier eine neue Update-Suche starten. Es ist möglich, das das wieder eine ganze Weile dauert und Leistung frisst, aber diesmal wird der Update-Dienst ganz sicehr fertig und kann Updates wieder fehlerfrei installieren.

Thx an Alexander Schimpf: https://alexanderschimpf.de/windows-7-update-es-wird-nach-updates-gesucht
und Dalai: http://wu.krelay.de/

Windows 10 Anmeldung mit Fingerabdruck in Active-Directory Domäne via GPO erlauben

Problem

Windows 10 erlaubt im Prinzip die „komfortable Anmeldung“ mittels PIN und Fingerabdruck über den Live-Account („Microsoft-Account“). Standartmäßig ist das in der Domäne aber deaktiviert und nur die Anmeldung an lokalen Benutzerkonten erlaubt.

Das ist daran zu erkennen, das praktisch alle Optionen unter Einstellungen > Konten > Anmeldeoptionen ausgegraut sind.

Sollte das ebenfalls in der lokalen Anmeldung der Fall sein, ist zumeist der Treiber des Biometrie-Gerätes schuld: Aufgrund der hohen Sicherheitsanforderungen (und dem geldlichen Notleiden des Konzerns) müssen Treiber für die Biometrischen Geräte zur Anmeldung ausnahmslos zertifiziert sein. Eine Menge älterer Treiber (Synaptics, WD, Asus …) sind das nicht und müssen vorher aktualisiert werden.

Sollte das endlich alles klappen, kann man die Biometrische Anmeldung in der Domäne aktivieren.

Lösung

windows10-biometrie-erlauben

Fingerabdruck-Anmeldung und Biometrische Anmeldung via GPO (Gruppenrichtlinie) erlauben:

  1. Computerkonfiguration > Richtlinien > Administrative Vorlagen > Windows-Komponenten Biometrie > Verwendung von Biometrie zulassen
    1. aktivieren
  2. Computerkonfiguration > Richtlinien > Administrative Vorlagen > Windows-Komponenten Biometrie > Benutzeranmeldung mithilfe von Biometrie zulassen
    1. aktivieren
  3. Computerkonfiguration > Richtlinien > Administrative Vorlagen > Windows-Komponenten Biometrie > Bomänenbenutzeranmeldung mithilfe von Biometrie zulassen
    1. aktivieren

Fingerabdruck-Anmeldung via Live-ID (Die PIN ist eine Voraussetzung) mithilfe der GPO (Gruppenrichtlinie) erlauben:

  1. Computerkonfiguration > Richtlinien > Administrative Vorlagen > System > Anmelden > PIN-Anmeldung aktivieren

Wichtig: Bei der Anmeldung via PIN wird das Kennwort des Benutzers im Tresor („Anmeldeinformationsspeicher“) lesbar gespeichert. Mit „lesbar“ ist an dieser Stelle Mimikatz oder ähnliches gemeint.