WinGet és YAML fájlok a számítógép profi módon történő konfigurálásához

  • A WinGet lehetővé teszi alkalmazások telepítését, frissítését és eltávolítását Windows rendszeren a parancssor és az érvényesített YAML manifesztek használatával.
  • A YAML formátumú WinGet konfigurációs fájlok a DSC-vel kombinálva deklaratív módon leírják a számítógép kívánt állapotát.
  • Az állítások és erőforrások szakaszok szabályozzák az előfeltételeket, a szoftvertelepítéseket, a Windows-beállításokat és a szkriptek végrehajtását.
  • A privát adattárak, a DSC-modulok és a csoportházirendek lehetővé teszik, hogy ezt a deklaratív modellt biztonságos vállalati telepítésekbe lehessen vinni.

WinGet és YAML fájlok a PC konfigurálásához

Ha minden új felszerelés beszerzésekor órákat kell eltöltenie Programok telepítése, a Windows finomhangolása és a fejlesztői környezet beállításaIdeje egyszerűsíteni. A WinGet és a YAML fájlok lehetővé teszik, hogy ezt a nehézkes folyamatot gyakorlatilag automatikussá alakítsd, amelyet egyetlen paranccsal bármelyik számítógépen megismételhetsz.

Az ötlet az, hogy egy konfigurációs fájlban leírjuk, hogy mit szeretnénk telepíteni, és hogyan kellene konfigurálni a rendszert, majd hagyjuk, hogy... Windows csomagkezelő (winget) a PowerShell kívánt állapotkonfigurációjával (DSC) együtt Végezd el a piszkos munkát: telepíts szoftvereket, alkalmazd a beállításokat, futtass szkripteket, és ellenőrizd, hogy a géped megfelelő állapotban van-e ahhoz, hogy időpazarlás nélkül tudj dolgozni.

Mi az a WinGet, és miért olyan hasznos a számítógép automatizálásához?

A WinGet a Microsoft hivatalos csomagkezelője Windows 10 és Windows 11 rendszerekhezParancssorból működik, és lehetővé teszi az alkalmazások telepítését, frissítését, konfigurálását és eltávolítását, nagyon hasonlóan ahhoz, amit a GNU/Linuxban az apt, dnf vagy hasonló eszközökkel teszünk, de tökéletesen integrálva a Windows ökoszisztémába.

Ahelyett, hogy több száz weboldalon keresgélne telepítőket, letöltene EXE vagy MSI fájlokat, majd a „Tovább, tovább, elfogad” gombra kattintana, a WinGet segítségével elindíthat egy parancsot, például winget telepítési csomagnév A rendszer ezután letölti a programot egy megbízható forrásból, elvégzi a csendes telepítést, és regisztrálja a csomagot a jövőbeli frissítésekhez.

A WinGet által használt fő szoftverforrások a következők: a Microsoft Store és a GitHubon üzemeltetett közösségi adattárahol minden alkalmazást egy YAML manifeszt ír le, amely jelzi a telepítés módját, a verzióját, az integritási hash-ét stb. Ezenkívül lehetőség van privát adattárak hozzáadására, például egy saját szervezet számára, a belső szoftverek ellenőrzött módon történő terjesztéséhez.

A teljes WinGet ökoszisztéma három pilléren nyugszik:

  • La CLI szárny (a terminálban használt parancs).
  • sok csomagokat tároló és validáló szolgáltatások.
  • sok YAML konfigurációs fájlok amelyek lehetővé teszik egy teljes gép kívánt állapotának deklaratív meghatározását, nem csak az egyes alkalmazásokét.

Winget

Alapvető WinGet parancsok alkalmazások kezeléséhez

Mielőtt belemerülnénk a YAML konfigurációs fájlok technikai vonatkozásaiba, hasznos megérteni az alapokat. alapvető WinGet parancsok mindennapi használatraMinden a PowerShellből, a Windows Terminálból vagy a klasszikus parancssorból kezelhető.

Ha csak írsz Winget Egy konzolon láthatod a telepített verziót, az elérhető alparancsokat és a beállítások összefoglalását. Innentől kezdve félelem nélkül elkezdhetsz kísérletezni.

