Uppgradera operativsystem

<img style="”float:" right;” src="”https://www.recastsoftware.com/wp-content/uploads/2021/10/Recast-Logo-Dark_Horizontal.svg”" alt="&quot;Bild&quot;" height="”43″" width="”150″">

Uppgradera operativsystem

Detta steg används vid en lokal uppgradering av din maskin från och äldre version av Windows till en nyare version av Windows, eller i vissa fall, till samma version av Windows. Detta steg är den primära motorn i en uppgraderingsuppgiftssekvens. Mycket av det här steget är du faktiskt blind för vad som händer, eftersom det helt överlämnar din maskin till Windows 10 Setup Engine och lämnar dig i mörkret tills installationen är klar och det lämnar tillbaka kontrollen till uppgiftsekvensen via setupcomplete.cmd -filen som utlöses av Windows -installationsprocessen. Det är ungefär så länge som ett intro som jag vill, men spänn ihop, eftersom den här sidan kommer att bli lång, för det finns bara så mycket mark att täcka här.

MS Docs

PowerShell

Variabler

  • _SMSTSOSUpgradeActionReturnCode - Är inställt på värdet för Windows Setup Engine, under uppgraderingen vill du att detta ska vara 0, under kompatibilitetsskanning vill du att detta ska vara 0xC1900210

  • SetupCompletePause - Efter uppgraderingen av Windows och setupcomplete.cmd -filen utlöses kommer denna variabel att placera en "paus" eller nedräkning baserat på antalet du gör i denna variabel. Som standard använder jag 180, och på våra långsammare VDI -maskiner, 300.
  • OSDSetupAdditionalUpgradeOptions - Detta gör att du kan lägga till installationsmotorns installationskommando. Typiska saker är att aktivera eller inaktivera diagnosprompten eller att glida in språkpaket eller MigNEO

  • _SMSTSSetupRollback - Ange av SetupRollback.cmd -filen om uppgraderingen misslyckas och återställs. Tillåter uppgiftssekvensen att graciöst misslyckas.

Anpassade åtgärder

Det finns flera kommandofiler du kan skapa som aktiveras genom installationsprogrammet i Windows, uppgiftsordningen använder ett par av dem som standard och resten används inte ... men det betyder inte att du inte kan använda dem! Djupdykningssida om anpassade åtgärder

  • Används av uppgiftssekvens Dedikerat blogginlägg

    • SetupRollback.cmd - Används om uppgraderingen misslyckas, kommer aktivitetssekvensen att starta igen och ställer in variabeln _SMSTSSetupRollback till True.
      C: WindowsSMSTSPostUpgradeSetupRollback.cmd
    • SetupComplete.cmd - Används för att utlösa uppgiftsordningen efter den lyckade uppgraderingen. C: WindowsSMSTSPostUpgradeSetupComplete.cmd och loggfilen: C: WindowsSetupComplete.log Uppgradera OS -bild 10Uppgradera OS -bild 9
  • Endast Windows MS Docs - Anpassade åtgärder

    • förinstaller.cmd
    • precommit.cmd
    • postuninstall.cmd
    • framgång. cmd
    • misslyckande. cmd

Relaterade steg

Steget

Uppgradera OS -bild 1

Du har flera alternativ, bara ett krävs, ditt uppgradera Media. När du har ställt in det väljer du de andra alternativen som passar dina behov.

Förarens innehåll

  • Du kan välja ett verkligt förarpaket, men det här är helt enkelt galet snack. Om du inte har ett drivrutinspaket som fungerar för alla dina modeller, skulle detta tvinga dig att ha ett uppgraderingssteg per modell och kontroll med villkor. Det är därför jag aldrig har sett detta gjort, men jag har sett "iscensatt innehåll" valt, med en variabel som innehåller platsen för drivrutinerna.Uppgradera OS Image 2

OSDSetupAdditionalUpgradeOptions Variabel

  • Du kan ändra kommandoraden setup genom att använda variabeln OSDSetupAdditionalUpgradeOptions med hjälp av steget "Set Task Sequence Variable". Mer information om kommandoradsargument på MS Docs för Windows 10 Setup -kommandon
    Uppgradera OS -bild 43

