Archiv der Kategorie: Windows

Secure Boot: Status abfragen

Secure Boot ist eine Funktion neuerer UEFI-Firmware, die nur zertifizierte Bootloader akzeptiert und damit vor Rootkits schützen kann. Kehrseite der Medaille: Auch nicht zertifizierte Linux-Systeme haben aktuell ihre liebe Not, sich an dieser Funktion vorbei zu booten. Neben ersten, noch nicht voll überzeugenden Lösungsansätzen steht die simple Maßnahme, „Secure Boot“ im UEFI-Setup einfach abzuschalten, bevor man ein alternatives System starten möchte. Nicht ganz komfortabel, aber immerhin machbar.

Secure Boot ist auf neueren PCs mit vorinstalliertem Windows 8 Standard. Der Status dieser Schutzfunktion lässt sich über die Registry abfragen:

HKLM\System\CurrentControlSet\Control\SecureBoot\State

DWord-Eintrag: UEFISecureBootEnabled
Wert 1: Aktiviert
Wert 0: Abgeschaltet

Rundll32 (Hilfsprogramm)

Rundll32 ist ein Windows-Standardprogramm unter %windir%\System32. Es kann diverse Funktionen aus Windows-Bibliotheken direkt aufrufen.

Die allgemeine Syntax lautet:

rundll32 [Bibliothek].dll,[Funktionsname] [Parameter_1] [Parameter_2]

[Funktionsname] ist Case-sensitiv, Groß- und Kleinschreibung muss hier genau befolgt werden.
Die allermeisten der mit Rundll32 erreichbaren Funktionen sind auch über die Windows-Oberfläche zugänglich. Rundll32 ermöglicht aber den Einsatz in Batch- und Script-Dateien, insbesondere aber in Verknüpfungen. Nach den kommentierten Beispielen finden Sie am Ende der Seite noch eine kleine Übersichtsliste. Es gibt noch zahlreiche weitere Rundll32-Aufrufe, die ich hier aber konsequent weglasse: So sind zum Beispiel alle Aufrufe der Systemsteuerungs-Applets per Kommandozeile auch ohne Rundll32 und damit einfacher möglich („control.exe xyz.cpl“ oder einfach „xyz.cpl“).

____________________________________________________________

Einige interessante Rundll32-Beispiele:

rundll32.exe powrprof.dll,SetSuspendState

Funktion: löst entweder „Energie sparen“ aus (Suspend to RAM) oder den Ruhezustand (Suspend to disk). Die Windows-Entscheidung über die jeweilige Variante basiert auf der Abfrage, ob der Ruhezustand aktiviert ist oder nicht, also ob eine Hiberfil.sys im Root-Verzeichnis existiert oder nicht. Dies lässt sich wiederum mit

powercfg.exe /h on|off

steuern. Die Kombination

powercfg.exe /h off
rundll32.exe powrprof.dll,SetSuspendState

löst daher „Energie sparen“ aus (Suspend to RAM).
[Anmerkung: Ein- oder Abschalten des Ruhezustands mit Powercfg.exe erfordert Administratorrechte.]
____________________________________________________________

rundll32 shell32.dll,Control_RunDLL hotplug.dll
Funktion: öffnet den Dialog „Hardware sicher entfernen“ (für USB-Geräte)
____________________________________________________________

rundll32 shell32.dll,Control_RunDLL intl.cpl,,2
Funktion: shell32.dll,Control_RunDLL kann sämtliche CPL-Dateien (also die Control Panel Libraries der Systemsteuerung) gezielt auf der gewünschten Registerkarte öffnen. In genannten Beispiel öffnen sich die Regionseinstellungen mit der zweiten (Zählung beginnt bei 0) Registerkarte.
____________________________________________________________

rundll32 keymgr.dll,KRShowKeyMgr
Funktion: öffnet den Dialog „Gespeicherte Benutzernamen und Kennwörter“, über den Sie Anmelde-Informationen für Netzwerkressourcen und Websites verwalten können
____________________________________________________________

rundll32 user32.dll,LockWorkStation
Funktion: sperrt die Sitzung – nützlich für Tastaturen ohne Windows-Taste (sonst reicht [Win]-[L] für den Zweck)
____________________________________________________________

rundll32 advapi32.dll,ProcessIdleTasks
Funktion: startet ad hoc Systemwartungen, die eigentlich auf Systemleerlauf warten
____________________________________________________________

rundll32 user32,UpdatePerUserSystemParameters
Funktion: aktualisiert Benutzereinstellungen, erspart nach Anpassungen den Neustart
____________________________________________________________

rundll32 inetcpl.cpl,ClearMyTracksByProcess [n]
Funktion: löscht Benutzerdaten des Internet Explorers, Ziffer [n] definiert, was gelöscht werden soll:

  • 1 Verlauf
  • 2 Cookies
  • 8 Temporary Internet Files
  • 16 Formulareingaben
  • 32 Passwörter
  • 255 alle Daten

Bei größeren Mengen an zu tilgenden Dateien erscheint ein Dialog mit Fortschrittsbalken.
____________________________________________________________

rundll32 shdocvw.dll,DoOrganizeFavDlg
Funktion: startet die Favoritenverwaltung des Internet Explorer
____________________________________________________________

rundll32.exe inetcpl.cpl,ResetIEtoDefaults
Funktion: setzt Internet Explorer auf Werkszustand zurück

Internet Explorer zurücksetzen

____________________________________________________________

advapi32.dll,ProcessIdleTasksSystemwartungstasks auslösen
inetcpl.cpl,ClearMyTracksByProcess 1IE-Verlauf löschen
inetcpl.cpl,ClearMyTracksByProcess 16IE-Formulardaten löschen
inetcpl.cpl,ClearMyTracksByProcess 2IE-Cookies löschen
inetcpl.cpl,ClearMyTracksByProcess 255IE-Benutzerdaten löschen
inetcpl.cpl,ClearMyTracksByProcess 32IE-Passwörter löschen
inetcpl.cpl,ClearMyTracksByProcess 8IE-Verlauf und Cache löschen
inetcpl.cpl,ResetIEtoDefaultsIE auf Werkszustand zurücksetzen
keymgr.dll,KRShowKeyMgrAuthentifizierungsmanager starten
keymgr.dll,PRShowSaveWizardExWAssistent für vergessene Kennwörter
msrating.dll,RatingSetupUIInhaltsratgeber
oobefldr.dll,ShowWelcomeCenterWillkommencenter
printui.dll,PrintUIEntryDruckerkonfiguration (Hilfeseite)
shdocvw.dll,DoOrganizeFavDlgIE-Favoritenverwaltung
shell32.dll,Control_RunDLLSystemsteuerung –> Hauptseite
shell32.dll,Control_RunDLL hotplug.dllHardware sicher entfernen (USB)
shell32.dll,OpenAs_RunDLL .xxxDialog „Öffnen mit“
shell32.dll,Options_RunDLL,0Ordneroptionen
shell32.dll,Options_RunDLL,1Taskleiste
shell32.dll,Options_RunDLL,4Systray-Symbole einstellen
shell32.dll,SHHelpShortcuts_RunDLL,ConnectNetzlaufwerk verbinden
shwebsvc.dll,AddNetPlaceRunDllNetzwerkadressse hinzufügen
user32,UpdatePerUserSystemParametersBenutzereinstellungen aktualisieren
user32.dll,LockWorkStationsperrt die Sitzung wie [Win L]
van.dll,RunVANDrahtlosnetzwerke anzeigen

Kommandozeilentools

CMD.exe (Kommandozeile, Eingabeaufforderung):

CMD ist die Standard-Shell für die meisten Kommandozeilenprogramme. Das heißt: Zunächst muss Cmd.exe gestartet werden, erst dann kann am blinkenden CMD-Prompt

das gewünschte Tool aufgerufen werden. Die CMD enthält zudem zahlreiche eigene, interne Befehle (wie DIR, DEL, REN, FOR etc.).