hogy telepítsen egy alkalmazást Az install alparancsot használod. Például a Visual Studio Code telepítéséhez a számítógépedre egyszerűen a következőt kell tenned:

winget install Microsoft.VisualStudioCode

Ebben az esetben, A Microsoft.VisualStudioCode a pontos csomagazonosító. a WinGet tárolóban. Sok esetben a névvel is telepíthető pontosan úgy, ahogyan az a Store-ban szerepel, idézőjelek között, ha szóközök vannak, de az azonosító használata csökkenti a kétértelműséget.

Ha azt szeretné, frissítsd a programjaidatMegkérheted a WinGetet, hogy próbáljon meg feltölteni mindent, amit felismer, a következővel:

winget upgrade --all

Vagy egy adott alkalmazásra is koncentrálhat, például:

winget upgrade Microsoft.VisualStudioCode

A WinGet modern verziói nemcsak a saját maga telepített fájlokat képesek frissíteni, hanem a rendszeren észlelt alkalmazásokat is, amelyek eredetükben társított manifest fájl található.

hogy szoftver eltávolításaA mechanika ugyanilyen egyszerű:

winget uninstall Microsoft.VisualStudioCode

Az eltávolítás mindaddig működni fog, amíg a WinGet a katalógusában tartalmazza a programot, akár azért, mert telepítette, akár azért, mert felismeri a rendszerben regisztrált információk alapján.

Amikor meg kell találnia egy programot, használhatja a következőt: Winget-keresésPéldául a jegyzettömb elérhető beállításainak megtekintéséhez:

winget search notepad

A parancs egy listát ad vissza, amelyben név, csomagazonosító és származási hely (közösségi adattár, tároló vagy privát adattár), és ezt az azonosítót kell használnia a telepítés vagy a frissítés során a biztonság kedvéért.

Ha tudni szeretné, hogy melyik szoftver vezérli a WinGetet a számítógépén, használhatja a következőt:

winget list

Ezzel kapsz egy a csomagkezelő által észlelt alkalmazások leltározása. Nagyon hasznos annak eldöntéséhez, hogy mit frissítsünk, vagy mit vegyünk bele a konfigurációs fájlokba.

Telepítések automatizálása YAML fájlokkal: a szépsége az egésznek

Az igazán érdekes rész akkor jön, amikor a parancsok egyesével történő begépeléséről a következőre váltunk: Írd le az ideális környezetedet egyetlen YAML fájlbanAhelyett, hogy egy puskával teleírt parancsokat vagy egy törékeny szkriptet használnál, deklaratívan definiálod, hogyan szeretnéd, hogy a gép kinézzen, és a munkát a WinGetnek és a DSC-nek delegálod.

Egy WinGet konfigurációs fájl tartalmazza a csomagok, verziók, eszközök, szkriptek és rendszerbeállítások listája amire szüksége van a fejlesztői környezetéhez (vagy az egész vállalathoz). Nem csak programok telepítésére korlátozódik: aktiválhatja a Windows-funkciókat, módosíthatja a beállításjegyzéket, kezelheti a szolgáltatásokat, elindíthat PowerShell-szkripteket… Mindent, ami a számítógép adott állapotba hozásához szükséges.

Ahhoz, hogy ez működjön, rendelkeznie kell a WinGet egy kellően friss verziójával, konkrétan v1.6.2631 vagy újabbEkkor kerül bevezetésre a DSC 3.0-val és a YAML konfigurációs fájlok feldolgozásáért felelős winget configure paranccsal való stabil integráció.

Az előnye, hogy a folyamat azzá válik felügyelet nélküli és megismételhetőVégrehajtasz egy parancsot, elfogadod a szükséges megállapodásokat, és máris mehetsz egy kávéra, amíg a rendszer telepít mindent, amire szükséged van, beállítja a Windowst, konfigurálja az IDE-ket, és előkészíti a környezetet a használatra. Ha pedig holnap számítógépet cserélsz, csak meg kell ismételned a folyamatot, és már indulhatsz is.

Továbbá ezek a fájlok lehetnek mentsd el egy Git-tárházba, OneDrive-ra vagy bárhová, ahová csak szeretnéd, megosztás a csapatoddal, verzióváltozások, nyitott problémák és pull requestek… Röviden, a géped konfigurációját kódként (IaC) kezeld, ne pedig valami manuális és megismételhetetlen dologként.

