Ein Windows- und OS Es entpackt die mehreren Archivebenen innerhalb des flachen Pakets und wenn das Skript unter Windows mit der Option --install
ausgeführt wird, führt es auch das 64-Bit-MSI-Installationsprogramm aus.
Unter Windows werden die Archive mit 7-Zip entpackt, und das 7-Zip-MSI wird heruntergeladen und installiert und später entfernt, wenn Brigadier es installiert hat. Dieses Tool verwendete früher dmg2img, um Dateien aus der WindowsSupport.dmg
Datei von Apple zu extrahieren. Neuere Versionen von 7-Zip bieten jedoch eine umfassendere Unterstützung für DMGs, sodass dmg2img offenbar nicht mehr benötigt wird.
Dies wurde aus zwei Gründen geschrieben:
Es war ursprünglich als Post-Imaging-Schritt für Boot Camp-Bereitstellungen auf Macs konzipiert, da es jedoch eine Netzwerkverbindung erfordert, muss bereits ein Netzwerktreiber auf dem System verfügbar sein. (Siehe Vorbehalte unten)
Brigadier hat mit einigen Kombinationen von Treiberpaketen und Hardwaremodellen in den letzten Versionen von Boot Camp 5 und jetzt mit Boot Camp 6 keine besonders guten Ergebnisse erzielt. Einige Leute haben Probleme mit Boot Camp 6 und Windows 7 im Allgemeinen bestätigt, daher diese Möglicherweise liegt es nicht ausschließlich an Brigadier. Eine Untersuchung der Boot Camp setup.exe
zeigt mir, dass diese ausführbare Datei mehrere Aufgaben ausführt und eine Umgebung für die eventuelle Ausführung von BootCamp.msi
einrichtet, was wir mit Brigadiers einfachem Aufruf von msiexec
zur Installation nicht immer erreichen können MSI direkt.
Ich kenne mich bei weitem nicht gut genug mit Windows-Interna aus, um zu verstehen, wie man eine vollautomatische Version dessen ausführen kann, was setup.exe tatsächlich tut (abgesehen davon, dass man schließlich msiexec /i /qr
auf dem MSI ausführt). Diese PR legt beispielsweise nahe, dass bessere Ergebnisse erzielt werden können, wenn andere „ruhige“ Optionen als msiexec
verwendet werden. Eine Zerlegung von setup.exe
zeigt jedoch, dass es tatsächlich /qr
ausführt, ebenso wie der Code im aktuellen Master-Zweig. Ich habe das Gefühl, dass ich nicht über genügend Wissen verfüge, um eine Antwort auf diese Art von Frage zu finden.
Es gab auch seltsame Probleme, die ich vor ein paar Jahren erlebt habe. Zum Beispiel ein einzelnes Treiberinstallationsprogramm (bezogen auf den Intel-Chipsatz), das eine Reihe von WinRAR-SFX-Fehlern anzeigt, weil es versucht, alle Lokalisierungsdateien des Treibers (die nicht einmal ausführbar sind) nacheinander auszuführen. Ein einfaches Durchklicken dieser Dialoge führt schließlich dazu, dass die Installation fortgesetzt wird. Bis dahin ist der Vorgang jedoch blockiert. Dieser Fehler tritt nicht auf, wenn ein Benutzer manuell setup.exe
ausführt, aber warum, ist mir nicht klar.
Ich habe zwar noch eine gewisse Hoffnung, diese Probleme lösen zu können, aber der Anwendungsbereich meiner Umgebung für Dual-Boot-Labore schrumpft, und daher ist es schwierig, den Zeitaufwand für die weitere Erforschung dieser Probleme zu rechtfertigen. Wenn jemand, der sich mit dem Umkehren von setup.exe
-ähnlichen Installer-Wrappern und MSI-Installern sowie mit der Windows-Systemverwaltung im Allgemeinen auskennt, daran interessiert ist, die derzeit etwas defekte Unterstützung für unbeaufsichtigte Installationen von Boot Camp-Treibern in diesem Tool zu beheben, würde ich das gerne tun Ich liebe etwas Hilfe! Es gibt mehrere Installationsprogrammeigenschaften in BootCamp.msi
, die bei diesem Problem ebenfalls hilfreich sein können.
Führen Sie Brigadier ohne Optionen aus, um die für dieses Modell gültige ESD herunterzuladen und in das aktuelle Arbeitsverzeichnis zu entpacken. Unter OS Unter Windows werden die Treiberdateien extrahiert.
Führen Sie es mit der Option --model
aus, um ein alternatives Modell in der Form MacPro3,1
usw. anzugeben.
Führen Sie es zum Herunterladen und Installieren mit der Option --install
aus und löschen Sie die Treiber nach der Installation. Dies funktioniert offensichtlich nur unter Windows. Diese Option wurde für die automatische Installation der Boot Camp-Treiber entwickelt.
Platzieren Sie eine brigadier.plist
Datei im selben Ordner wie das Skript, um die .sucatalog-URL zu überschreiben und auf einen internen Software Update Server-Katalog zu verweisen (Details unten).
Weitere Optionen siehe unten.
Eine vorkompilierte Binärdatei für Windows finden Sie im Release-Bereich. Dies kann nützlich sein, wenn Sie Python noch nicht unter Windows installiert haben. Dies wurde mit PyInstaller erstellt. Weitere Details zum Selberbauen finden Sie weiter unten.
Es kann auch direkt von einem Git-Checkout unter OS X oder Windows ausgeführt werden.
Neben einigen Befehlszeilenoptionen:
Usage: brigadier [options]
Options:
-h, --help show this help message and exit
-m MODEL, --model=MODEL
System model identifier to use (otherwise this
machine's model is used).
-i, --install After the installer is downloaded, perform the install
automatically. Can be used on Windows only.
-o OUTPUT_DIR, --output-dir=OUTPUT_DIR
Base path where the installer files will be extracted
into a folder named after the product, ie.
'BootCamp-041-1234'. Uses the current directory if
this option is omitted.
-k, --keep-files Keep the files that were downloaded/extracted. Useful
only with the '--install' option on Windows.
Sie können auch eine brigadier.plist
-XML-Plist-Datei erstellen und diese im selben Verzeichnis wie das Skript ablegen. Es unterstützt derzeit einen Schlüssel: CatalogURL
, eine Zeichenfolge, die auf eine interne SUS-Katalog-URL verweist, die BootCampESD-Pakete enthält. Sehen Sie sich das Beispiel in diesem Repo an.
Es ist üblich, die Boot Camp-Treiber während einer Sysprep-Phase nach dem Imaging auszuführen, sodass es möglich ist, dasselbe Image auf verschiedenen Modellen bereitzustellen, ohne das Modell und das erforderliche Boot Camp-Paket zu berücksichtigen. Brigadier scheint sich im Kontext eines SysPrep FirstLogonCommand zu verhalten.
Es gibt eine Problemumgehung, die das Skript bei der Ausführung in diesem Szenario durchführt, wobei die aktuelle Arbeitsumgebung normalerweise windowssystem32
lautet. In meinen Tests auf einem 64-Bit-System hörte das MSI auf, seine Installationskomponenten zu finden, da Windows seinen System32
Ordner für 32-Bit-Anwendungen in SysWoW64
verzweigt. Wenn das Skript dieses Arbeitsverzeichnis erkennt, ohne dass die Option --output-dir
es überschreibt, legt es das Ausgabeverzeichnis auf das Stammverzeichnis des Systems fest, d. h. %SystemRoot%
.
Wenn --install
verwendet wird, werden standardmäßig die extrahierten Dateien nach der Installation bereinigt, es sei denn, die Option --keep-files
ist angegeben. Wenn Sie die Dateien also nicht behalten möchten, sollten Sie danach keine Bereinigung durchführen müssen .
Wenn Sie es lieber als Standard-Python-Skript ausführen möchten, benötigen Sie Python für Windows (dies wurde mit der neuesten Version 2.7 getestet), um das Skript auszuführen.
Wenn Sie es lieber selbst erstellen möchten, können Sie das mitgelieferte Build-Skript verwenden. Es erfordert Python und die passende Version von pywin32. Es übernimmt das Herunterladen von PyInstaller für Sie. Führen Sie es einfach ohne Argumente aus und es wird eine ZIP-Datei im aktuellen Arbeitsverzeichnis erstellt:
c:python27python build_windows_exe.py
Unter OS Unter Windows:
WindowsSupport.dmg
im Paket zu extrahierenC:WindowsINF
auf einem sysprepierten Image zu platzieren. Dieser Ordner ist der Standardsuchort für Gerätetreiber und sollte die hier befindlichen Treiber für alle unbekannte Hardware automatisch erkennen und installieren. Sie können auch den DevicePath
Registrierungsschlüssel ändern, um einen benutzerdefinierten Speicherort hinzuzufügen. Wenn Sie jedoch den vorhandenen INF
Ordner verwenden, sind außer einer Dateikopie keine weiteren Änderungen erforderlich, um die Treiber eines vorhandenen Images zu aktualisieren. Dies kann also erfolgen, ohne das Image tatsächlich wiederherzustellen und zu starten nur um einen Treiber zu installieren. Die Offline-Treiberwartung mit Windows und DISM ist für WIM-Images einfach, aber die meisten Administratoren stellen WIM-Images wahrscheinlich nicht auf Macs bereit, sondern verwenden Tools, die ntfsprogs umschließen.brigadier.plist
das Überschreiben dieser URLs durch Ihre eigenen Kopien, die auf einem privaten Webserver gespeichert sind.FirstTimeRun
-Registrierungsschlüssel auf HKEY_CURRENT_USERSoftwareApple Inc.Apple Keyboard Support
gesetzt, um das Boot Camp-Hilfe-Popup beim ersten Start zu deaktivieren. Derzeit gibt es keine Option, dieses Verhalten zu deaktivieren.