Neben der angegrauten Cmd.exe, die Microsoft seit mehr als 10 Jahren nicht mehr ernsthaft weiterentwickelt hat, eignet sich auch jeder andere Command Prompt für den Start der beschriebenen Tools, so etwa die Windows-Poewershell (Powershell.exe), die Cygwin Bash oder die Produkte 4NT, Take Command, TCC/LE (letzteres kostenlos) von JPSoft.

Bei den nachfolgend genannten oder verlinkten Tools handelt es sich ausschließlich um Werkzeuge, die mehr leisten als die Windows-Funktionen der grafischen Benutzeroberfläche.
_________________________________________

Clip.exe (Kopie in die Zwischenablage)

Clip schreibt das Ergebnis eines Kommandozeilenbefehls statt auf die Konsole in die Windows-Zwischenablage.
dir | clip
Das Ergebnis dieses Dir-Befehls kann dann mit [Strg]-[V] oder „Bearbeiten, Einfügen“ in jedes Windows-Programm übernommen werden. Das winzige Tool ist weitgehend entbehrlich.
_________________________________________

Cipher.exe (Hilfsprogramm zur Dateiverschlüsselung)

Cipher ist das Kommandozeilentool für die NTFS-eigene Datei- und Ordnerverschlüsselung. Diese Verschlüsselung (EFS – Encrypted File System) ist bei höherwertigen Windows-Versionen seit Windows 2000 und XP Pro über die Datei-/Ordnereigenschaften bequem im Explorer zu erreichen. Nicht so bei den Home-Versionen. Hier konnte unter XP Home das Cipher-Tool einspringen:

cipher /e *.*
cipher /d *.*

Der erste Befehl verschlüsselt alle Dateien im aktuellen Ordner, der zweite entschlüsselt sie wieder. Mit Schalter /S ist das Ganze auch auf Unterverzeichnisse auszuweiten. Leider gilt das nicht mehr für Windows 7, Vista und (voraussichtlich) 8. Cipher verweigert sich hier mit der Meldung „Die Anforderung wird nicht unterstützt.“ Der EFS-Systemdienst läuft zwar auch in den Home-Varianten, Cipher ist aber reduziert auf das Entschlüsseln und damit auf eine rein passive Rolle.
_________________________________________

Compact: Zielgenaue Dateikomprimierung

Compact ist das Kommandozeilentool für die NTFS-eigene Datei- und Ordnerkomprimierung. Die NTFS-Komprimierung ist über die Datei- und Ordner-Eigenschaften im Explorer zu erreichen – unter „Eigenschaften –> Allgemein –> Erweitert“. Aber ähnlich wie bei Cipher ist es effizienter, gut komprimierbare Formate mit Compact zu bearbeiten:

compact /c /i /s:%userprofile% *.bmp *.doc? *.xls? *.rtf *.txt *.htm?

Dieses Beispiel bearbeitet die ausgewählten Dateitypen im gesamten Benutzerordner.

_________________________________________

Convert: Umwandung des Dateisystems

Convertist unentbehrlich, wenn Sie eine FAT-formatierte Partition zu NTFS umwandeln wollen. Die Datenträgerverwaltung beherrscht diese Aufgabe nicht. Nach

convert [Laufwerk]: /FS:NTFS /V

startet die Konvertierung entweder im laufenden Betrieb oder wird für den nächsten Neustart geplant (natives Autoconv.exe vor dem Windows-Start). Statt [Laufwerk] geben Sie den korrekten Buchstaben des Laufwerks an.

_________________________________________

Devcon.exe: Gerätemanager auf der Kommandozeile

Braucht man wahrscheinlich selten und ist daher kaum hinreichend dokumentiert. Im Prinzip erledigt Devcon alles, wozu im Normalfall der grafische Gerätemanager (devmgmt.msc) zuständig ist.

Nützlich ist Devcon als Workaround, wenn eine Hardware nicht ordnungsgemäß initialisiert wird. In meinem Beispiel war es die HDMI-Audio-Ausgabe an das TV-Gerät. Die musste ich immer händisch im Gerätemanager aktivieren. Mit

devcon list *

kann man sich die gesamte Hardware inklusive Geräte-ID anzeigen lassen. Die ID ist wichtig, um dann das Gerät gezielt anzusprechen (Beispiel):

devcon enable "@HDAUDIO\FUNC_01&VEN_10DE&DEV_ 0094&SUBSYS_10DE1F82&REV_1001\5&2109403F&0&0001"

Das Ganze lässt sich dann als Batchdatei und danach als Verknüpfung dazu ablegen, die unter „Eigenschaften -> Erweitert“ Administratorrecht anfordert (zwingend bei Devcon-Aktionen). Damit ist die Fummelei im Gerätemanager auf zwei Mausklicks reduziert (und ließe sich mit Schtasks.exe auch vollständig automatisieren).

Dism.exe (Deployment Image Servicing and Management Tool)

Dism mountet (lädt) den Inhalt von WIM-Dateien (Windows Images) in ein beliebiges (leeres) Verzeichnis und schreibt Änderungen danach wieder in das Windows-Image zurück. Es ist damit das Standardwerkzeug für angepasste OEM- oder Firmen-Setups von Windows 7 oder Windows 8 sowie für angepasste Notfallsysteme (WinPE).

Dism gehört unter Windows 7 und Windows 8 zum installierten Standardrepertoir. Es muss auf der Kommandozeile Cmd.exe aufgerufen werden und arbeitet dort nur, wenn die Cmd.exe mit Administrator-Rechten gestartet wurde.

Die beiden wichtigsten Befehle lauten (Beispiel):

DISM.exe /Mount-Wim /Wimfile:D:\sources\install.wim /index:1 /Mountdir:C:\Win8
DISM.exe /Unmount-Wim /Mountdir:C:\Win8 /commit

Der erste Befehl lädt das erste Image („Index:1“) aus der WIM-Datei (unter D:\Sources) in das Verzeichnis C:\Win8. Der Vorgang kann je nach Quell-Laufwerk einige Zeit dauern, danach steht der Inhalt des Images im Verzeichnis C:\Win8 zur Bearbeitung bereit. Nach den gewünschten Änderungen schreibt der zweite Befehl das komplette geänderte Image auf die Quelle zurück.

Auch normale Windows-Benutzer können Dism höchst sinnvoll einsetzen, nämlich um ein angepasstes Windows-Notfallsystem auf USB zu erstellen. Unter „Systemsteuerung, Wiederherstellung“ (Windows 7: „Systemsteuerung, Sichern und Wiederherstellen“) lässt sich – ratzfatz – ein externer Systemreparaturdatenträger mit dem Notfallsystem WinRE einrichten. Ähnlich dem oben beschriebenen Dism-Befehl mounten Sie dann zunächst die Datei \Sources\Boot.wim von dem externen Datenträger in ein leeres Verzeichnis auf den Festplatte:

Dism hat die Boot.wim des Reparaturdatenträgers geladen…

Beim „Systemreparaturdatenträger“ (hier I:) muss es sich um einen USB-Stick handeln, da optische Medien (CD, DVD) nicht beschreibbar sind. In das Mount-Verzeichnis (hier: C:\WinRE) kopieren Sie dann die Tools, die Sie auf einem Reparaturdatenträger erwarten, etwa den Total Commander, einen Hex-Editor, einen Bildviewer, ein Undelete-Werkzeug wie Recuva und so fort. Typischer Platz dafür wäre etwa der Unterordner \Programme. Wenn alle Tools untergebracht sind, entladen Sie das Windows-Image mit dem Commit-Schalter und schreiben damit alle Änderungen in das WIM-File auf den Datenträger.

Ein Tipp: Natürlich lässt sich mit DISM auch das auf Festplatte vorinstallierte WinRE erweitern. Die hier einschlägige Image Winre.wim befindet sich im Ordner \Recovery der Systempartition. Beachten Sie hier, dass das 64-Bit-WinRE kein Subsystem für 32-Bit-Software mitbringt. Das heißt, dass Sie hier ausschließlich 64-Bit-Software erfolgreich integrieren können. Ob Sie ein 32- oder 64-Bit-Notfallsystem auf der Festplatte haben, ist einfach zu bestimmen: Das Notfallsystem hat dieselbe Architektur wie das Hauptsystem.
_________________________________________