YAML

A winget configure parancs és főbb opciói

A teljes deklaratív rendszer kapuja a parancs szárnykonfiguráció. Ez felelős a WinGet konfigurációs fájl beolvasásáért, annak helyességének ellenőrzéséért, a szükséges PowerShell modulok letöltéséért és a módosítások alkalmazásáért.

Mielőtt belevágnánk, ajánlott konfigurációs összetevők engedélyezése (ha még nem aktívak) a következővel:

winget configure --enable

Ha ezzel megvagyunk, a legésszerűbb dolog az, hogy a YAML fájlt a következő paranccsal validáljuk:

winget configure validate -f ruta\a\archivo.winget

Az érvényesítés ellenőrzi mind a YAML szintaxis JSON sémamegfelelőségként hivatalos konfiguráció. Ne feledd, hogy a YAML érzékeny a behúzásra (szóközök, nem tabulátorok), ezért ezeket a fájlokat a Visual Studio Code-ban a Red Hat YAML kiterjesztéssel és a linkelt WinGet sémával szerkeszteni szinte kötelező, hogy elkerüljük az őrültséget.

Amikor minden jól néz ki, akkor megteheted Komolyan vedd figyelembe a beállításokat val vel:

winget configure --file ruta\a\archivo.winget --accept-configuration-agreements

Ezen a ponton a konfigurációs processzor lép működésbe, értelmezi a YAML-t, letölti a hiányzó DSC-modulokat a PowerShell-galériából, és megkezdi az állítások és erőforrások végrehajtását. Az ezt lehetővé tevő feladatok párhuzamosan futnak. Azok, amelyek megkövetelik rendszergazdai jogosultságok indításkor UAC figyelmeztetést fog kiváltani a szintemelkedés miatt.

Ha inkább "száraz próbát" szeretne végezni, mielőtt bármit is megváltoztatna, használhatja a következőket:

winget configure test -f ruta\a\archivo.winget --accept-configuration-agreements

A test segítségével a WinGet a fájlban leírt kívánt állapottal összehasonlítva kiértékeli a rendszert, és Megmutatja, hogy mi nem stimmel.anélkül, hogy még a géphez is hozzáérnél. Ez nagyon hasznos az összetett beállítások módosításához, és biztosítja, hogy ne érjenek meglepetések a reszelő alkalmazása során.

Távoli fájlokkal is lehet dolgozni, például nyilvános vagy privát adattárban tárolt fájlokkal, például a következő parancs futtatásával:

winget configure --accept-configuration-agreements --disable-interactivity -f https://tu-servidor/tu-config.winget

Ez a felhasználási mód nagyon jól illeszkedik az olyan forgatókönyvekhez, mint tömeges telepítés vagy központosított adminisztrációahol az informatikai részleg közzétesz egy konfigurációt, és a felhasználóknak vagy szkripteknek csak egy parancsot kell futtatniuk ahhoz, hogy a vállalati számítógép a meghatározott szabványnak megfelelően távozzon.

A winget configure argumentumai, opciói és alparancsai

A configure alparancs számos funkciót támogat finomhangolási viselkedés paraméterei. A legrelevánsabbak közül néhány:

  • -f, –fájl. Az alkalmazandó WinGet konfigurációs fájl elérési útja.
  • –modul-path. A letöltött DSC-modulok tárolására szolgáló helyi mappa (alapértelmezés szerint a %LOCALAPPDATA%\Microsoft\WinGet\Configuration\Modules mappában).
  • –processzor-elérési_út. Egyéni konfigurációs processzor helye, ha van ilyen.
  • –konfigurációs-megállapodások elfogadása. Az interaktív értesítés elkerülése érdekében előre fogadja el a konfigurációs figyelmeztetést.
  • –kezdeti-részletek-elnyomása. A tisztább eredmény érdekében próbálja meg elrejteni a kezdeti beállítási adatokat.
  • –engedélyezés / –letiltás. Konfigurációs összetevők engedélyezése vagy letiltása (hozzáférést igényel a Store-hoz).
  • –naplók, –nyitott-naplók. Nyissa meg azt a mappát, ahol a konfigurációs naplók tárolva vannak.
  • –böngés, –böngés-naplók. Lehetővé teszi a részletes naplózást a hibaelhárításhoz.
  • –nowarn, –figyelmeztetések figyelmen kívül hagyása. Figyelmeztető üzenetek elnyomása a kijáratnál.
  • –interaktivitás letiltása. Megakadályozza az interaktív promptok bármilyen típusát, ideális felügyelet nélküli szkriptekhez.
  • –proxy / –no-proxy. Lehetővé teszi egy proxy meghatározását az adott végrehajtáshoz, vagy a proxy használatának letiltását.