Andra alternativ

  • Paus

    • Jag har inte sett någon bra anledning att använda det här, men det är i princip där som standard
  • Utför Windows Setup -kompatibilitetsskanning utan att starta uppgraderingen

    • Detta är användbart för att få en uppfattning om det finns några hårda blockerare på dina system innan du kör uppgraderingen. Detta är också ett bra sätt att förcacha innehållet på maskinerna innan du kör uppgraderingen eftersom det kräver samma innehåll. Jag rekommenderar starkt att du kör detta på alla slutpunkter innan du uppgraderar och använder resultaten för rapportering. (/Compat ScanOnly)
  • Ignorera alla avvisbara kompatibilitetsmeddelanden

    • Detta gör att installationsmotorn ignorerar alla aviseringar som du skulle se om du kör installationsprocessen manuellt när det finns varningar om objekt på ditt system, och det berättar att installationen kommer att ignorera dem eller ta bort dem som en del av uppgraderingen. (/Compat IgnoreWarning)
  • Uppdatera Windows -installationen dynamiskt med Windows Update

<div class="”NOTE" alert alert-note”><h5>NOTERA</h5><p><p>Att aktivera dynamiska uppdateringar har potential att göra mycket dåliga saker eftersom det bokstavligen kan ladda ner gigabyte innehåll per maskin, vilket kan sakta ner uppgraderingsprocessen dramatiskt om maskinen har en långsam länk, eller få ner ditt nätverk genom att använda din organisations bandbredd genom att ha många maskiner som vänder sig till Microsoft samtidigt.</p>
</p></div>

  • Åsidosätt policy och använd standard Microsoft -uppdatering

    • Detta ignorerar inställningarna på din maskin och går direkt till Microsoft

Uppgradera OS -bild 5

Du kan se att Windows 10 Setup Engine Command Line skapas baserat på dessa alternativ tillsammans med OSDSetupAdditionalUpgradeActions som jag har markerat ovan.

Ok, demotid!

Demo 1 - Kompatibilitetsskanning

Denna första demo kommer vi att dyka in för att köra steget i kompatibilitetsskanningsläge.
Uppgradera OS Image 3

Steget börjar med att samla in informationen i variablerna som motsvarar steget i TS och valda alternativ, och lär dig sedan om bilden du ska använda för uppgraderingen.

Uppgradera OS -bild 6
Uppgradera OS Image 7
Uppgradera OS -bild 8

Så i denna uppsättning loggar ser vi grunderna i detta steg. Steget börjar med att bestämma vad steget behöver göra baserat på alternativen (variablerna) i steget. Steget kontrollerar sedan uppgraderingspaketet för att se till att det är kompatibelt med systemet du ska uppgradera. Steget utlöser sedan installationsmotorn och gör den uppgift som vi sa till den att göra. I det här exemplet körs kompatibelsökningen, och det går ganska snabbt tillbaka utan problem.

Demo 2 - misslyckad Compat Scan

I denna demo har jag en programvara som inte är kompatibel med uppgraderingsprocessen och när den installeras faktiskt hindrar maskinen från att uppgradera.
Uppgradera OS -bild 11
I den loggen kommer felet tillbaka med hex -koden, som du kan leta upp några grundläggande på MS Dok Webbplats. För mer information om den lokala maskinen, gå till Panther -mappen.
Uppgradera OS -bild 13
Väl där, kolla in den senaste CompatData XML -filen.
Uppgradera OS -bild 12
Här kommer Hard Blocker att listas.

Demo 3 - Uppgradera från 1809 till 1909

Detta kommer att vara en vanlig framgångsrik uppgradering från 1809 till 1909 för att förklara vad steget gör.

  • Steg startar i onlinestadiet (nedåtgående fas)
  • Bekräftar att uppgraderingspaketet är kompatibelt
  • Installerar CM Custom SetupComplete.cmd & SetupRollback.cmd
  • Inaktiverar CCM -klienten och övergår till Provisioning Mode
  • Bygg och kör kommandoraden Setup
  • Övervakar registret "SetupProgress" -värde och rapporterar det i användargränssnittet
  • Startar om till SafeOS -fas
  • Startar om till First Boot Phase
  • Startar om till andra startfasen
    • Vid denna tidpunkt utlöses uppgiftsordningen av filen SetupComplete.cmd
      • Från och med CM 2006 visas inte SetupComplete.cmd under processen. Du kommer att se det dyka upp i ungefär en sekund innan det minimeras och du kan inte längre se det.

        • Detta gjordes genom att lägga till detta i SetupComplete.cmd
        powershell.exe -noprofil -executionpolicy bypass -fönster dold -kommando ""
        
      • SetupComplete.cmd utlöses genom att ha dessa registernycklar:

        • HKEY_LOCAL_MACHINESYSTEMSetup
          • CmdLine (REG_SZ = C: WindowsSMSTSPostUpgradeSetupComplete.cmd)
          • SetupType (DWord = 2)
        • Dessa nycklar rensas ut efter att SetupComplete.cmd körts
          • CmdLine (tom)
          • SetupType (DWord = 0)