Diskpart.exe (Laufwerk-/Festplatten-Management, Partitionierung)

Diskpart ist nur wirklich erfahrenen Usern zu empfehlen. Ein „select disk …“ oder „select partition …“ mit der falschen Kennziffer kann je nach Folgebefehl irreparable Schäden anrichten.
Diskpart leistet auf der Kommandozeile (mit Administrator-Rechten) etwa das, was auch die bequemere Diskmgmt.msc im Repertoir hat, etwa das Laden einer virtuellen Harddisk (VHD):

diskpart
select vdisk file=D:\Win7.vhd
attach vdisk
exit

Diskpart kann aber mehr und ist etwa unentbehrlich beim Einrichten boot-fähiger USB-Sticks.

Um einen Datenträger komplett zu säubern, hilft folgende Befehlsfolge:

diskpart
list disk
select disk [n]
clean all
exit

Ein weiterer Vorteil des Kommandozeilen-Tools ist seine Script-Fähigkeit. Mit

diskpart /s datei.txt

kann eine komplette Befehlsfolge in der „Datei.txt“ an das Programm übergeben werden, das dann alle enthaltenen Kommandos Zeile für Zeile abarbeitet.

Diskpart ist auch in der Lage, versteckte OEM-Wiederherstellungspartitionen anzulegen oder zu einer normalen Partition umzuwandeln. Dazu ist es notwendig, das Volume mit „select partition [n]“ mit der richtigen Kennziffer auszuwählen. Danach macht der Befehl
set id=12
die Partition zu einer versteckten OEM-Partition, während
set id=1
die Partition wieder sichtbar macht.
_________________________________________

FC: Exakter Dateivergleich

FC mit dem (Binary-) Schalter /b ist das einzige Windows-Bordmittel, mit dem Sie zwei Dateien exakt vergleichen können. Bei Binär-Dateien oder ISO-Images reicht ein Größenvergleich nicht aus, um die Identität sicherzustellen. Nach

fc /b Ordner\Datei1 Ordner\Datei2

sollte das Hilfsprogramm „Keine Unterschiede gefunden“ melden. Nur dann sind die Dateien identisch.

_________________________________________

Forfiles.exe (Datei-Jongleur und Datumsreporter)

Das hübsch komplizierte Forfiles erlaubt mit knappen einzeiligen Kommandos umfangreiche Datei-Aktionen. Typischerweise sammelt Forfiles Dateien ein und übergibt diese an die CMD.exe oder ein anderes Kommandozeilenprogramm, wobei es diverse Variablen weitergibt.
Das nachfolgende Beispiel nutzt Schalter /s für rekursive Suche, Schalter /m für die Dateimaske, Schalter /c für den Programmaufruf – hier die Cmd. Außerdem werden drei Variablen eingesetzt (Erklärung weiter unten):

forfiles /s /m *.* /c "cmd.exe /c if @isdir==FALSE if @fsize==0 del @path"

Das löscht (del) alle Dateien (/m *.*) in sämtlichen Unterordnern (/s) löschen, deren Dateigröße 0 Byte hat. Zum Testen wird man Forfiles immer erst zur harmlosen ECHO-Ausgabe veranlassen, um die Auswirkung zu kontrollieren:

forfiles /s /m *.* /c "cmd.exe /c if @isdir==FALSE if @fsize==0 echo @path"

Die Variablen mit „@“ sind drei Exemplare von insgesamt neun speziellen Variablen, die Forfiles übergeben kann:
@fname Dateiname, @fsize Dateigröße, @fdate Dateiänderungsdatum
@ftime Dateiänderungszeit, @ext Dateierweiterung, @path Dateipfad
@relpath relativer Pfad, beginnend vom Startverzeichnis des Forfiles-Aufrufs
@isdir für Ordner TRUE, bei Dateien FALSE

Das Kommandozeilentool Forfiles macht die CMD.exe deutlich klüger. Das abgebildete 4NT hätte den Forfiles-Service allerdings nicht nötig.

Noch ein nettes Beispiel:
forfiles /s /d -01.01.2005 /c "cmd /c echo @fdate -- @path"
Hier liefert Forfiles alle Dateien, die vor 2005 entstanden sind oder damals zuletzt geändert wurden. Eine interessante Alternative zur Angabe eines festen Datums nach dem Schalter /d ist die Angabe einer Anzahl von Tagen – etwa „/d -365“. Dann zeigt oder bearbeitet Forfiles – bezogen auf das aktuelle Datum – alle Dateien, die vor einem Jahr erstellt wurden.
_________________________________________

Fsutil.exe (Zugriff auf NTFS-Interna)

Das Tool beherrscht eine Reihe von NTFS-Festplatten-Manipulationen, die bislang an der grafischen Oberfläche nicht zugänglich sind. Ein Beispiel ist das Einrichten von Hardlinks:

cd %appdata%\Microsoft\Vorlagen
fsutil hardlink create normal.dotm \Tools\normal.dotm

Das erstellt eine Datei, die lediglich auf eine andere verweist, ähnlich wie eine Verknüpfung auf dem Desktop. Das ist praktisch, wenn eine Datei aus logischen Gründen in mehreren Ordnern vertreten sein, aber nicht mehrfach Platz beanspruchen soll.

fsutil fsinfo ntfsinfo c:

liefert unter anderem die Clustergröße einer Partition.
Der nächsten Beispielbefehl schaltet die DOS-konforme 8+3-Notierung im Master File Table ab (die wird als doppelte Buchführung zum Zwecke der Abwärtskompatibilität immer noch standardmäßig mitgeschleppt). Der Eingriff sollte gleich nach der Windows-Installation geschehen.

fsutil behavior set disable8dot3 1

Das nächste Beispiel setzt EFS (Encrypted File System – die NTFS-eigene Verschlüsselung) außer Gefecht:

fsutil behavior set DisableEncryption 1

Interessant in manchen Szenarien ist auch:

fsutil file createnew F:\Fillup.txt 15800860672

Wenn ein Datenträger komplett gesäubert werden soll, hilft Formatieren mit exFAT, Füllen der kompletten Kapazität mit dem obigen Befehl, schließlich neuerliches Formatieren.

Exakte Zugriffsstatistiken auf NTFS-Partitionen: Fsutil dient primär zur Analyse, kann aber auch einige NTFS-Interna aktiv umstellen.

_________________________________________

Powercfg.exe (Energieoptionen):

Das Kommandozeilenprogramm kann alles, was die Systemsteuerung unter den „Energieoptionen“ anbietet und darüber hinaus noch deutlich mehr, insbesondere seit Windows Vista und Windows 7. Powercfg muss in einer Cmd.exe ausgeführt werden, für Änderungen an den Energiesparplänen sind dabei Administratorrechte erforderlich.

Ein alter Tipp, der bereits seit XP funktioniert, ist der Befehl:

powercfg -hibernate on | off

Er aktiviert oder deaktiviert den Ruhezustand und die Hiberfil.sys (Ruhezustandsdatei im Rootverzeichnis der Windows-Partition).

powercfg /a

zeigt die aktuell unterstützten ACPI-Zustände an (Advanced Configuration and Power Interface).
Eine opulente Geräteliste produziert Powercfg, wenn Sie sich alle Komponenten inklusive ihrer ACPI-Fähigkeiten auflisten lassen:

powercfg -devicequery all_devices_verbose

Eine Batchdatei mit einigen Powercfg-Zeilen kann im Handumdrehen  die gewünschten Standardeinstellungen auf mehreren PCs einrichten – etwa:

powercfg -change -disk-timeout-ac 10
powercfg -change -disk-timeout-dc 5
powercfg -change -monitor-timeout-ac 8
powercfg -change -monitor-timeout-dc 3