A fő parancs mellett A winget configure-nak számos alparancsa van Amit érdemes tudni:

  • winget configure show -f . Megjeleníti egy adott konfigurációs fájl részleteit, ami hasznos a szerkesztőben való megnyitás nélküli vizsgálathoz.
  • winget konfigurációs lista. Megjeleníti a rendszerre alkalmazott konfigurációk összefoglalását, ami segít nyomon követni a futtatott műveleteket.
  • winget konfigurálja a tesztet -f . Ellenőrzési mód, amely összehasonlítja a rendszer aktuális állapotát a konfigurációban meghatározottal.
  • winget configure validate -f . Csak a fájlt ellenőrizd, a gép érintése nélkül.
  • winget konfigurálja az export -o-t . Lehetővé teszi a konfigurációs erőforrások fájlba exportálását, függetlenül attól, hogy az összes csomagkonfigurációról van-e szó (--all), egy adott csomag (--package-id) vagy egy adott erőforrás (--module y --resource), hozzáfűzve a kimeneti fájlhoz, ha az már létezik.

Winget

WinGet konfigurációs fájlformátum és elnevezési konvenció

A WinGet konfigurációs fájljai a következőket használják: YAML formátum társított JSON sémával amely meghatározza az érvényes struktúrát. A WinGet saját manifeszt rendszere is a YAML-en alapul. Tehát minden ugyanabba a modellbe illeszkedik.

Megállapodás szerint ezek a fájlok a következő kiterjesztéssel vannak mentve: .szárny, például configuration.wingetGit-et használó projektekben általában ajánlott rejtett könyvtárban tárolni őket. .configútvonalak elhagyása, mint például ./.config/configuration.winget a projekt „alapértelmezett” konfigurációjához.

Ha a projekted az eszközök vagy beállítások különböző kombinációit használja, több konfigurációs fájlt is tárolhatsz ugyanabban a mappában, mindegyiket egy leíró névvel ellátva, amely jelzi, hogy melyik környezetet használja (például: frontend.winget, backend.winget, Stb.)

A fájl első sora általában egy speciális megjegyzés, amely tudatja a szerkesztőkkel, hogy melyik JSON sémát kell használni. Ez jellemzően így néz ki:

# yaml-language-server: $schema=https://aka.ms/configuration-dsc-schema/0.2

Az alap irányban https://aka.ms/configuration-dsc-schema/ Ellenőrizheti a legújabb sémaverziót, és frissítheti a fájlt, amikor a Microsoft új, több funkcióval rendelkező verziókat ad ki.

A fejléc után a dokumentum gyökércsomópontja mindig ingatlanaitamelynek tartalmaznia kell egy mezőt configurationVersion (például 0.2.0) és a két fő rész, amelyek mindent felépítenek: assertions y resources.

Konfigurációs fájl szerkezete: tulajdonságok, állítások és erőforrások

A csomópont alatt ingatlanait Egyrészt kijelentik, hogy konfigurációs verzióamelyet a fájl fejlődésével növelni kell, másrészt a gyűjtemények assertions y resources amelyek leírják a viselkedést.

  • rész állítások. Magában foglalja azokat az állításokat vagy előfeltételeket, amelyeknek teljesülniük kell ahhoz, hogy bizonyos erőforrások értelmesek legyenek: minimális Windows-verzió, egy bizonyos funkció megléte stb. Ezek önmagukban nem műveletek, hanem környezeti ellenőrzések.
  • rész erőforrások. Összegyűjti az összes olyan konfigurációs erőforrást, amelyet alkalmazni kíván: szoftvertelepítések, rendszerbeállítások, szkriptek, szolgáltatáskezelés, beállításjegyzékbeli módosítások stb. Ezen listák minden elemét egy típusú csomópont jelöli. resource a szükséges információkkal.

