Autorun
Autorun ist die Funktion von Windows, Datenspeicher automatisch zu durchsuchen und Dateien automatisch zu öffnen beziehungsweise auszuführen, sobald die Datenträger für das Betriebssystem verfügbar sind. Dadurch kann beispielsweise beim Einlegen einer CD oder DVD automatisch ein Installationsprogramm starten. Für Dateien auf Disketten und in Rechnernetzen war die Funktion zunächst gesperrt.[1]
Windows
Windows sucht im Stammverzeichnis des Datenspeichers nach eindeutigen Informationen über dessen zugedachten Verwendungszweck. Dazu kann eine bekannte Dateinamenserweiterung dienen oder eine Konfigurationsdatei mit dem Namen autorun.inf. In einer solchen Datei wird ausdrücklich festgelegt, wie das System verfahren soll. Diese Funktion sollte nicht mit der Autoplay Funktion verwechselt werden, welche, unabhängig von der Autorun-Funktion lediglich beim Einlegen einer CD oder DVD deren Mediendateien automatisch abspielt.
Sicherheitsaspekte
Der Autostartmodus birgt ein hohes Sicherheitsrisiko. Durch ihn können völlig unbemerkt Schadprogramme installiert werden, da statt der unten beschriebenen Konfigurationsdatei auch ausführbare Programme unkritisch vom System verarbeitet werden, auch wenn diese nicht als Textdateien vorliegen, sofern diese nur den Dateinamen autorun.inf tragen. Die Benutzerprivilegien des Systems liegen dabei noch über den Privilegien des Administrators. Dieses Szenario ist nicht auf USB-Sticks und andere beschreibbare mobile Datenspeicher beschränkt, die zum Datenaustausch mit verschiedensten Computern verbunden werden. Selbst scheinbar harmlose Audio-CDs haben sich im Fall des Sony-BMG-Kopierschutzskandals als gefährlich erwiesen.
Autorun kann in der Windows-Registry abgeschaltet oder eingeschränkt werden.[1] Außerdem kann Autorun durch Halten der Umschalttaste während des Verbindens mit dem Datenspeicher temporär verhindert werden. Die Standardkonfiguration bei der Installation des Betriebssystems erlaubt jedoch die Ausführung dieser Funktion.
Autorun.inf
Bei dieser Konfigurationsdatei handelt es sich um ein gewöhnliches Textformat, in welchem Windows Shell-Kommandos (siehe u. a. Liste von DOS-Kommandozeilenbefehlen) durch Zuweisungen von Parametern notiert werden. Der notwendige Aufbau einer „autorun.inf“-Datei sieht wie folgt aus (Beispiel):
[AutoRun]
open=programm.exe
icon=programm.ico
action=Programm starten
Zeile 1 gibt an, dass dieses der auszuwertende Abschnitt der Autorun-Datei ist, Zeile 2 sagt aus, welche Programmdatei ausgeführt werden soll und Zeile 3 beschreibt, welches Icon für das sonst übliche Laufwerksicon benutzt werden soll. Werden keine Pfade angegeben, werden die Dateien im Hauptverzeichnis desselben Laufwerks erwartet. Es können auch relative Pfade verwendet werden. Die Option action
generiert den Eintrag „Programm starten“ in der ersten Zeile des AutoPlay-Auswahlfensters.
Mit folgender Zeile kann dem Datenträger ein Name zugewiesen werden:
label=Urlaubsbilder
Kontextmenü
Außerdem können zusätzliche Kontextmenüs (erscheinen üblicherweise durch Betätigen der rechten Maustaste) definiert werden. Dazu muss folgender Aufbau verwendet werden:
shell\Name1=Anzeige
shell\Name1\command=Pfad\program.exe
Jedes Kontextmenü muss eine eigene eindeutige Bezeichnung haben. Die erste Zeile legt fest, welcher Text im Kontextmenü angezeigt werden soll, die zweite Zeile enthält das zu startende Programm.
shell=
Name-n
legt fest, welche Bezeichnung die Standard-Aktivität sein soll – die vollautomatisch oder durch einen Doppelklick auf das Laufwerksymbol gestartet werden soll.
shell=
Kontext-Standard bekommt offenbar Vorrang vor dem älteren open/shellexecute. Beide Varianten können gleichzeitig angegeben werden. Dann sollte jedoch die Beschriftung von shell\
Kontext-Standard=
und action=
sowie die resultierende Wirkung gleich sein, um Nutzer nicht durch unterschiedliches Verhalten auf verschiedenen Systemen zu verwirren.
Hotkey
Wie bei anderen Menüs in Windows auch lassen sich Hotkeys definieren. Dabei wird dem gewünschten Kennbuchstaben ein &
vorangestellt. Bei der Auswahlanzeige wird dieser Buchstabe dann unterstrichen dargestellt und das Menüfeld kann durch Eingabe dieses Buchstabens auf der Tastatur ausgewählt und das Programm unmittelbar gestartet werden.
shell\view=A&nzeige
shell\view\command=Pfad\viewer.exe
shell\info=&Info
shell\info\command=Pfad\info.exe
sorgt dafür, dass beim Drücken von n der erste Eintrag und bei Drücken des i der zweite Befehl gestartet wird. Mehrere Befehle mit gleichem HotKey in diesem Kontextmenü sollten vermieden werden; das Verhalten ist dann nicht vorhersagbar und es könnte zu unerwünschter Programmausführung kommen.
Nicht-ausführbare Dateien (Dokumente)
Oft sollen HTML-Dateien angezeigt werden – jedoch mit dem Standardbrowser des momentanen Benutzers und nicht zwangsläufig mit open=iexplore.exe index.htm
(Microsoft Internet Explorer). Auch Audio/Video-Dateien sollen mit dem Standardplayer des gerade benutzten PC abgespielt werden; das ist nicht immer der Windows Media Player – der bei Windows XP mplay32.exe
hieß und inzwischen als wmplayer.exe
anzugeben wäre.
shellexecute=
MySlides.ppt [Parameter]
startet die angegebene Powerpoint-Präsentation, ohne dass beim Herstellen des Datenträgers bekannt sein muss, welcher Version welchen Office-Paketes unter welchem Betriebssystem auf dem später benutzten Rechner die Dateiendungppt
zugeordnet ist, wie beispielsweise die EXE-Datei heißt und in welchem Pfad sie zu suchen wäre.
Hinweis: open
erhält Vorrang vor shellexecute
– es sollte also nur eines angegeben werden.
Das command
im Kontextmenü ist wie auch open
immer auf eine ausführbare Datei (EXE, CMD, BAT) angewiesen. Um das zu erreichen, gibt es folgende Möglichkeiten:
- Funktioniert mit allen Dokumenten, nicht nur solche für den Browser. Der Datei-Typ muss dem Benutzer aber unbedingt schon bekannt sein.
- (Schrägstriche „Normal“ im Pfad;
file:
entspricht demhttp://
und muss dem Pfad vorangestellt werden)- shell\RunDLL=Standardbrowser
- shell\RunDLL\command=RunDLL32.exe url.dll,FileProtocolHandler file:README/survey.html
- Weil auf Doppelklick etwas anderes kommt, kann man noch ein Verzeichnis anbieten:
- shell\Explorer=Explorer Benutzerdaten
- shell\Explorer\command=Explorer.exe /e, Benutzerdaten\
- Programm zum Öffnen von „multimedia.xyz“ anbieten, ggf. auswählen:
- shell\openwith=ShockFlashZoing
- shell\openwith\command=RunDLL32.exe shell32.dll,OpenAs_RunDLL multimedia.xyz
- Mit aufflackerndem Konsolenbildschirm dazwischen, nicht so schön:
- shell\CMD=Kommandozeileninterpreter
- shell\CMD\command=cmd.exe /c start index_DieseDVD.html
- Standard-Aktion festlegen:
- shell=RunDLL
- (Schrägstriche „Normal“ im Pfad;
Festplatten
Es lassen sich nicht nur Wechselmedien, sondern auch Festplatten mit autorun.inf ausstatten. Damit wären Icons auf dem „Arbeitsplatz“ darzustellen, also beispielsweise ein auffallendes Symbol für die Systempartition C:
und andere dagegen zur Charakterisierung von Datenpartitionen sowie freigegebener Ordner im Netzwerk.
Diese erscheinen auch, wenn Ordner zur Abspeicherung angeboten werden, erleichtern damit die schnelle Orientierung und vermeiden eine Auswahl des falschen Ordners.
Auch Aktionen (Doppelklick und Kontextmenü im Arbeitsplatz) können genauso definiert werden; der label
gewinnt meist die Oberhand über Partitions- und Freigabenamen.
Änderungen werden wirksam, wenn die Verbindung erfolgt bzw. der PC gebootet wird.
Bei Disketten wird autorun.inf allerdings nicht „von selbst“ Aktionen ausführen können.
Letzten Endes sind die autorun.inf (wie auch die desktop.ini) immer nur Hinweise (hints) für das Betriebssystem. Ob eine bestimmte Windows-Version dem folgen kann oder ob diese Funktionalitäten bewusst – beispielsweise aus Sicherheitsgründen – abgeschaltet sind, entscheidet sich im konkreten Einzelfall.
Andere Betriebssysteme
Die AutoRun-Datei ist im Klartext für andere Betriebssysteme (wie Linux[2] oder Mac) lesbar. Mittlerweile ist die Erkennung der Microsoft-autorun.inf oft schon integriert. Zumindest sind Werkzeuge vorhanden, die auf das Einlegen eines Mediums hin nach einer autorun.inf-Datei suchen, ihren Abschnitt [AutoRun] lesen und je nach Wunsch reagieren; entsprechende Skripte können leicht neu geschrieben werden.
Dazu eignen sich insbesondere die neutralen Einträge
label=
icon=
shellexecute=
Windows-Symbol-Dateien, Icons, haben ein altbekanntes, einfaches Format, das andere Betriebssysteme meist problemlos anzeigen oder vorübergehend geeignet konvertieren können. Hier ist eine einzelne ICO-Datei zu verwenden, kein Abschnitt aus einer .EXE oder .DLL.
Auf shellexecute
hin wäre, sofern er bekannt ist, der entsprechende Dateityp zu öffnen; Dokumentenformate wie HTML, TXT, PDF, Multimedia, DOC oder DOCX sind hier aussichtsreich.
Diese Dateien sollten sicherheitshalber im Hauptverzeichnis des Mediums stehen, da ein fremdes Betriebssystem Schwierigkeiten mit dem Pfadtrennzeichen \
haben könnte (es wird /
erwartet).
Es ist jedoch ohnehin empfehlenswert, dass im Hauptverzeichnis stets ein README/LIESMICH, index.html oder Ähnliches vorhanden ist, wenn der Datenträger in andere Hände gegeben wird – so dass das Medium leicht „von Hand“ gelesen werden kann, wenn Probleme mit Auto-Optionen auftreten oder unbekannte Automatismen unerwünscht sind.
Siehe auch
Weblinks
- Autorun-Erweiterung zum automatischen Öffnen von Dokumenten und portabler Software auf USB-Stick
- MSDN:
- Autorun.inf Entries (englisch)
- Enabling and Disabling AutoRun (englisch)
- Autoplay in Windows XP: Automatically Detect and React to New Devices on a System. Magazine 2001/11 (englisch)
Einzelnachweise
- ↑ a b Deaktivieren der Autorun-Funktionalität in Windows. Microsoft, abgerufen am 27. August 2010.
- ↑ autorun.inf Funktionalität in Ubuntu Linux. Ubuntuusers.de, archiviert vom am 9. Mai 2013; abgerufen am 9. Juni 2013.