<div class="”TIP" alert alert-tip”><h5>DRICKS</h5><p><p>Du kan helt kapa dessa registervärden och använda det för att göra dina bud .. förmodligen inte stöds, mer information om <a href="/sv/”https://garytown.com/setupcomplete-cmd-related-registry-values”/">GARYTOWN Blogginlägg</a></p>
</p></div>

Uppgradera OS -bild 15
Uppgradera OS -bild 14
Uppgradera OS -bild 18
Nedan har jag SetupComplete -loggen som visar när den utlöste "Vänta" och när den sedan utlöser TS (TSMBootstrap.exe) och där den anpassas till smsts.log
Uppgradera OS Image19
När TS startar igen utlöser det reparationen av CM -klienten och väntar sedan på att CM -klienten ska bli aktiv. Anledningen till SetupComplete -pausen var att WMI -namnutrymmet ibland, särskilt på långsamma maskiner, inte helt migrerades när CM -klienten reparerades, och då skulle det kasta fel "Ogiltigt namnutrymme", så genom att lägga till en paus , det gav mer tid för migreringen av WMI -namnutrymmet att slutföras, så när klienten repareras skulle det hitta namnområdet och inte fel.
Uppgradera OS Image20
Kort efter att klienten har arbetat igen utlöses en ny omstart. Nedan visar jag filen SetupComplete.cmd (längst ned till höger), tillsammans med SetupComplete.log (TopRight) och SMSTS.log (vänster) för att visa hur loggarna ligger i linje med kommandofilen.
Det finns ytterligare en omstart som är beroende av filen SetupComplete.cmd, den första avslutas med en specifik utgångskod, som uppmanar SetupComplete.cmd -filen att system för att köra TSMBootstrap igen genom att ange ett registervärde, eftersom en omstart kommer . Nästa gång avslutas den med en 0 -kod och låter dig veta att det inte finns någon omstart utlöst och återställer registret. Jag har färgkodat bilden för att notera de delar av loggarna och kommandofilen som motsvarar varandra.
Uppgradera OS Image21
Allt detta händer innan nästa steg i uppgiftsekvensen, i min testuppgiftssekvens, nästa steg jag hade var att pausa TS, för att göra det lättare att bekräfta loggar och tidslinjer.

Här tillbaka i konsolen kan vi se TS Progress UI. Nedan är precis när installationsmotorn slutar, SetupComplete körde första gången och triggade TSMBootstrap.exe för att sparka TS tillbaka och TS saktar tillbaka till liv.
Uppgradera OS Image24
När TS startar, utlöser det en CM -klientreparation (ccmsetup.exe / åtgärda), den stannar sedan på den skärmen tills klienten startar, om du tittade på SMSTS.loggen under den här bilden nedan ser du klienten startar, sedan alla de röda raderna "Det gick inte att starta CCM -klienten 0x8007022", om och om igen, tills tjänsten startas, vilket sedan utlöser en ny omstart ...
Uppgradera OS Image22

Uppgradera OS Image23
Vid denna tidpunkt startar systemet om och kommer att utlösa filen SetupComplete.cmd för andra gången, detta motsvarar bilden ovan med filen SetupComplete.log. Systemet startar om till den svarta "Splash Screen" med det snurrande hjulet, där det stannar för resten av TS. SetupComplete körs igen och utlöser uppgiftssekvensen och laddar ProgressUI och fortsätter sedan till nästa steg, som visas nedan. I mitt exempel har jag steget "Paus - kommandotolken" som steget direkt efter uppgraderingen, vilket gjorde det lättare för mig att titta på loggar och ta en skärmdump.

Uppgradera OS Image16
Uppgradera OS -bild 17
Efter uppgraderingen och du loggar in ser du att uppgraderingen har tagit bort alla mina anpassningar.

Demo 4 - Framgångsrik uppgradering med drivrutiner