Mindkét esetben, Minden bejegyzés a használandó DSC-erőforrás jelzésével van definiálva., a formátummal {NombreModulo}/{NombreRecursoDSC}. Például Microsoft.Windows.Settings/WindowsSettings a Windows beállítások megérintéséhez, vagy Microsoft.WinGet.DSC/WinGetPackage WinGet csomag telepítése a DSC-ből.

Az erőforrásmező mellett minden egység általában a következő részeket is tartalmazza: direktívák és beállítások, egy opcionális azonosító id és szükség esetén a függőségek listája dependsOn más erőforrások vagy állítások felé.

Állítások: Ellenőrizze a Windows verzióját és egyéb előfeltételeit

az Az állítások előszűrőként működnek amelyek eldöntik, hogy van-e értelme bizonyos erőforrásokat futtatni az aktuális gépen. Így nem próbálsz meg olyasmit telepíteni vagy konfigurálni egy olyan rendszeren, amely nem felel meg az alapvető követelményeknek.

Egy tipikus példa erre az ellenőrzése minimális operációs rendszer verzióSok konfigurációhoz legalább Windows 10 1809-es vagy a Windows 11 egy adott buildje szükséges, és értelmetlen folytatni, ha egy régebbi verziót használsz, amely még a WinGetet sem támogatja.

Az ilyen stílusú állítás DSC-erőforrásokat használ, például Microsoft.Windows.Developer/OsVersion, egy tulajdonság jelzése a beállításokon keresztül MinVerzió (például '10.0.22000'), amely meghatározza a konfiguráció elfogadható küszöbértékét.

Az állítások párhuzamos értékelésszigorú sorrend nélkül, és lényegében igaz vagy hamis állapotot adnak vissza. Ha az állítás hamisat ad vissza (nem teljesül), akkor minden olyan erőforrás, amely függőségként tartalmazza azt a dependsOn Automatikusan kimarad.

Ez a viselkedés a deklaratív rendszer szempontjából helyes eredménynek tekinthető: jobb kihagyni egy értelmetlen blokkot, mint alkalmatlan környezetben kikényszeríteni a végrehajtását. A kimeneti üzenetek például a következőt mutathatják: „Egy erőforrás végrehajtása sikertelen vagy hamis volt.”

Még ha néhány beállítás nem is érvényes, a WinGet akkor is megpróbálja alkalmazni őket. folytassa más független forrásokkal hogy a rendszert a lehető legközelebb hozza a kívánt állapothoz. Végül Ön felelős a hibák áttekintéséért, és annak eldöntéséért, hogy módosítsa-e a konfigurációt vagy a környezetet.

Források: Csomagok telepítése, Windows finomhangolása és szkriptek indítása

rész az erőforrások a konfigurációs fájl gyakorlati szívét alkotják.Itt felsorolod mindent, amit a gépen szeretnél végrehajtani: szoftvertelepítés, rendszerkonfiguráció-módosítások, PowerShell szkriptek futtatása, szolgáltatáskezelés stb.

Minden erőforrás egy mezővel van definiálva resource amely a formát követi Modulo/RecursoDSC, például Microsoft.Windows.Settings/WindowsSettings a rendszerfunkciók aktiválásához, vagy Microsoft.WinGet.DSC/WinGetPackage egy csomag telepítésének megszervezése WinGet segítségével a DSC-ből.

Opcionálisan hozzárendelhet egy egyedi azonosító ami segít majd hivatkozni rá dependsOn más erőforrásokban. Ez nagyon hasznos például akkor, ha azt szeretné, hogy a további Visual Studio-összetevők konfigurációja explicit módon függjön a Visual Studio előzetes telepítésétől.

Minden egyes erőforráson belül a szakasz az utasítások kontextuális információkat tartalmaznak a végrehajtás módjáról: a feladat szöveges leírása (description), ha az előnézeti modulok elfogadva vannak a PowerShell-galériából (allowPrerelease) és a securityContext amely jelzi, hogy a végrehajtáshoz emelt szintű jogosultságok szükségesek-e.