AC steht jeweils für Netzbetrieb, DC für Akkubetrieb; danach folgt die Minutendauer, wann das Gerät bei Nichtbenutzung abgeschaltet werden soll.

Mit Powercfg,exe lassen sich auch die Energieschemata anzeigen und reduzieren:

powercfg -list

Diesem Kommando gibt die Kennziffern und die Bschreibung der Energiesparpläne aus. Danach löschen Sie mit

powercfg -delete [Hex-Kennziffer]

ein nicht mehr benötigtse Schema. Das taucht dann in der Systemsteuerung nicht mehr auf.

_________________________________________

Robocopy.exe (Robust File Copy):

Robocopy gehört seit Vista zum installierten Windows-Standardumfang. Das Tool ist schneller, umfangreicher und fehlertoleranter als sein Vorgänger Xcopy und viele vergleichbare Kopierprogramme. Zahlreiche Options-Parameter sorgen für Lösungsmöglichkeiten in allen Lebenslagen – so etwa die vielen Exclude-Optionen wie:

  • /XD Video* Log*genannte[n] Ordner ausschließen
  • /XF Albumart*.jpg *.ininachfolgend angegebene Dateien/Dateimasken ausschließen
  • /XJDDirectory- (Ordner-) Junctions generell ausschließen

Die Ziffer nach dem Wiederholungsschalter (Retry) /R:3 legt fest, wie oft Robocopy bei Fehlern versucht, die Datei erneut zu kopieren.

Die Ziffer nach dem Warteschalter (Wait) /W:5 definiert die Wartezeit in Sekunden, bis Robocopy im Fehlerfall den nächsten Versuch unternimmt.

Ein typischer Auftrag für Robocopy sieht dann etwa so aus:

robocopy e:\Archiv \\nas\Volume_1\Archiv /MIR /XD Temp* /XJD /DST /W:5 /R:1

Heißt ungefähr: Kopiere alles von E:\Archiv auf den Netzwerkpfad \\nas\…, was dort bislang fehlt, lösche dort alles Überzählige (/Mir), schließe Ordnernamen mit „Temp“ ebenso aus wie eventuelle Ordner-Junctions, ignoriere eventuell differierende Timestamps (Sommerzeit/Winterzeit) und – mach‘ bei Fehlern nicht lang rum.

Achtung bei den Parametern /mir und /purge: Diese Befehle löschen Überzähliges im Zielordner. Als Kontrolle empfiehlt sich hier immer erst der Zusatzschalter /L (List), der die Aktionen nur anzeigt, aber noch nicht ausführt:

robocopy e:\Archiv \\nas\Volume_1\Archiv /MIR /XD Temp* /XJD /DST /W:5 /R:1 /L

Für einen einmal bewährten Robocopy-Job lohnt sich in jedem Fall eine kleine Batchdatei (mit der Erweiterung .BAT oder .CMD), um die komplexen Zeilen nicht manuell eingeben zu müssen. Wer sich mit den Kommandoparametern (siehe „robocopy /?“) gar nicht anfreunden kann, mag alternativ Microsofts Robocopy-GUI verwenden. Hier gibt’s für alle Optionen Kästchen zum Anklicken – mausfreundlich, aber meines Erachtens eher komplizierter, wie folgender Screenshot andeuten mag…

_________________________________________

RunDLL32.exe (Zugriff auf Windows-DLL-Funktionen)
Eine Reihe interessanter Windows-Funktionen, die über dieses Hilfsprogramm erreichbar sind, finden Sie auf dieser Seite.
_________________________________________

Schtasks.exe (Aufgabenplanung am Prompt)
Das Tool ist das Kommandozeilen-Pendant zur „Aufgabenplanung“ (Taskschd.msc), früher „Geplante Tasks“ (XP). Schtasks erlaubt das Auflisten, Erstellen, löschen und Ändern aller Tasks der Aufgabenplanung:

schtasks

Das genügt für eine Kurzzusammenfassung, ganz ausführlich ist das Ergebnis nach:

schtasks /query /v /fo list

Mit

schtasks /delete /tn \Microsoft\Windows\Chkdsk\ProactiveScan

löschen Sie einen geplanten Task. Das Beispiel zeigt, dass der komplette Pfadname angegeben werden muss. Der Pfad kann sowohl in der grafischen Konsole wie mit Schtasks leicht ermittelt werden. Alle Löschungen, Neueinträge und Änderungen erfordern Adminrechte auf der Kommandozeile.

Ein beliebter Trick, bestimmte Programme wie Regedit.exe ohne die Rückfrage der UAC (Benutzerkontensteuerung) zu starten, besteht darin, eine Pseudo-Aufgabe „Regedit“ in der Aufgabenplanung anzulegen und diese dann mit einem Link direkt zu starten. Der Link hat dann das Ziel:

schtasks.exe /run /tn "Regedit"

Beachten Sie, dass der Name nach /tn (Taskname) exakt mit dem erstellten Aufgabennamen in der Aufgabelnplanung übereinstimmen muss. Der Trick funktioniert deshalb, weil die Task der Aufgabenplanung a priori Administratorrechte beanspruchen und daher keine UAC anschlägt.

_________________________________________

Taskkill: Prozesse gezielt beenden

Taskkill ist nützlich, um ein bestimmtes Programm gewaltsam zu beenden. Ein typischer Kandidat ist der Windows-Explorer, der sich nicht auf normalem Weg schließen lässt. Wenn Sie mit „taskkill /im explorer.exe“ den Windows-Explorer beenden wollen, erscheint stattdessen ein Dialog „Windows herunterfahren“ mit den verschiedenen Shutdown-Varianten. Zum Schließen des Explorers brauchen Sie den zusätzlichen Schalter /f (für „Force“)

taskkill /f /im explorer.exe

in dieser Schalterabfolge.

_________________________________________

Waitfor: Signale aus dem Netz

Mit dem kleinen Tool Waitfor schicken Sie Signalwörter an einen Rechner im Netz oder warten auf ein solches Signal. Der Sendevorgang sieht wie folgt aus:

waitfor /s rechnername /si StartGame

Der Empfänger-PC wartet dann mit „waitfor StartGame“ auf das vereinbarte Signal. Das Tool kann für einfache Fernsteuerungszwecke oder als Signalgeber für LAN-Parties dienen. Da es auf der Cmd-Kommandozeile keinen brauchbaren Sleep-Befehl zum Warten gibt, kann es in Batchdateien auch lokal als simple Sleep-Anweisung verwendet werden:

waitfor dummy /t 15

Der Befehl lässt die Batchdatei einfach 15 Sekunden pausieren.

_________________________________________

Windows-Powershell (Objektorientierter Kommanointerpreter)

Eine kleine Einführung in die Powershell finden Sie hier…

_________________________________________

Winsat.exe (Systembewertungstool)

Das Winsat-Systembewertungstool ist Basis für den Windows-Leistungsindex – die Benotung, die Sie nach [Win Pause] angezeigt bekommen. Das Kommandozeilentool zeigt nach „winsat -?“, welche Hardwarekomponenten es analysieren kann (cpu, d3d, disk, media, mem). Ein praktischer Einsatzzweck sind Schreib- und Lesebenchmarks für USB-Sticks und Festplatten:

winsat disk -write -ran -ransize 524288 -drive F
winsat disk -read -ran -ransize 524288 -drive F

Damit erhalten Sie eine objektive Bewertung etwa darüber, welcher der verfügbaren USB-Sticks sich am besten für ein bootfähiges System eignet.
_________________________________________

Wmic.exe (WMI-Console)

Die WMI-Console bietet Zugriff auf alle Klassen der Windows Management Instrumentation (WMI) und ist eine einfache Alternative zu Scriptmethoden oder zu den Powershell-Cmdlets „Get-WmiObject“ und „Get-CimInstance“.
Eine kleine Einführung zur WMIC mit zahlreichen Beispiel-Kommandos finden Sie hier.

_________________________________________

Xcopy.exe (Kopiertool)

