PROJEKT: Erstellung einer angepassten Win10 Installation für Business-Nutzer

Dieses Thema im Forum "Tech & FAQ Forum" wurde erstellt von SkAvEnGeR, 23 Mai 2019.

  1. SkAvEnGeR

    SkAvEnGeR Master of Tools

    Registriert seit:
    21 Mai 2001
    Beiträge:
    5.508
    Hallo Leute,

    ich beschäftige mich nun eine Weile mit Windows 10 und habe es schon x-mal auch im Business-Bereich installiert. Leider ist die Standard-Installation von Win10 Pro mit viel Müll versehen, der mMn im Business-Bereich nicht benötigt wird und oft auch nervend ist.

    Mein Ziel ist es, ein angepasstes Installations-Medium zu erstellen, das nach eigenen Wünschen und Erfahrungen entschlackt und modifiziert ist. Als Basis dienst die aktuelle ISO der Win10 1903.

    was ich möchte:
    • Entfernen aller oder ausgewählter "provisioned Apps"
    • Entfernen unnötiger Funktionen
    • Aktivieren/Deaktivieren zusäztlicher Features
    • vordefinieren von Datenschutzeinstellungen für alle Benutzer-Accounts
    • vordefinieren diverser Windows-Einstellungen für alle Benutzer-Accounts
    • deaktivieren des Schnellstarts
    • Anpassung von UAC-Einstellungen
    • Anpassung vom Windows-Verhalten bezüglich Treiber-Downloads und -Updates
    • optional: starten einer Oberflläche mit selektiver silen Installation von Software (WIHU/WinPKG)
    • dieses System soll auf jeder aktuellen Hardware installierbar sein

    was ich NICHT möchte:
    • automatisches Anlegen von Benutzern
    • automatische Partitionierung/Formatierung
    • ein fertig installiertes System, das dann nur noch geclont wird

    Ziel:
    ein universell nutzbarer Install-Stick mit Windows 10, der an die Bedürfnisse einer Produktiv-Umgebung angepasst ist und auf jeder aktuellen Hardware installierbar ist.
    Vom Prinzip her wie eine erweiterte OEM-Installation.

    Ich habe bereits eine Menge an Infos, Scripts, Tools und PS-Befehlen gesammelt und erste Erfolge erziel.
    Trotzdem möchte ich ghier gerne mit geballter Schwarmintelligenz Erfahrungen und Informationen sammeln um ein optimales Ergebnis zu erhalten.

    Über Hinweise, Tips, Anleitung etc. bin ich immer dankbar.
    Wenn ihr interessante Deployment-Suiten kennt, die ähnliches leisten können und einen Blick wert sind, dann freue ich mich auf eure Informatioen und Links.

    Was meint ihr zu der Idee? Was könnt ihr beitragen?

    Gruß
    skav
    Zuletzt bearbeitet: 23 Mai 2019
    user_99 sagt Danke.
  2. SkAvEnGeR

    SkAvEnGeR Master of Tools

    Registriert seit:
    21 Mai 2001
    Beiträge:
    5.508
    leer für spätere Verwendung
  3. chaospir8

    chaospir8 ★★★★★-Oldie

    Registriert seit:
    20 Juni 2001
    Beiträge:
    12.705
    Schlagwort: junk apps, debloat

    Lesestoff:
    https://techcommunity.microsoft.com...e-installed-apps-like-Candy-Crush/td-p/196408
    https://social.technet.microsoft.co...thout-all-the-junk-apps?forum=win10itprosetup

    Leider scheint es so was wie 98lite für Win10 nicht zu geben, mit dem man geführt ein abgespecktes Installationsmedium erstellen könnte.
    Auch gibt's hier Abhängigkeiten von Win10-Versionen, Lizenztyp, Anbindung an ADS, Wiedererscheinen des Mülls nach einem Win-Update, ...
    Scheint (vielleicht von MS absichtlich?) recht komplex zu sein.

    Das könntest Du versuchen:
    https://gallery.technet.microsoft.com/Removing-Built-in-apps-65dc387b

    Ich vermute jedoch, ein skriptgestütztes "nach dem Win10-Installier-Aufräumtool" wird einfacher zu realisieren / zu nutzen sein.

    Siehe:
    https://github.com/W4RH4WK/Debloat-Windows-10/blob/master/scripts/remove-default-apps.ps1


    -- edit --
    Es gibt doch 98lite-ähnliche Unterstützung, siehe
    NTLite
    https://www.ntlite.com/features/
    und
    MSMG Toolkit
    https://www.majorgeeks.com/files/details/msmg_toolkit.html
    Zuletzt bearbeitet: 23 Mai 2019
    SkAvEnGeR sagt Danke.
  4. SkAvEnGeR

    SkAvEnGeR Master of Tools

    Registriert seit:
    21 Mai 2001
    Beiträge:
    5.508
    @chaospir8 : Danke für die Hinweise. Da sind noch ein paar nette Sachen drin, die ich in meine Scripte übernehmen kann.

    Ich habe mir bereits eigene Scripte geschrieben, mit denen ich eine WIM mounten und dann entweder alle oder selektiv ProvisionedApps aus dem Image entfernen kann. Das klappt auch wunderbar. Und vor allem kommen diese entfernten Apps nach einem Feature-Update nicht wieder - hier getestet mit Upgrade von 1803->1809.

    ntlite ist auch ganz nett - hier ebenfalls im Einsatz
    MSMG-Toolkit ist sehr mächtig und relativ komplex, weshalb ich mich damit noch nicht weiter beschäftigt habe.
  5. GiveThatLink

    GiveThatLink Aktives Mitglied

    Registriert seit:
    25 Oktober 2009
    Beiträge:
    424
    Bgründe deine Arbeit auf der LTSC, die hat das meiste einer Pro erst gar nicht. Mehr "Business" geht nicht, ausser Enterprise. Irgendwo stimmt dann auch deine Definition von "Business" nicht mit der allgemein gültigen, weil Pimpen nicht dazu gehört, sondern die Remote-Veraltung, Domänenbetrieb etc bla.

    Gut, die LTSC bleibt 3 Jahre auf 1809 derzeit, wenn schon "Business", dann gehört eine Langzeitstabilität eher dazu, als wenn man Windows zu Krämpfen nötigt und dann eh alle halbe Jahre automatisch was neues bekommt und der Tanz von vorn beginnt. Das wäre dann nämlich schon unprofessionell.

    PS ntlite mindestens als Home lizensiert, besser als Pro, um alle Features von Windows zu erfassen. Kostet natürlich entsprechend.
  6. Rubb

    Rubb Rover

    Registriert seit:
    7 Oktober 2001
    Beiträge:
    7.561
    Ein paar Probleme die mir mit den Neuen Versionen (nach 1803 ...) begegnet sind ... (Falls hier unpassend, dann von Admin verschieben lassen)

    Hatte versucht, nach einem Artikel in der heise c't 2019-11 Seite 148 https://www.heise.de/select/ct/2019/11/1558361616502560 , über die Möglichkeiten Win 10 auf USB Stick "Zum Mitnehmen" zu basteln.

    Hatte mir eine Frische ISO 1809 von Mai 2019 heruntergeladen, hatte sie nach den heise Vorgaben mit rufus.ie auf einem USB-Stick installiert, konnte sie aber nicht booten .. (Boot Fehler wurde gemeldet). Bin der Sache noch einmal nachgegangen und über ein Posting bei rufus.ie gestolpert mit folgenden Hinweisen

    Hier ein Ausschnitt, das man die Datei "WppRecorder.sys" austauschen sollte, da im Neuen OS die Datei nicht mehr arbeitet
    Leider war die Datei so "Schreibgeschützt" das mir ein Austauch nicht gelungen war. :icon_tsts:

    (weiteres siehe unten)

    BSODs with Windows To Go drives created from Windows 10 1809 ISOs
  7. Dr.Windos

    Dr.Windos Chef

    Registriert seit:
    13 Mai 2001
    Beiträge:
    650
    Hallo Zusammen,

    ich kann nur aus eigener Erfahrung berichten, wie ich meine angepassten ISO's seit Jahren erstelle im Business Umfeld.
    Ich bevorzuge bei Windows 10, trotz aller Empfehlungen von sogenannten "Experten", die LTSB bzw. LTSC-Versionen.
    Ich habe noch keine Probleme bis heute festgestellt, ganz im Gegenteil. Bin sehr zufrieden damit und hatte im laufenden Betrieb noch keinen einzigen Bluescreen!
    HINWEIS: Mit den Server Versionen 2016 oder 2019 verfahre ich identisch.
    1. Original ISO (vorab selber angepasste install.wim mit 1 Index "Enterprise" oder "EnterpriseS" und bei den Windows Server 2016 oder 2019 "DataCenter")
    2. MSMG-Toolkit (aktuelle Version)
    3. Alle Apps deinstallieren (entfällt bei "EnterpriseS")
    4. Features installieren (DART, .NET 3.x, 4.x)
    5. Updates installieren
    6. ISO-erstellen
    7. Diese in 6.) erstellte ISO einbinden in "VMware Workstation 15.x" (Alternative "VirtualBox" funktioniert auch einwandfrei. Und mit einer VHD-Disk sogar einfacher als VMware)
    8. OOBE-Starten
    9. Windows aktivieren mit KMS-Key und per KMS-Server
    10. Office-VL 2019 mit einer angepassten XML installieren (Word, Excel, PowerPoint, Visio)
    11. Office-VL 2019 aktivieren mit KMS-Key und per KMS-Server
    12. Alle benötigten Tools installieren (7-Zip, foobar, PotPlayer, IrfanView, RapidEE etc.)
    13. Anpassungen der lokalen Richtlinien
    14. Anpassungen der lokalen Benutzer
    15. Anpassungen am System (Taskleiste, Symbole auf dem Desktop, Design, UAC, Ordner, usw.)
    16. OOBE-Abschluss
    17. install.wim rauskopieren
    18. ISO Neu erstellen
    19. Kopieren der korrekten autounattend.xml
    20. ISO auf USB-Stick mit Rufus (aktuelle Version)
    21. Fertig
    Zuletzt bearbeitet: 25 Mai 2019
    SkAvEnGeR, user_99, Rubb und 2 andere sagen Danke.
  8. SkAvEnGeR

    SkAvEnGeR Master of Tools

    Registriert seit:
    21 Mai 2001
    Beiträge:
    5.508
    Danke @Dr.Windos :
    Das ist eine interessante Auflistung.

    Wir supporten hauptsächlich mittelständische Unternehmen, in denen "nur" die Pro Edition zum Einsatz kommt, da sie auf den OEM-PCs bereits vorinstalliert ist. Daher kommen bei uns auch quasie nie Volumelizenzen zum Einsatz.

    zu 1.: in wie fern selbst angepasst? nur die benötigte Edition aus einer ESD extrahiert?
    zu 3.: hier nöchte cih gern die Wahl haben, ob alles oder nur selektiv entfernt werden soll
    zu 4.: damit habe ich auch angefangen. Aber wie installiert man DART als Feature?
    zu 5. wie integriert man Updates in die WIM?
    zu 8. und 16.: meinst du mit OOBE den sysprep-Befehl, oder was genau?
    zu 17.: von wo die install.wim kopieren? generiest du die erst aus deinem Live-System in VMWare oder wie geht?
    zu 19.: was ist für dich die "korrekte" autounattendet.xml und womit wird sie generiert bzw. woher kommt diese dann?

    ich würde mich sehr über ein paar detailliserte Antworten freuen.

    Danke im Voraus
    user_99 und Dr.Windos sagen Danke.
  9. Dr.Windos

    Dr.Windos Chef

    Registriert seit:
    13 Mai 2001
    Beiträge:
    650
    Hallo @SkAvEnGeR

    danke für deine Fragen, die ich selbstverständlich gerne beantworte

    Ich habe ein eigenes, kleines Toolkit entwickelt, das natürlich viel weniger kann als MSMG, aber gerade das Löschen der nicht benötigten Versionen einfach und schnell erledigt aus der WIM.
    DART ist im PACK von MSMG enthalten und du must nur die Version für Windows 10, diese funktioniert auch für Server 2016 oder 2019, extrahieren, dann erscheint sie als Menüpunkt bei den Features
    Die Updates kann auch MSMG integrieren, ich kann es aber auch in meinem Toolkit machen

    base.cmd

    Code:
    echo off
    rem #######################################################################
    rem # some usefull stuff
    rem #######################################################################
    set month=%date:~-7,2%
    set year=%date:~-4%
    set timestamp=%date% %time:~0,2%:%time:~3,2%:%time:~6,2%
    set description=(updates %month% %year%)
    rem #######################################################################
    rem # environment
    rem #######################################################################
    set instwim=install.wim
    set bootwim=boot.wim
    rem #######################################################################
    set dir_base=%cd%
    set dir_dvd=%dir_base%\dvd\%version%
    set dir_source=%dir_dvd%\sources
    set dir_mount=%dir_base%\mount
    set dir_wsus=%dir_base%\wsus\%version%
    set dir_ie=%dir_wsus%\ie11\%language%
    set dir_ie11_pre=%dir_ie%\pre-ie
    set dir_ie11_base=%dir_ie%\ie
    set dir_ie11_post=%dir_ie%\post-ie
    set dir_iso=%dir_base%\iso
    set dir_driver=%dir_base%\driversw7
    rem #######################################################################
    rem # oscdimg
    rem #######################################################################
    set boot_bios=%dir_dvd%\boot\etfsboot.com
    set boot_uefi=%dir_dvd%\efi\microsoft\boot\efisys.bin
    set oscdimg_uefi_bios=-h -m -o -u2 -udfver102 -bootdata:2#p0,e,b"%boot_bios%"#pEF,e,b"%boot_uefi%"
    rem #######################################################################
    rem # adk
    rem #######################################################################
    set dism=%dir_adk%\dism
    set oscdimg=%dir_adk%\oscdimg
    set bcdboot=%dir_adk%\bcdboot
    set oldpath=%path%
    set path=%dism%;%oscdimg%;%bcdboot%;%oldpath%
    rem #######################################################################
    rem # end of file
    rem #######################################################################
    
    build_my_win.cmd (Beispiel Win 7)

    Code:
    :build_win_7
    echo off
    rem #######################################################################
    rem # environment
    rem #######################################################################
    set language=de
    set build=enterprise
    set version=win7
    set internalbuild=677649
    set versionname=windows_7_enterprise_2019
    rem #######################################################################
    rem # call base environment and adk
    rem #######################################################################
    set dir_adk=%cd%\adk\v8
    call base.cmd
    rem #######################################################################
    rem # some stuff
    rem #######################################################################
    set label=%versionname%
    set iso=%language%_%versionname%_%cpuid%_dvd_%internalbuild%.iso
    rem #######################################################################
    rem # cleanup
    rem #######################################################################
    dism /cleanup-mountpoints
    dism /cleanup-wim
    rem #######################################################################
    rem # check image
    rem #######################################################################
    dism /get-wiminfo /wimfile:%dir_source%\%instwim%
    dism /get-wiminfo /wimfile:%dir_source%\%bootwim%
    pause
    rem #######################################################################
    rem # mount index 1 for install.wim
    rem # mount index 2 boot.wim
    rem #######################################################################
    dism /mount-wim /wimfile:%dir_source%\%instwim% /index:1 /mountdir:%dir_mount%\install
    dism /mount-wim /wimfile:%dir_source%\%bootwim% /index:2 /mountdir:%dir_mount%\boot
    rem pause
    rem #######################################################################
    rem # integration of all drivers
    rem #######################################################################
    dism /image:%dir_mount%\install /add-driver:%dir_driver% /recurse /forceunsigned
    dism /image:%dir_mount%\boot /add-driver:%dir_driver% /recurse /forceunsigned
    rem pause
    rem #######################################################################
    rem # ie11
    rem #######################################################################
    rem dism /image:%dir_mount%\install /add-package /packagepath:%dir_ie11_pre%
    rem dism /image:%dir_mount%\install /add-package /packagepath:%dir_ie11_base%
    rem dism /image:%dir_mount%\install /add-package /packagepath:%dir_ie11_post%
    rem pause
    rem #######################################################################
    rem # updates
    rem #######################################################################
    rem dism /image:%dir_mount%\install /add-package /packagepath:%dir_wsus%
    rem pause
    rem #######################################################################
    rem # cleanup image
    rem #######################################################################
    dism /image:%dir_mount%\install /Cleanup-Image
    dism /image:%dir_mount%\boot /Cleanup-Image
    rem #######################################################################
    rem # unmount index 1 for install.wim
    rem # unmount index 2 boot.wim
    rem #######################################################################
    dism /unmount-wim /mountdir:%dir_mount%\install /commit
    dism /unmount-wim /mountdir:%dir_mount%\boot /commit
    rem #######################################################################
    rem # cleanup
    rem #######################################################################
    dism /cleanup-mountpoints
    dism /cleanup-wim
    rem #######################################################################
    rem # rename image
    rem #######################################################################
    imagex /flags %label% /info %dir_source%\%instwim% 1 %label% %label%
    rem #######################################################################
    rem # create dir and final iso
    rem #######################################################################
    if not exist %dir_iso%\%version% md %dir_iso%\%version%
    oscdimg %oscdimg_uefi_bios% -l%label% %dir_dvd%\ %dir_iso%\%version%\%iso%
    rem #######################################################################
    rem # end
    rem #######################################################################
    pause
    exit
    echo on
    
    Ja, genau OOBE startet sysprep. Vorlage war dieser Artikel aus der ct
    https://www.heise.de/ct/ausgabe/2014-4-Windows-8-1-Setup-anpassen-und-erweitern-2222504.html
    autounattendet.xml immer per Windows Answer File Generator https://www.windowsafg.com/ Dieser funktioniert nicht für Server 2016 oder 2019 oder ich bin dafür zu blöd.:p
    Office-VL mit dem ODT https://www.deskmodder.de/blog/2019...dt-in-neuer-version-fuer-office-click-to-run/
    und für eine angepasste XML das geniale Tool von Microsoft https://config.office.com/deploymentsettings
    Ja, die install.wim aus der fertigen mit OOBE abgeschlossenen VM herauskopieren. Dafür nehme ich einfach OSFMount https://www.osforensics.com/tools/mount-disk-images.html
    Dies entfällt, wenn du VirtualBox nimmst. Dann kannst du die VHD im Explorer mounten und die install.wim herauskopieren.
    Zuletzt bearbeitet: 25 Mai 2019
    user_99 und chaospir8 sagen Danke.
  10. SkAvEnGeR

    SkAvEnGeR Master of Tools

    Registriert seit:
    21 Mai 2001
    Beiträge:
    5.508
    @Dr.Windos : Super! Vielen Dank für die Bereitstellung deiner Scripte.:yo Da muss ich mich noch ein bisschen einarbeiten.
    Leider kann ich den ct-Artikeln als FreeLeser nicht ansehen und den Download der Tools gibts dann leider auch nicht. :(
    Beim Windows Answer File Generator erhalte ich immer nur ein leeres Feld und kein Script zum Download.:(

    Du arbeitest ja mit BATCH (was ich jetzt nicht schlechtmachen will), ich habe mich etwas intensiver mit der Lösung der WIM-Problematiken durch PowerShell beschäftigt und dort auch schon ein paar Scripte zusammengebaut, mit denen ich schon so einiges bewerkstelligen kann. Bei nächster Gelegenheit werde ich die hier mal posten (nach ein paar Anpassungen)

    Die gesamte Software, die zusätzlich für die Instalaltion benötigt wird, binde ich via WIHU/WinPKG ein und starte den Auswahldialog via setupcomplete.cmd. So habe ich mehr Einfluss auf die fertige Installation und muss mir nicht zig Konfigurationen zusammenstricken. Denn trotz aller Anpassungen, die möglich sind, möchte ich als Admin ein Install-Medium haben, in dem bestimmte Dinge bereits vorkonfiguriert sind um mir Arbeit zu ersparen - ich andere Dinge aber variabel ändern/anpassen/installieren kann.

    Es gibt noch viel zu tun - Packen wir's an! :icon_prosit:
    Dr.Windos sagt Danke.
  11. Tank

    Tank Bekanntes Mitglied

    Registriert seit:
    31 Mai 2001
    Beiträge:
    10.211
    Die aktuelle LTSC hat als Basis die 1809, ohne den ganzen Bloatware Mist, in Form von Cortana, AppStore, und die Üblichen Verdächtigen.
    Zu Win2k/XP Zeiten habe ich sehr gerne ntLite genutzt. Windows Enterprise = Pro, mit BitLocker, und einigen anderen Dingen, die in Netzwerken sinnvoller sind, fahren wir auch @work.
    Für den Home Betrieb, ohne Domänen kaum sinnvoll. Ich traue mich aktuell bei der Bugliste nicht, auf die 1903 auf meinen Hauptrechner upzudaten.
  12. DrSnuggles

    DrSnuggles Xanatos

    Registriert seit:
    31 Oktober 2004
    Beiträge:
    21.044
    @SkAvEnGeR:

    Für Businessuser wurden Gruppenrichtlininen erfunden. Idealerweise nimmt man dann auch die Enterpriseedition.
    Bestatter und Dr.Windos sagen Danke.