Amikor felteszed biztonsági kontextus: emelt szintűA WinGet a telepítés elején egyszer kér rendszergazdai jogosultságokat, és ettől kezdve képes lesz emelt és nem emelt jogú erőforrásokat futtatni különböző folyamatokkal anélkül, hogy további UAC ablakokkal bombázna.

rész A beállítások a név-érték párokat határozzák meg amelyek átadódnak a DSC erőforrásnak. Ez lehet valami olyan egyszerű, mint DeveloperMode: true a Windows fejlesztői mód aktiválásához, vagy összetettebb paraméterekhez, például id y source egy WinGet csomagból, egy .vsconfig fájl elérési útja, egy adott beállításjegyzékbeli érték vagy egy engedélyezendő szolgáltatás részletei.

Végül a mező függ Lehetővé teszi annak deklarálását, hogy ez az erőforrás csak akkor hajtható végre, ha bizonyos korábbi állítások vagy erőforrások sikeresen befejeződtek. Ha ezen függőségek egyike sikertelen, az erőforrás automatikusan nem végrehajtottként vagy sikertelenként lesz megjelölve, megakadályozva a nem kívánt mellékhatásokat.

Az erőforrások részt olvasható módon rendszerezd

Nagyobb projektekben a konfigurációs fájlok meglehetősen nagyra nőhetnek, ezért érdemes időt szánni erre. Gondold át egy kicsit, hogyan szervezed meg az erőforrások részt hogy az idővel is karbantartható maradjon.

Egy gyakori stratégia az erőforrások egy adott célcsoport szerinti rendszerezése. logikus végrehajtási sorrend:

  1. Először is, mit készít elő a rendszer (állítások, alapvető frissítések).
  2. Aztán általános eszközök (böngészők, tömörítők, segédprogramok).
  3. Aztán IDE és SDK.
  4. Végül, konkrétabb szkriptek vagy beállítások.

Egy másik érdekes megközelítés az, hogy csoportosítjuk őket a kudarc vagy a bonyolultság valószínűségeMás szóval, azokat a feladatokat, amelyek leggyakrabban meghibásodnak (nagy teljesítményű telepítések, amelyek jó internetkapcsolattól vagy hitelesítő adatoktól függenek), helyezd az elejére, hogy a felhasználó korán felismerje, ha valami nincs rendben, anélkül, hogy meg kellene várnia, amíg minden befejeződik.

Sokan szívesebben csoportosítanak erőforrás típusaElőször a WinGet csomag, majd a Windows konfigurációi (beállításjegyzék, funkciók, szolgáltatások), majd szkriptek, végül pedig egy adott projekthez tartozó eszközök. Ez a stílus gyakran hasonlít egy szoftverprojekt tipikus felépítésére, és segít gyorsan eligazodni.

Bármilyen kritériumról is legyen szó, erősen ajánlott a fájlhoz csatolni egy README a tárházban a konfigurációs struktúra, a főbb függőségek, a minimálisan szükséges Windows-verziók és az ajánlott végrehajtási lépések ismertetése.

Ez a dokumentáció azt bizonyítja, hogy Más fejlesztők kevesebb kockázattal járulhatnak hozzá az archívumhoz. hogy valamit elrontsanak, mivel jobban megértik, hogy mit csinál az egyes blokkok, és milyen állítások vagy dependsOn-ok vannak érvényben, mielőtt új erőforrást adnának hozzá.

A ${WinGetConfigRoot} változó használata a fájlútvonalakban

Sok DSC-erőforrás elfogad olyan paramétereket, amelyek elvárják elérési utak adott fájlokhozVisual Studio konfigurációk, szkriptek, sablonok stb. Ha abszolút elérési utakat használ, a fájl elveszíti a hordozhatóságát, amint felhasználókat, meghajtókat vagy mappákat vált.

Ennek megakadályozása érdekében a WinGet bevezeti a változót ${WinGetConfigRoot}, amely arra a könyvtárra mutat, amelyből futtatod winget configureInnen relatív elérési utakat hozhat létre, amelyek ugyanúgy működnek minden olyan számítógépen, ahol ugyanazt a mappastruktúrát tiszteletben tartják.