Xcopy hat seit der Einführung von Robocopy technisch eigentlich ausgedient. Microsoft liefert es in Windows 7 und 8 weiter mit, weil es in Millionen alter Batchdateien Einsatz findet und außerdem vielen Windows-Nutzern vertraut ist. Für die meisten Sicherungsaktionen hat sich die einprägsame Schalterkombination „/kreisch“ bewährt (die war mir irgendwann 1995 eingefallen), für das Aktualisieren einer bereits bestehenden Sicherung kommt der Datumsschalter „/d“ dazu:
xcopy c:\tools \\server\volume_1\Tools /dkreisch
Diese Kopieaktion würde den Bestand auf dem Server um die neueren und die aktualisierten Daten erweitern.
Wer die Sicherheitsinformationen der Dateien mitkopieren will, kann das memorable Schaltermonster „kreischoxyd“ verwenden.

Control.exe und Canonical Names

Die Datei Control.exe ist das Dienstprogramm der Windows-Systemsteuerung.
Ohne Parameter aufgerufen („control“) startet es die Systemsteuerung. Über die Registry sind die einzelnen Applets der Systemsteuerung mit der Erweiterung CPL mit der Control.exe verknüpft: Daher lassen sich CPL-Dateien wie inetcpl.cpl, wscui.cpl, mmsys.cpl, appwiz.cpl, main.cpl auch einzeln starten.

Control.exe kann es aber noch diffenzierter: Jeder einzelne Systemsteuerungspunkt hat einen internen Namen und eine eigene GUID. Alle diese Einzeldialoge lassen sich mit

control.exe /name microsoft.[CanonicalName]

direkt starten – ein Beispiel:

control.exe /name microsoft.System
control.exe /name {BB06C0E4-D293-4f75-8A90-CB05B6477EEE}

Das Ergebnis ist bei beiden Kommandos dasselbe – es erscheint der Dialog mit den „Basisinformationen“ zum System.

Diese MSDN-Seite von Microsoft bietet eine vollständige Liste der Canonical Names und der zugehörigen hexadezimalen GUID-Nummer. Die Liste umfasst 60 Einträge und geht damit über die in der Systemsteuerung aktiv angebotenen Einstellungen hinaus.

Windows-Bootvorgang (7, 8, 10)

Windows-Start zum Logon
KomponenteAufgabe
Bios / UEFIinitialisiert Hardware nach Power On Self Test (POST)
Bios / UEFIliest Master Boot Record (MBR) und Partition Boot Record (PBR)  von der primären Bootpartition
Bootsektor (MBR)lädt Bootmgr.exe auf der primären Bootpartition
Bootmgrschaltet die CPU vom 16-Bit-Real-Mode in 32-Bit-Protected Mode
Bootmgrzeigt das Bootmenü zur Auswahl des Systems bei mehreren installierten Windows-Versionen
Bootmgrliest Boot Configuraion Data unter \Boot\BCD (BIOS) oder \EFI\Microsoft\Boot (UEFI)
Bootmgrstartet je nach BCD-Eintrag Winload oder Winresume (Eintrag nach Abschalten in Ruhezustand)
A. Winresumelädt das System aus der Ruhezustandsdatei Hiberfil.sys
B. Winloadlädt Registry HKLM\System
Winloadlädt Windows\System32\hal.dll (Hardware Abstraction Layer)
Winloadlädt Treiber und Dienste mit Autostart-Flag (HKLM\SYSTEM\CurrentControlSet\Services)
Winloadlädt Windows\System32\ntoskrnl.exe
Ntoskrnlzeigt Startanimation
Ntoskrnlstartet eventuelle BootExecute-Aufgaben (HKLM\SYSTEM\CurrentControlSet\Control\SessionManager)
Ntoskrnllädt Kernel-Subsystem, Memory Manager, Process Manager, Session Manager SMSS.exe
SMSSinitialisiert Pending Operations, Auslagerungsdatei
SMSSlädt Registry-Zweig HKLM vollständig
SMSSlädt Win32-Subsysteme Win32k.sys (Kernel-Mode) und Csrss.exe (User-Mode)
SMSSlädt Wininit.exe und Winlogon.exe
Winlogonlädt Userinit.exe und Lsass.exe (Authentifizierungsdienst)
Userinitlädt User-Shell Explorer und zeigt den Logon-Dialog

Der Startvorgang von der BIOS-/UEFI-Firmware bis zum Windows-Anmeldebildschirm ist wesentlich komplexer als die oben abgebildete Liste das skizziert. Die wesentlichen Stationen sind aber genannt: Das minimale Ladeprogramm des Bootsektors findet und lädt am primären Bootlaufwerk die Bootmgr.exe. Damit übernimmt Windows das Kommando über den Rechner und schaltet ihn in den Protected Mode. Im BDC-Speicher findet Bootmgr, ob das einzige vorhandene oder das vom Benutzer ausgewählte Windows zuletzt „Heruntergefahren“ oder in der „Ruhezustand“ versetzt wurde. Im ersten Fall zeigt der BCD-Eintrag die Winload.exe, andernfalls die Winresume.exe.
Winresume kann die Initialisierungsvorgänge allesamt überspringen, insofern es den Zustand der letzten Windows-Sitzung aus der Ruhezustandsdatei Hiberfil.sys übernimmt und in den Speicher schreibt. Winresume stellt auch die User-Session (mit Desktop-Zustand, Programmen, User-Registry) wieder her.
Winload muss den Systemzweig der Registry einlesen, um zu wissen, welche Treiber und Dienste es starten soll. Außerdem lädt es den Hardware Abstraction Layer – die Vermittlungsschicht zwischen der physischen Hardware und der System- und Anwendungssoftware, die nur über die HAL-Abstraktionsschicht auf Hardware zugreifen darf.
Danach lädt Winload die Ntoskrnl.exe, deren Hauptaufgabe im Initialisieren der wichtigsten Systemkomponenten besteht: Kernel, Speichermanagement, Prozessmanagement, Sitzungsmanager, Input/Out-System. Der Session-Manager Smss.exe lädt wiederum die Ring-0-Sitzung für den privilegierten Kernelmode (Win32k.sys) und den User-Mode für die Benutzersitzungen (Csrss.exe). Dann geht’s über die Wininit.exe, Winlogon.exe schließlich zur Userinit.exe, welche die Windows-Shell (Explorer) startet und den Anmeldebildschirm präsentiert.

USB-Policies

Bereits installierte USB-Geräte verbieten: Windows bereits bekannte USB-Geräte kann man in vielen Fällen sehr einfach durch einen Registry-Eingriff verbieten. Der Schlüssel heisst

Hkey_Local_Machine\System\CurrentControlSet\Services\USBSTOR

Der zugehörige Dword-Eintrag „Start“ wird auf Wert „4“ gesetzt. Die Einstellung wirkt sofort (ohne Neuanmeldung, Neustart) – unter Umständen jedoch gar nicht, wie ich auf einem Rechner mit USB-Hub beobachten musste.

Cmd-Befehl (Admin-Rechte notwendig):
reg add HKLM\SYSTEM\CurrentControlSet\services\USBSTOR /f /t reg_dword /v Start /d 0x4
Zurück auf Standard mit:
reg add HKLM\SYSTEM\CurrentControlSet\services\USBSTOR /f /t reg_dword /v Start /d 0x2

Neue USB-Geräte verbieten: Der Anschluss bisher unbekannter USB-Geräte ist mit sanften Mitteln nicht zu verbieten, weil dies den unvermeidlichen Plug & Play-Dienst auf den Plan ruft. Es gibt aber eine sehr simple Methode, neue USB-Geräte fernzuhalten – einfach die Datei Usbstor.inf unter \Windows\Inf umbenennen. Konten mit eingeschränkten Benutzerrechten können diesen Vorgang nicht rückgängig machen (selbst wenn die Benutzer den Vorgang durchschauen). PC-Administratoren, die ein neues USB-Gerät anschließen wollen, müssen der INF-Datei vorher wieder ihren Originalnamen geben. Mit dem Tool USBDeview (Nirsoft) lässt sich prüfen, welche USB-Geräte auf dem System bereits installiert sind und gegebenenfalls deinstallieren. Dazu muss USBDeview mit Admin-Rechten gestartet sein.

