Wie stelle ich den Standardbrowser in Windows 7 per Skript ein?

1

Ich arbeite an einem System-Imaging-Prozess, bei dem sowohl Chrome als auch Firefox unbeaufsichtigt installiert werden. Ich versuche, eine Möglichkeit zu finden, Firefox als Standardbrowser sowohl für den Systemstandardbenutzer (so dass für jeden neuen Benutzer, der sich anmeldet, FF als Standard festgelegt ist) als auch für den aktuellen Benutzer festzulegen.

In den Firefox-Dokumenten heißt es, dass dies das erreichen sollte, aber es funktioniert nicht:

firefox.exe -silent -setDefaultBrowser

Wenn ich den Prozessmonitor verwende, kann ich sehen, dass der obige Befehl eine Reihe von Dingen in der Registrierung ausführt, aber nachdem ich ihn ausgeführt habe, wurde mein Standardbrowser nicht auf Firefox eingestellt.

Wenn ich Firefox öffne und zu Extras> Optionen> Erweitert gehe und auf die Schaltfläche FF als Standardbrowser festlegen klicke, funktioniert dies.

Das Problem ist, dass ich nicht jedes Mal manuelle Schritte ausführen muss, wenn ein neuer Laptop bereitgestellt wird. Daher muss ich einen Weg finden, um dasselbe über die Befehlszeile zu erreichen.

Ich habe versucht, mithilfe des Prozessmonitors festzustellen, welche Werte Firefox beim Klicken auf diese Schaltfläche festgelegt hat, damit ich sie manuell auf eine andere Weise duplizieren kann. Wenn ich jedoch in FF procmon auf die Schaltfläche zum Festlegen der Standardeinstellungen klicke, werden im wahrsten Sinne des Wortes über 250 Registry-Schreibvorgänge von firefox.exe und angezeigt Ich möchte sie nicht wirklich alle aufspüren.

Kann mir jemand helfen, herauszufinden, warum firefox.exe -silent -setDefaultBrowser nicht funktioniert oder eine andere Möglichkeit bietet, FF als Standardbrowser des Systems / Benutzers festzulegen?

vrtigo1
quelle
Bei einer Änderung des Standardbrowsers aller Benutzer erledigt ein Skript diese Aufgabe nicht und die Browser-Installer erledigen dies nicht für Sie. Der Standardbrowser wird in den Unterschlüsseln der \Software\ClassesTasten HKEY_LOCAL_MACHINEund konfiguriert HKEY_CURRENT_USER. (Und es gibt eine Menge - Sie müssen für jeden Dateityp und jede Aktion, die der Browser ausführen soll, Rechenschaft ablegen.) Sie können eine globale Einstellung in HKLM konfigurieren, aber die meisten verantwortungsbewussten Browser-Installer legen sie nur in HKCU fest. Selbst wenn Sie es in HKLM ändern, werden widersprüchliche Einstellungen in HKCU es überschreiben. Um dies zu beheben, benötigen Sie eine Gruppenrichtlinie.
Iszi
Wenn dies eine Software/ClassesÄnderung ist, warum kann ein Prozess auf Kontoebene sie nicht ändern? Ist es eine Gewissheit, dass es unter sein muss HKLM? Als Referenz ich bin der Lage , ein Konto-Level - Prozess zu schreiben , die einen eigenen Register - mymadeupurihandler://mywebsite.comHandler.
Katana314

Antworten:

4

Die Registrierung erfolgt durch die helper.exe

C:\Program Files (x86)\Mozilla Firefox\uninstall\helper.exe /SetAsDefaultAppGlobal

Der Vollständigkeit halber, wenn jemand den Standardbrowser nur für den aktuellen Benutzer ändern möchte

C:\Program Files (x86)\Mozilla Firefox\uninstall\helper.exe /SetAsDefaultAppUser

paa
quelle
Dies setzt in der Tat den Standardbrowser für den aktuellen Benutzer, also danke dafür! Wenn ich mich nach dem Ausführen dieser Befehle bei einem neuen Profil auf dem PC anmelde und einen Weblink öffne, wird dieser in Firefox geöffnet. Firefox teilt dem Benutzer jedoch weiterhin mit, dass es sich nicht um den Standardbrowser handelt, und fragt ihn, ob er ihn als solchen festlegen möchte. Gibt es eine Möglichkeit, das zu verhindern?
Vrtigo1
Starten Sie das neue Profil mit derselben ausführbaren Firefox-Datei?
paa
Ich habe nicht nein. Ich dachte, der erste Befehl, den Sie angegeben haben, sollte FF als Standard für den Standardsystembenutzer festlegen (dh jedes neue Profil, das erstellt wird).
Vrtigo1
Dann denke ich mit neuem Profil meinst du neues Windows Benutzerkonto. Ja, ich habe bestätigt, dass Konten, die nach Firefox erstellt wurden, als Standardbrowser festgelegt wurden. Ignorieren Sie diese Einstellung. Ich denke, Sie sollten fragen, ob es eine Gruppenrichtlinie gibt, die es ermöglicht, ein Skript einmal auszuführen, wenn sich ein Benutzer zum ersten Mal anmeldet.
paa
Ich bin nicht sicher, ob es eine gibt, aber es gibt definitiv eine Option zum Ausführen von Skripten, wenn sich ein Benutzer anmeldet. Es ist einfach genug, dass das Skript eine leere Textdatei irgendwo unter dem Profilordner des Benutzers erstellt, damit das Skript erkennen kann, ob es bereits ausgeführt wird und wenn ja, nicht erneut. Ich schätze, ich werde diesen Weg gehen.
Vrtigo1
0

Ich habe das selbst nicht ausprobiert, aber Sie können es möglicherweise einstellen, HKEY_CLASSES_ROOT\http\shell\open\commandum dies zu erreichen.

Reubend
quelle