Ha például a konfigurációs fájlt ide menti el .config/configuration.winget és az aktát .vsconfig A tároló gyökerében használhatsz egy ilyen elérési utat: '${WinGetConfigRoot}\..\.vsconfig'A rész .. Menj egy szinttel feljebb a munkamappából, és vidd egyenesen abba a könyvtárba, ahol a .vsconfig található.

Ez a technika lehetővé teszi, hogy ugyanaz a konfiguráció érvényes a csapat minden tagjára amelyek különböző elérési utakra klónozzák a projektet, feltéve, hogy tiszteletben tartják a fájlok relatív elhelyezkedését a tárházban.

Azonban érdemes megjegyezni a README-ben, hogy A felhasználónak meg kell győződnie arról, hogy a célfájl létezik. abban a relatív elérési úton, amely a konfigurációt várja a winget configure indítása előtt, különben a végrehajtás hibákat fog jelezni ezeken az erőforrásokon.

Hol találhatók a DSC modulok és a használatra kész erőforrások?

Ahhoz, hogy ez az egész rendszer működjön, a WinGet a következőkre támaszkodik: DSC-erőforrásokat megvalósító PowerShell-modulokNéhány „alapértelmezés szerint” a rendszerrel érkezik (az úgynevezett beérkezett üzenetek erőforrásai), míg mások a PowerShell-galériából származnak.

A standard erőforrások között vannak modulok, amelyeket kezelni kell környezeti változók, MSI csomagok telepítése vagy eltávolítása (msiPackage), beállításkulcsok és -értékek kezelése (Registry), szkriptblokkok futtatása (Script), Windows szolgáltatások vezérlése (Service), szerepkörök és funkciók hozzáadása vagy eltávolítása (WindowsFeature), illetve folyamatok indítása és leállítása (WindowsProcess).

La A PowerShell Galéria több száz további modult tartalmaz a közösség által biztosított DSC-erőforrásokkal. A keresési szűrők segítségével csak a „DSC-erőforrás” jelölésűeket jelenítheti meg, így megtalálhatja a konfigurációihoz újrafelhasználható alkatrészeket.

Fontos azonban szem előtt tartani, hogy a galéria nem egy teljes körűen auditált környezet: Bárki közzétehet modulokatés némelyik kockázatos vagy egyenesen rosszindulatú szkripteket tartalmazhat, ha nem ellenőrzik alaposan.

Emiatt a Microsoft ragaszkodik ahhoz, hogy a a modulok eredete és tartalma mielőtt éles gépeken futó konfigurációkban használná őket, különösen akkor, ha ezek az erőforrások magas biztonsági kontextusban futnak.

A konfigurációs fájlok konkrét példáinak megtekintéséhez a Microsoft fenntart egy DSC WinGet és YAML konfigurációs adattár elérhető a https://aka.ms/dsc.yaml rövid linken keresztül, ahol inspirációt találhat, és már tesztelt sablonokat is használhat alapként.

WinGethez kapcsolódó biztonsági, bizalmi és csoportházirendek

Mivel a WinGet és a DSC képes szoftverek tömeges telepítése és konfigurálásaA biztonsági szempont alapvető fontosságú, különösen a vállalati környezetben, ahol meglehetősen szigorú megfelelési követelmények vannak.

A WinGet integrálódik a Microsoft Store-ral az Origin-en keresztül msstore és olyan technikákat alkalmaz, tanúsítvány kitűzése annak ellenőrzésére, hogy a Store HTTPS-tanúsítványa megegyezik-e az ismert tanúsítványok egyikével, és így megelőzhetőek-e a közbeékelődéses (MITM) támadások.

Az SSL-ellenőrzéssel rendelkező tűzfalakat használó szervezeteknél ez a viselkedés problémákat okozhat, ha a biztonsági eszköz a kapcsolatot a saját tanúsítványával újracsomagolja. Ilyen esetekre létezik egy úgynevezett szabályzat. Tanúsítványrögzítés megkerülése a Microsoft Store-ban amely lehetővé teszi annak megadását, hogy a WinGet kihagyja-e az ellenőrzést.

A lehetséges opciók közé tartozik a házirend konfigurálatlanul hagyása (az alapértelmezett ajánlott viselkedés tiszteletben tartása mellett), vagy engedélyezése, hogy a WinGet... Ne ellenőrizze a Store tanúsítványát vagy explicit módon tiltsa le, hogy csak az ismert Microsoft-tanúsítványokat fogadja el.