Schreiben via USB verbieten: Windows kann seit XP per einfacher Registry-Regel alle USB-Geräte schreibschützen. Der einschlägige Schlüssel lautet

Hkey_Local_Machine\System\CurrentControlSet\Control\StorageDevicePolicies

und der dort notwendige DWORD-Eintrag „WriteProtect“ mit Wert „1“.

Cmd-Befehl (Admin-Rechte notwendig):
reg add HKLM\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies /f /t reg_dword /v WriteProtect /d 0x1
Zurück auf Standard mit:
reg add HKLM\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies /f /t reg_dword /v WriteProtect /d 0x0

Shell-Erweiterung 7z-Encryption

Klar hat jeder Vernunftbegabte das Unbehagen im Hinterkopf, wenn er unverschlüsselte Dateien in die Cloud stellt, die höchst private oder gar sensible Informationen enthalten. Aber wie es so oft läuft: Es ist im Moment einfach zu lästig und zeitaufwändig, extra ein Verschlüsselungs-Tool anzuwerfen…

So ging’s mir oft genug. Jetzt habe ich mal ein paar Stunden geopfert und eine technisch simple, trotzdem komfortable und einfache Lösung gebastelt. Sie basiert auf dem Open-Source-Packer 7-Zip, der eine sichere Verschlüsselung bietet, sofern das Kennwort ausreichend lang und komplex ist. Das Ergebnis liegt hier:
Für Windows: 7zEnc-Windows
Für Ubuntu: 7zEnc-Ubuntu
Für Linux Mint: 7zEnc-Mint

Zum Einsatz unter Windows:

  • Zip-Archiv entpacken
  • Den Ordner 7zEnc an einen beliebigen Ort verschieben, wo er dann dauerhaft bleibt
  • Die Datei 7zEnc_Register_[Als_Administrator].cmd starten (mit der Option „Als Administrator ausführen“)
  • Die Datei 7zEnc.cmd öffnen und das von mir voreingestellte Standardpasswort „linuX*Welt_2Ol5-05/HA“ zweimal ändern (also an beiden Stellen). Es darf auch länger werden. Das Längenlimit des 7-Zip-Kennworts ist mir nicht bekannt und war nicht zu recherchieren. Mein eigenes Kennwort hat derzeit 32 Zeichen. Länge und Komplexität sind deshalb kein Problem, weil Sie das Kennwort nicht manuell eingeben müssen.
  • Im Explorer steht nun nach Rechtsklick auf Ordner und Dateien das zusätzliche Kontextmenü „7z-Encryption“ bereit. Verschlüsselte Dateien erhalten die künstliche Extension 7zEnc. Daran erkennt die Shell-Erweiterung, wenn es Daten auspacken soll.

Sie haben 7-Zip sowieso an Bord?
Auch dann können Sie den oben beschriebenen Weg gehen. Nötig ist das aber nicht:
Es genügt, die beiden Batchdateien 7zEnc.cmd und 7zEnc_Register_[Als_Administrator].cmd in das Programmverzeichnis von 7-Zip zu kopieren. Dort laden Sie dann die Batchdatei 7zEnc_Register_[Als_Administrator].cmd und setzen das eigene Kennwort in die 7zEnc.cmd ein…

Das kleine Tool ist unter Windows 7 und 8 explizit getestet und dort seit Jahren erfolgreich im Einsatz. Es gibt aber keinen plausiblen Grund, warum es unter XP und Vista nicht laufen sollte.

Zum Einsatz unter Ubuntu:
Installieren Sie zunächst, sofern noch nicht geschehen, den 7Zip-Packer sowie das Tool Nautilus-Actions. Bei letzterem handelt es sich um ein Konfigurationswerkzeug für den Ubuntu-Dateimanager Nautilus:
sudo apt-get install p7zip-full
sudo apt-get install nautilus-actions
Starten Sie dann das Nautilus-Actions Configuration Tool über das Dash (Super- oder Windows-Taste). Es findet sich dort als „Einstellungen für Nautilus-Aktionen“. Über „Werkzeuge -> Importassistent“ lesen Sie dann die beiden Dateien mit der Endung .desktop, die Sie über den oben genannten Download erhalten. Klicken Sie dann auf den „Speichern“-Button in der Werkzeugliste oben links.
Der Dateimanager Nautilus zeigt nun nach Rechtsklick auf ein Dateiobjekt (Datei oder Verzeichnis) den neuen Eintrag „7z-Verschlüsseln“. Damit wird das Objekt automatisch im aktuellen Ordner mit dem Standardpasswort verschlüsselt, eingepackt und mit der Endung „.7zEnc“ versehen. Umgekehrt erkennt Nautilus gepackte Archive an der künstlichen Extension „7zEnc“ und entpackt sie mit dem Kontextmenü „7z-Entschlüsseln“ im aktuellen Verzeichnis. Ob die beiden neuen Kontexteinträge unter Nautilus separat auftauchen, können Sie in Nautilus-Actions über das Menü „Bearbeiten -> Einstellungen -> Laufzeiteinstellungen -> Nautilus-Menüanordnung“ steuern..
Wie unter Windows müssen Sie das voreingestellte Passwort durch ein persönliches ersetzen. Gehen Sie dazu in Nautilus-Actions auf die Registerkarte „Befehl“ und schreiben Sie nach „-p“ Ihr Wunschkennwort. Es muss wie das vorgegebene in einfachen Anführungszeichen stehen und für beide Einträge genau identisch sein.

Zum Einsatz unter Linux Mint:
Falls noch nicht geschehen, installieren Sie wie unter Ubuntu beschrieben den 7z-Packer nach. Der Standard-Dateimanager Nemo unter Mint braucht dann keine weitere externe Hilfe. Es genügt, unter /home/[user]/.local/share/nemo/actions einige Scripts zu hinterlegen. Falls dieser Ordner noch nicht existiert, legen Sie ihn einfach manuell an. Für die zusätzlichen benutzerdefinierten Kontextmenüs benötigen Sie jeweils eine Datei mit der Endung .nemo_action und für unseren Fall noch zwei winzige Shell-Scripts. Alle vier Dateien erhalten Sie über den oben genannten Download. Kopieren Sie diese einfach nach ~/.local/share/nemo/actions. Damit ist die bequeme Verschlüsselung sofort einsatzbereit.
Unter Mint gilt wie schon für Windows und Ubuntu angesprochen: Sie müssen unser vorgegebenes Passwort durch ein persönliches ersetzen. In diesem Fall geschieht dies in den beiden Shell-Scripts 7z-Entschlüsseln.sh und 7z-Verschlüsseln.sh.

Wenn Sie mehrere PCs und Notebooks verwenden, richten Sie die 7z-Verschlüsselung zum bequemen Datenaustausch auf allen Geräten mit identischen Kennwort ein. Sollten Sie irgendwann die Notwendigkeit sehen, das Kennwort zu ändern, muss dies auf allen Geräten erfolgen. Außerdem müssen Sie alle bereits verschlüsselten Archive zunächst mit dem alten Kennwort auspacken.

Alle Tasks der Systemsteuerung (‚God-Mode‘)

Unter Windows Vista, Windows 7 und Windows 8 lässt sich die Kategorisierung der Systemsteuerung auflösen. Dazu reicht es im Prinzip schon, im Suchfeld rechts oben einen beliebigen einzelnen Buchstaben einzugeben. Danach listet die Systemsteuerung sofort alle Einzel-Tasks auf, deren Name diesen Buchstaben enthält – nach einem häufigen Buchstaben wie „e“ folglich so gut wie alle…
Datenbasis dieser Suche sind „All Tasks“, die in der Registry mit der ClassID HKEY_CLASSES_ROOT\CLSID\{ED7BA470-8E54-465E-825C-99712043E01C} eingetragen sind. Um also die Systemsteuerung sofort mit allen vorhandenen Einträgen zu starten, genügt in der Explorer-Adresszeile der Shell-Befehl:

