Gibt es verschiedene DISM.exe komands?

3 Antworten

Wenn Du ein Programm ohne Pfadangabe und/oder Dateiendung aufrufst, begibt sich das Betriebssystem auf folgende Suche:

  • Im aktuellen Ordner nach einer Datei mit dem angegebenen Namen und einer In der Umgebungsvariable %PathExt% definierten Datei schauen. und wenn eine solche vorhanden ist ausführen.
  • Ist dort keine vorhanden werden alle in der Variable %Path% definierten Ordner in gleicher Weise "abgeklappert" bis eine Datei gefunden wird (oder nicht)

Die genannten Variablen kannst du mit folgenden Kommandos anzeigen:

echo %PathExt%
echo %Path%
set Path

set gefolgt von ersten Teil eines VariablenNamen zeigt alle Variablen an, welche in gleicher Weise beginnen.

Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC

...wenn Du also dism eingibst, sucht das System automatisch nach dism.com, dism.exe, dism.bat, dism.cmd, .....

...im Aufrufordner, C:\WINDOWS\system32 (dort findet er dism.exe, wenn ein nicht zuvor eine andere Datei mit einer der Endungen gefunden hat) wenn man absolut sicher sein möchte, das man nicht aus versehen eine andere Datei mit gleichem Namen aufruft. sollte man sogar...

C:\Windows\System32\Dism.exe  .......

...verwenden. (macht nur kaum jemand)

Rein Theoretisch könnte ein böswilliger Mensch einen Virus dism.com nennen und ins Sytemverzeichnis kopieren. Dieser würde dann vor dism.exe erkannt. Dito gilt auch, wenn man einen eigenen Pfad an den Beginn der Path-variable einfügt! Deshalb , sollte man sich möglichst eindeutig auf das gewünschte Programm verweisen.

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren

Petersilie858 
Beitragsersteller
 20.08.2023, 09:39

Vielen dank

Das ist ganz einfach, da DISM ein Systemkommando ist und sich in System32 befindet, kennt CMD/PowerShell es. du musst also nicht die Extension mitgeben, da Windows das in diesem Falle selber vervollständig.

Gleiches gilt auch für slmgr, gibts in der Geschmacksrichtung slmgr.vbs und slmgr ohne vbs, beides gleich ;)

Woher ich das weiß:Berufserfahrung

ihavenoideahow  19.08.2023, 22:01

Also generell Programme kann man, sofern man sich in dem Verzeichnis dieser befindet, auch ohne exe aufrufen. Bestimmte Endungen sind dafür einfach mit vorgesehen ^^

Petersilie858 
Beitragsersteller
 19.08.2023, 22:03

Also sind die beiden Befehle das gleiche?

Erzesel  20.08.2023, 00:40

CMD/PowerShell kennt es nicht! Allein der Verweis auf "c:\Windows\System32" in der Path-Variable und die eingetragene Endung .exe in der Variable PathExt Erlauben von der jeweiligen Shell-Session aufgerufenen systemnahen Funktionen die automatische Zuweisung. Die Shells wie cmd, Powershell , Explorer, etc. haben damit nichts zu schaffen die geben nur "Aufträge" weiter...

Du kannst ja mal spaßeshalber die Variablen ändern :

set PathExt=.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
dism

dito nach entfernen de Systempfades

Path=C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\
dism

Keine Sorge, set ändert ledig die Variablen-Kopie der aktuellen Session. Wird diese beendet, gilt wieder das in der Registry gespeicherte Orginal bzw. für Normalnutzer die Session-Kopie des Explorers/Desktop.

ihavenoideahow  20.08.2023, 06:46
@Erzesel

Es ist in diesem Fall eine etwas vereinfachte Antwort, ich hätte natürlich auch noch auf PATH eingehen können aber da die Frage nicht war; wie geht das oder kann mir das das jemand genauer erklären habe ich mich für eine mehr oder weniger leicht verständliche Antwort entschieden ^^

CMD Befehle sind nichts anderes als exe Dateien, die in system32 liegen. Somit werden die exe Dateien als Befehle erkannt und es kann ohne die Dateierweiterung darauf zugegriffen werden. Da CMD es aber auch zulässt, einfache Dateien auszuführen, kann auch die Dateierweiterung dazu angegeben werden, ohne die Funktion zu beeinträchtigen.

Woher ich das weiß:Hobby – Beschäftige mich seit einiger Zeit mit Computersystemen

Petersilie858 
Beitragsersteller
 19.08.2023, 22:16

Den ersten teil hab ich verstanden aber das mit dateierweiterung versteh ich nicht ganz.

ntlkr  19.08.2023, 22:22
@Petersilie858

Sorry, war ein bisschen faul beim Schreiben. Ich meine einfach die Dateinamenerweiterung, also das .exe