Detta är 95% detsamma som den senaste situationen, men jag visar bara några ändringar för att tillämpa drivrutiner.
Uppgradera OS Image32
Uppgradera OS Image31
Uppgradera OS Image30
Kommandoraden CM Builds lägger till omkopplaren /installdrivers med platsen till drivrutinerna, där de lagrades i DRIVERS01 -variabeln.
Under uppgraderingen tillämpar installationsmotorn dessa drivrutiner.

En sak att notera, om du säger till den att använda drivrutiner och inte tillhandahåller förare, händer det också dåliga saker:
Uppgradera OS Image33
För det mesta såg jag felet 0x80070003 det var för att drivrutiner inte laddades ner ordentligt eller att något med drivrutiner gick fel. Bygg in ytterligare logik i din TS för att undvika detta problem.

Demo 5 - misslyckad uppgradering i nedre nivå

Denna demo kommer att vara ett misslyckande under installationsfasens nedåtgående fas, för att simulera fel kommer jag att göra hårda återställningar under uppgraderingen.
Här startade jag uppgraderingen och vid 12% återställde jag maskinen
Uppgradera OS Image25
Efter omstart och inloggning:
Uppgradera OS -bild 26
CM -klienten är för närvarande i administrationsläge och CM -klienten är inaktiverad.
För att lösa det:

Invoke -WmiMethod -Namespace "rootccm" -Class "SMS_Client" -Name "SetClientProvisioningMode" $false c: windowsccmccmeval.exe

Dessa kommandon återställer CM -klienten och låter dig starta Software Center:
Uppgradera OS Image27
Men vid denna tidpunkt hänger Task Sequence -motorn upp och klienten gör inte så mycket förrän du rensar bort det.

Get -WmiObject -Namespace RootCCMSoftMgmtAgent -Class CCM_TSExecutionRequest | Ta bort-WmiObject

Uppgradera OS Image28
Du kan se att det rensade TS och det visas inte ens i programvarucentret för närvarande.
Men SMSTSLogsmsts.log finns kvar! Låter klart det också.

Set-Service smstsmgr -StartupType manual Start-Service smstsmgr

Uppgradera OS Image29
Här har smsts -loggen slagits tillbaka till överordnad mapp och helt rensat uppgiftsekvensen. En snabb uppdatering av mjukvarucenter visar nu TS där och det har misslyckats. Vid denna tidpunkt kan du utlösa uppgraderingen igen, men jag skulle fortfarande rekommendera en omstart innan du försöker det.

Demo 6 - misslyckad uppgradering av SafeOS / första eller andra startfasen

Denna demo kommer att vara ett misslyckande under de andra faserna i installationsmotorn, för att simulera fel kommer jag att göra hårda återställningar under uppgraderingen. Bara att notera, ett misslyckande i någon av faserna efter Downlevel -fasen, du får samma resultat från uppgiftssekvensen.

För det här testet har jag lagt till en paus i rollback -gruppen för att bekräfta att återgång utlöses:
Uppgradera OS Image34
I bilden nedan har jag startat uppgraderingen och det är nu förbi omstart till SafeOS -fasen. Jag är nu under en hård återställning. (Oväntad omstart)
Uppgradera OS Image35
Operativsystemet startar återställningen av ångrade ändringar:
Uppgradera OS Image36
Installationsmotorn utlöser SetupRollback.cmd, som utlöser BootStrap och du kommer att se TS Progress UI igen:
Uppgradera OS Image37
Medan TSProgressUI visas ovan är det här som händer i loggarna:
Uppgradera OS Image38
SetupRollback.cmd startar och utlöser TSMBootstrap, som startar uppgiftsekvensen tillbaka i växeln. Det anger också Var _SMSTSSetupRollback = True.
TS kontrollerar sedan CM -klienten och upptäcker att eftersom maskinen inte uppgraderade men rullade tillbaka behöver den inte åtgärda klienten, bara aktivera den:
Uppgradera OS Image39
Uppgradera OS Image40
Nu har TS "framgångsrikt" slutfört OS -uppgraderingssteget, det kan fortsätta, och när det gäller rollback -gruppen, nu när_SMSTSSetupRollback är sant, kommer den att köra den gruppen och mitt paussteg:
Uppgradera OS Image41
Uppgradera OS Image42

Vid denna tidpunkt skulle det fortsätta att köra resten av din uppgiftsordning och avsluta graciöst.