shell:::{ED7BA470-8E54-465E-825C-99712043E01C}

Dasselbe leistet ein Ordner mit beliebigem Namen und der Extension .{ED7BA470-8E54-465E-825C-99712043E01C}, also etwa „Alles.{ED7BA470-8E54-465E-825C-99712043E01C}“.
Dieser Aufruf ist als ‚God-Mode‘ bekannt geworden. Unter Windows 8 liefert diese Komplettliste 267 Einzelfunktionen.

Systemsteuerung mit allen Einzeltasks (God-Mode)

Wmic (WMI-Console)

Windows-Systeme verstreuen zahllose Diagnose-Tools, Info-Programme und Bearbeitungswerkzeuge quer übers System. Es fehlt eine globale Zentrale mit allen Zugriffsmöglichkeiten. Lediglich die WMI (Windows Management Instrumentation) verspricht solche Fähigkeiten. Um diese nutzen können, ist normaler Weise Programmierung oder zumindest Scripting. Eine interaktive Alternative bietet jedes Windows-System zusätzlich mit der WMI-Konsole Wmic.exe. Die folgenden Beispiele zeigen einige Möglichkeiten der Wmic und der WMI insgesamt.

Wmic-Abfragen sind auf zwei Wegen möglich: Zum einen sowohl nach Aufruf von „wmic.exe“ am Wmic-eigenen Prompt „wmic:root\cli“, zum anderen von außen, zum Beispiel in einer Verknüpfung, durch jeweiliges Voranstellen von „wmic“. Der Befehl „wmic startup list“ produziert also das gleiche Ergebnis wie der Aufruf „wmic“ und der nachfolgende Befehl „startup list“. In beiden Fällen bewirkt das die Anzeige aller Autostarts aus der Registry und dem Autostart-Ordner.

„Wmic -?“: Eine erste Übersicht
Nach den globalen Parametern erscheinen die sogenannten Aliases – Kurznamen zur einfacheren Verwendung von insgesamt 71 Win32-Klassen. So steht etwa das Alias „process“ für „Win32_Process“.
Was Sie nun mit der einzelnen Klasse tatsächlich anfangen können, ergibt der nächste Schritt – weiter am Beispiel von „Process“:
wmic process -?
Die Konsole zeigt nun unter anderem die Optionen „Get“ und „List“ zur Info-Abfrage. Diese beiden Befehle stehen für sämtliche Klassen zur Verfügung. Welche Eigenschaften Sie damit für die jeweilige Klasse abfragen können, erfahren Sie wiederum mit
wmic process get -?
In diesem Fall sind es satte 40 Eigenschaften, die Sie einzeln oder komplett abfragen können.

Auflistung der vorhandenen Treiber…
wmic sysdriver get name

wmic process list -?
Das Verb „List“ ist zur Ausgabe von Systeminfos im Prinzip gleichwertig mit „Get“. „Get“ ist das präzisere Instrument, um einzelne Eigenschaften anzusprechen. „List“ ist oft bequemer: Es bietet eine bereits vorgegebene Auswahl von Eigenschaften. Welche Listen es für welche Klassen gibt, zeigt „wmic list -?

Auflistung der vorhandenen Treiber – mit „Get“ oder „List“
wmic sysdriver list instance
wmic sysdriver get name
„list instance“ ist in diesem Fall gleichbedeutend mit „get name“:

wmic process list brief
wmic process get ThreadCount,HandleCount,Name,Priority,ProcessId,WorkingSetSize
Auch diese beiden Befehle liefern dasselbe Resultat.

Formatierung: Bunt oder DOS-like
Wmic besitzt einige Optionen, die Informationen optisch ansprechend darzustellen. Die einfachste Möglichkeit, das oft überbreite Tabellenformat von „Get“ anders darzustellen, ist der Schalter „…get /value“. Vergleichen Sie die Ausgabe etwa von „wmic os get“ und „wmic os get /value“. Die erste Variante ist für die direkte Bildschirmdarstellung praktisch untauglich, die zweite gut lesbar.

wmic os get /format:hform > os.HTM
wmic qfe get caption,description,HotFixID,InstalledOn,ServicePackInEffect
/format:htable > patches.htm

oder:

wmic /output:os.htm os get /format:hform
wmic /output:patches.htm qfe get caption,description,HotFixID,InstalledOn,
ServicePackInEffect /format:hform

Os.htm liefert eine übersichtliche, farbig formatierte HTML-Tabelle zu allen wesentlichen Betriebssystem-Parametern (OS).
Patches.htm liefert die Übersicht der installierten Update.
Die Listen sind danach mit dem Standard-Browser bequem zu sichten.

Sie können die Infos mehrerer Klassen auch in einer Datei sammeln, indem Sie die Append-Umleitung „>>“ verwenden oder den Wmic-eigenen Parameter „wmic /append:…“. Als Ausgabeziel akzeptiert Wmic sowohl bei „/append“ als auch bei „/output“ neben einer Datei auch die Zwischenablage („wmic /output:clipboard …“).

Formatierter Output der WMIC (WMI-Console)

Sortierung mit Sortby

Sofern Sie das Ausgabeformat „Htable“ verwenden, haben Sie die zusätzliche Option, eine Tabelle nach einer bestimmten Spalte zu sortieren:

wmic sysdriver get name,pathname,startmode /format:htable:"sortby=StartMode" > drv.htm

Die „Sortby“-Option ist entgegen der sonstigen Wmic-Syntax case-sensitiv. Die Schreibweise „startmode“ im Beispiel würde daher scheitern.

————————————————————
Weitere Beispiele:

Mit dem Windows-Installer installierte Produkte auflisten:
wmic product get *
————————————————————
Software-Features auflisten (detaillierter als „Product“):
wmic softwarefeature get*
————————————————————
Software-Elemente auflisten (detaillierter als „Softwarefeature“):
wmic softwareelement get *
————————————————————
Hotfixes und Updates auflisten mit dem Alias „QFE“
wmic qfe list
————————————————————
Systemwiederherstellung konfigurieren
wmic recoveros set OverwriteExistingDebugFile = 0
wmic recoveros set SendAdminAlert = False
————————————————————
Drei Eigenschaften des Alias „Logicaldisk“ auswählen:
wmic logicaldisk get name,volumename,filesystem
————————————————————
Auflistung einiger Eigenschaften der aktuellen Prozesse mit vordefiniertem „list brief“ ­ im Ergebnis ähnlich dem Taskmanager:
wmic process list brief
————————————————————
Mit „Get“ manuell ausgewählte Eigenschaften der aktuellen Priozesse – wieder ähnlich dem Taskmanager und identisch mit „list brief“:
wmic process get ThreadCount,HandleCount,Name, Priority,ProcessId, WorkingSetSize
————————————————————
Vier wesentliche Eigenschaften der Systemdienste anzeigen:
Wmic service get caption, name, startmode, state
————————————————————
„Get“ und „Get /Value“: Breites Tabellenformat und simple Auflistung mit /Value, hier am Beispiel der User-Konten:
wmic useraccount get
wmic useraccount get /value
————————————————————
Alle Eigenschaften der Klasse „Win32_OperatingSystem“ (=Alias „os“) in HTML-Ausgabe umleiten (OS.HTM anschließend per Doppelklick laden):
wmic os get /format:hform > os.HTM
————————————————————
Alle Eigenschaften der Klasse „Win32_OperatingSystem“ (=Alias „os“) und HTML-Ausgabe – wie letzter Befehl, nur mit anderer Syntax:
wmic /output:os.HTM os get /format:hform
————————————————————
Drei Eigenschaften der Systemtreiber mit HTML-Ausgabe
Die Sortierung nach einer bestimmten Spalte mit „Sortby“ funktioniert nur mit dem breiten HTable-Format:
wmic sysdriver get name,pathname,startmode /format:htable:"sortby=StartMode" > drv.htm
————————————————————
Drei Eigenschaften der Systemtreiber, wieder mit Sortierung, hier aber mit dem simplen CMD-Filter Sort.EXE:
wmic sysdriver get name,pathname,startmode | sort /+63
————————————————————
Wmic-Ausgabe in die Zwischenablage leiten (hier Bios-Informationen):
wmic /output:clipboard bios list full
————————————————————
Instanzen von „LogicalDisk“ auf Festplatten (Typ 3) einschränken:
wmic logicaldisk where "drivetype=3" get name,freespace,SystemName,FileSystem,Size,VolumeSerialNumber
————————————————————
Set-Befehl für Registry-Größe:
wmic registry set proposedsize=20
————————————————————
Create-Befehl für eine globale Systemvariable (mit dem Namen ‚ZB‘, Wert ‚1‘):
wmic environment create name=“ZB“, username=““,variablevalue= „1“
————————————————————
Methode des Alias „Logicaldisk“, um automatisches Checkdisk zu deaktiveren:
wmic logicaldisk call ExcludeFromAutochk "E:"
————————————————————
Methode des Alias „Process“, um einen neuen Task zu erstellen:
wmic process call create "notepad.exe"
————————————————————
„Create“-Methode des Alias „Process“ lädt den ausführbaren Code eines NTFS-Streams.
Das Beispiel geht der Kürze halber davon aus, dass sich Calc.EXE im aktuellen Verzeichnis befindet:
type calc.exe > dummy.txt:calc
wmic process call create "dummy.txt:calc"