Tanúsítványrögzítés letiltása növeli a közbeeső támadások kockázatátEzért csak a tények teljes ismeretében szabad ezt megtenni, és ha nincs más ésszerű alternatíva, egy átfogó biztonsági stratégiába illesztve.

Ezen az irányelven kívül léteznek WinGet-specifikus csoportházirend-sablonok (.admx és .adml fájlok), amelyek lehetővé teszik a rendszergazdák számára engedélyezett vagy blokkolt források szabályozása, kísérleti funkciók engedélyezése vagy letiltása, proxykkal szembeni viselkedés meghatározása és általánosságban alakítják a csomagkezelő viselkedését a szervezeten belül.

Ezek a sablonok a csomagban vannak elosztva DesktopAppInstallerPolicies.zip a WinGet GitHub repositoryban. A kicsomagolás után a fájlok ide másolódnak: C:\Windows\PolicyDefinitions A megfelelő nyelvi mappa most már elérhető, így a csoportházirend-kezelő konzolról kezelhető.

Vannak csoportházirend-objektumok is, mint például EnableWindowsPackageManagerConfiguration és EnableWindowsPackageManagerConfigurationExplanation amelyek lehetővé teszik a WinGet konfigurációs fájlok használatának blokkolását a teljes szervezeten belül, abban az esetben, ha úgy ítélik meg, hogy ezt a funkciót szigorúan korlátozni kell.

További adattárak és privát források használata a WinGetben

A WinGet alapból a következőket használja fő forrásként: a Microsoft Store és a GitHubon található közösségi adattárahol rengeteg népszerű program manifeszt fájljait találhatod: böngészők, fejlesztői csomagok, tervezőeszközök, különféle segédprogramok stb.

Sok vállalatnak azonban ennél többre van szüksége: privát adattárak, ahol saját alkalmazásait tárolhatja, belső csomagok, bizonyos eszközök validált verziói vagy a szabályzataiknak megfelelő szűrt katalógusok.

A WinGet lehetővé teszi további források regisztrálását a következő parancs használatával:

winget source add --name <nombre_del_repositorio> --arg <URL_del_repositorio>

Ez az eredet alapértelmezés szerint általában REST típusú, bár megadható a következővel: --type Ha szükséged van rá. Ezenkívül vannak olyan paraméterek is, mint például –bizalmi szintű a bizalom szintjének meghatározása (nincs vagy megbízható) és –forrás-megállapodások elfogadása a forráslicenc-szerződések automatikus elfogadása, ami elengedhetetlen a repozitóriumok beépítésének automatizálásához.

A számítógépén jelenleg található betűtípusok ellenőrzéséhez a következő parancsot használhatja:

winget source list

Ez a parancs visszaadja az összes elérhető forrást nevükkel és típusukkal együtt. Ettől a ponttól kezdve a WinGet keresései és telepítései a konfigurált beállításoknak megfelelően figyelembe veszik a további forrásokat.

Vannak olyan projektek, amelyek kínálják Telepítésre kész megoldások privát WinGet-tárházakhoz Azure-ban vagy helyszíni telepítésekben a Docker használatával, amely jelentős rugalmasságot kínál vállalati katalógusok vagy ellenőrzött környezetek beállításakor, ahol csak informatikailag jóváhagyott szoftverek léteznek.

A gyakorlatban a privát adattárak jól megtervezett YAML konfigurációs fájlokkal való kombinálása lehetővé teszi a következőket: teljes mértékben szabványosítsa a szoftver- és berendezéskonfigurációt egy cégnél, azzal a nyugalommal, hogy minden olyan forrásból származik, amelyet te magad is irányítasz.

A fentiek mindegyikével a WinGet, annak YAML konfigurációs fájljai és DSC erőforrásai a Windows PC-k előkészítésének és karbantartásának fárasztó feladatát folyamattá alakítják. sokkal gyorsabb, megismételhető és biztonságosabbAkár fejlesztő vagy, aki több számítógépen szeretné klónozni a környezetét, akár egy szervezet számítógépeinek flottáját kezeled, és nem szeretnél mindent manuálisan elvégezni.