Du kan se skillnaden mellan att en omstart sker under fasen nedåt eller att hända efter det. Du vill mycket hellre att det händer efter den första omstarten, eftersom TS återhämtar sig och CM -klienten är ok. Det här är anledningen till att vi har valt att använda omkopplaren "/MigNEO inaktiverad" för att få uppgraderingen förbi fasen så snabbt som möjligt när vi kör uppgraderingen via en uppgiftssekvens.

Tips

Testar själv

  • Om du vill förstå denna process mer och köra några tester själv, skulle jag rekommendera att följa den grundläggande konturen för hur jag körde mina tester.
  • Mycket enkel uppgiftssekvens, ställ in några variabler och alternativ och ställ sedan in en paus efter uppgraderingssteget. Överväg också att använda Task Sequence Debugger
  • Ta bort smsts.log -filen innan du startar uppgraderingen också, vilket gör det lättare att hitta den del av loggen du vill ha.
  • Öppna en "Remote CMTrace" till maskinen (\ ComputerNameC$ccmlogssmstslogsmsts.log) så att du kan titta på loggarna på en annan maskin under uppgraderingen.

Använd uppdaterade medier

  • Om du inte kan aktivera "Dynamiska uppdateringar" i steget, se till att du uppdaterar media offline med WimWitch eller OSDBuilder.
  • Kontrollera regelbundet om det finns uppdateringsmedia i VLSC och använd sedan det för din bas som du uppdaterar regelbundet.
  • Dynamiska uppdateringar, jag kan inte tala tillräckligt för vikten av att inkludera dynamiska uppdateringar

Vanliga problem

  • För att vara rättvis har detta steg inga problem, det fungerar som förväntat 100% av tiden. Den del som har problem är Windows 10 -installationsmotorn. Men eftersom Windows 10 -installationsmotorn är så nära knuten till detta steg blir linjer ofta suddiga och användare / andra IT -personer säger ofta "TS misslyckades" när det var ett Windows -installationsproblem på grund av ett kompatibilitetsproblem eller något annat som misslyckades, men eftersom det hände under uppgiftssekvensen är ConfigMgr -administratören vanligtvis på kroken för att räkna ut det.
    • Förskärmsmaskiner för uppgradering, kör rapporter för att hitta maskiner med lågt diskutrymme eller andra låga resurser. Hitta maskiner med mjukvara på nedre nivå.
  • Windows 10 -uppgraderingsproblem
    • Lär dig hur Windows 10 -uppgradering fungerar, titta på generiskt Windows 10 dokumentation.
    • Tredjeparts säkerhetsprogram.
      • Programvara för fullständig diskkryptering med förstart har verkligen orsakat problem, och det är ofta modellspecifika problem. Håll dig till Bitlocker
      • AntiVirus / AntiMalware / Skanningsverktyg. Vi har haft dessa blockdelar av uppgraderingsprocessen och blockerar även filer under migrering. Se till att du har alla undantag på plats
        • c: Windowsccmcache
        • C: _SMSTaskSequence
        • C: $Windows. ~ BT
        • C: WindowsPanther
        • C: Windows.old
        • C: WindowsServiceProfilesNetworkServiceAppDataLocalPeerDistPub

Relaterade blogginlägg

Sammanfattning

Vid det här laget, förhoppningsvis har du en god förståelse för vad steget gör, och som en bonus, lite mer om Windows 10 -uppgraderingsmotorn också. MS Docs har blivit riktigt bra, mycket bättre än för ett par år sedan när vi först vände oss vid denna Windows as a Service -värld. Om du har ytterligare scenarier som du vill att jag ska demonstrera, kontakta mig på twitter: @gwblok eller @RecastSoftware.

Om Recast Software
1 av 3 organisationer som använder Microsoft Configuration Manager förlitar sig på Right Click Tools för att visa sårbarheter och åtgärda snabbare än någonsin tidigare.
Ladda ner gratis verktyg
Begär pris

Se hur Right Click Tools förändrar hur system hanteras.

Öka produktiviteten direkt med vår begränsade, kostnadsfria Community Edition.

Kom igång med Right Click Tools idag:

Dela detta:

Support

  • Detta fält används för valideringsändamål och ska lämnas oförändrat.

Kontakt

  • Detta fält används för valideringsändamål och ska lämnas oförändrat.
sv_SESwedish