Funktioniert wahrscheinlich nur unter älterem XP.
————————————————————
Einfache Where-Filter
Das Filtern der Instanzen geschieht immer mit dem Schlüsselwort „Where“ unmittelbar nach dem Klassennamen. Die wenigsten Syntaxprobleme sind zu erwarten, wenn Sie die Filterklausel immer in doppelte, eventuelle String-Eigenschaften in einfache Anführungszeichen setzen:
Mit nachfolgendem Befehl werden aus allen Instanzen der Klasse „Process“ jene mit dem Namen „Iexplore.exe“ ausgefiltert und mit der „Terminate“-Methode beendet:
wmic process where "name='iexplore.exe'" call terminate

Einfacher Where-Filter: Von den Systemdiensten nur Eigenschaften der aktuell gestarteten Dienste auflisten:
wmic service where (state="running") get caption, name, startmode, state

Where-Filter mit logischem „UND“:
wmic datafile where "drive='c:' and extension='JPG' and filesize

Beispiel für eine-Methode, die zwingend (irgend) einen Where-Filter voraussetzt:
wmic process where "status='ok'" call shutdown

Process-Filter mit dem „Like“-Operator:
wmic process where "name like '%xplore%'" call terminate

Where-Filter mit dem „Like“-Operator (nur damit lassen sich alle Unterverzeichnisse beim Alias „Datafile“ anprechen):
wmic datafile where "drive='d:' and path like '%backup%'" call compress

Methode „SetPriority“:
wmic process where "name='winword.exe'" call setpriority 64
————————————————————

Der Einsatz weiterer Klassen jenseits der vordefinierten Aliases:
Die in den 71 als Alias vorgegebenen Klassen in Wmic sind nicht alles: Wmic kann unabhängig der vordefinierten Aliases jede weitere der mehr als 2000 Win32-Klassen ansprechen. Dies geschieht statt wie mit „wmic “ mit

wmic path ...
Die restliche Syntax ist wie bei den vorgegebenen Alias-Aufrufen: -etwa:
wmic path Win32_ServerConnection get computername,numberoffiles,username
wmic path Win32_Currenttime get /value
wmic path Win32_CodecFile get name,filename,description

Eine Übersicht der vordefinierten Aliases und ein Kozlovs WMI-Explorer zum Durchsuchen der zahlreichen WMI-Klassen finden Sie hier.
————————————————————

Weitere Beispiele und Optionen

„Get“ oder „List“ in Kombination mit dem Schalter „/Every“ – die Aktion erfolgt dann im angegebenen Sekundenintervall:

wmic cpu get loadpercentage /every:3
wmic os get FreePhysicalMemory /every:30
wmic /append:connect.htm path win32_sessionconnection get /Format:hform /every:30

Das folgende, komplexere Aufrufbeispiel kombiniert folgende Aktionen:

  • Append-Ausgabe (Anhängen an bestehende Datei)
  • Where-Filter
  • Auswahl zweier Eigenschaften mit „Get“
  • Wiederholen mit /Every
  • Formatwahl HTML

wmic /append:"c:\wmic.htm" process where "WorkingSetSize > 20000000" get name,workingsetsize /every:10 /format:htable
————————————————————
Einfache Logon-Aufzeichnung:
wmic netlogin get name,numberoflogons
————————————————————
Direkte Wmic-Auswertung auf Batch-Ebene oder Kommandozeile:
for /F "delims== tokens=1" %n in ('wmic os get serialnumber') do set sn=%n
————————————————————
Umwandlung des Wmic-Outputs in Ascii (mit Type, Sort oder Find):
wmic nicconfig get /value | type > nic.txt
————————————————————
Autostart-Check (umfasst Autostart-Ordner und Registry-Schlüssel „Run“):
wmic startup get /value
————————————————————
Eigenschaften der Netzwerkkarte auslesen
wmic nicconfig where index=1 get /value
wmic nic get index,name
————————————————————

Der /Node-Schalter
/Node: führt Wmic-Befehle auf anderen PCs aus. Die Syntax ab dem Alias (oder der „Path“ angegebenen Klasse) ist identisch mit der lokalen Anwendung von Wmic:
wmic /node: /user: /password:[Kennwort] [Befehl]
————————————————————
Shutdown-Varianten: Neustart
wmic os where "status='ok'" call reboot

Shutdown-Varianten: PC abschalten
wmic os where "status='ok'" call shutdown

Shutdown-Varianten: User abmelden
wmic os where "status='ok'" call Win32Shutdown 0

Shutdown-Varianten: Herunterfahren
wmic os where "status='ok'" call Win32Shutdown 1

Shutdown-Varianten: Neustart
wmic os where "status='ok'" call Win32Shutdown 2

Shutdown-Varianten: Herunterfahren erzwingen
wmic os where "status='ok'" call Win32Shutdown 4

Shutdown-Varianten: PC abschalten
wmic os where "status='ok'" call Win32Shutdown 8

Windows-Suche für Profis

Die Windows-Suche kann Dateien sammeln und das Ergebnis als „Gespeicherte Suche“ quasi als virtuellen Ordner ablegen. Die Anwendungsmöglichkeiten für Datendateien wie für Systemfunktionen sind unerschöpflich. Als Anregung für eigene Phantasie soll ein einziges Beispiel dienen. Es sammelt alle MSC-Dateien (Management-Konsolen), CPL-Dateien (Systemsteuerungsapplets) und Systemprop-Files zusammen und produziert im Ergebnis eine Art Superzentrale für die Windows-Konfiguration.
Gehen Sie mit dem Explorer zum Ordner %windir%\System32. Im Suchfeld des Explorers (rechts oben) geben Sie dann auf deutschem Windows folgendes Suchkommando ein:

(erweiterung:(cpl OR msc) OR name:systemproperties*.exe) ordnername:NOT en-us NOT de-de

Der vordere Teil in der Klammer ist weitgehend selbsterklärend. Der Rest filtert noch einige MUI-Dubletten der Unterordner \de-de und \en-us weg.
Das Ergebnis der Suche sieht dann wie folgt aus:

Virtueller Ordner nach komplexer Suche im Windows-Explorer

Die Syntax haben Sie morgen wieder vergessen. Deshalb sollten Sie einen gelungenen Filter mit „Suche speichern“ dauerhaft ablegen. Dann können Sie nicht nur den Filter per Klick auslösen, sondern außerdem in der XML-Datei mit der Endung .search-ms unter %userprofile%\Searches jederzeit die Suchsyntax nachschlagen.