A Windows PowerShell telepítése és konfigurálása. Windows PowerShell – Hasznos megjegyzések A powershell telepítéséhez

0
Alkalmazható:
Office 365 szakembereknek és kisvállalkozásoknak, Office 365 vállalkozásoknak, [e-mail védett]
Windows XP, Windows Vista, Windows Server 2003, Windows 7 és Windows Server 2008

A Windows PowerShell használatának megkezdése előtt győződjön meg arról, hogy a Windows PowerShell és a Windows Remote Management (WinRM) megfelelő verziói telepítve és konfigurálva vannak a számítógépen. Használnia kell a Windows Management Framework-et, amely tartalmazza a Windows PowerShell v2 és a WinRM 2.0 megfelelő verzióit.

Ha számítógépén Windows 7 vagy Windows Server 2008 R2 fut, akkor semmit nem kell telepítenie. A Windows Management Framework már telepítve van.

Letöltheti és telepítheti a Windows Management Framework programot, ha számítógépén az alábbi operációs rendszerek valamelyike ​​fut:

    Windows Vista Service Pack 1 (SP1) vagy 2 (SP2);

    Windows Server 2008 Service Pack 1 (SP1) vagy 2 (SP2);

    Windows Server 2003 Service Pack 2 (SP2);

    Windows XP Service Pack 3 (SP3).

Menjünk dolgozni:

1. Távolítsa el a Windows PowerShell korábbi verzióit a számítógépről

A Windows Management Framework telepítése előtt el kell távolítania a Windows PowerShell meglévő verzióit.

1.1 A Windows PowerShell eltávolítása a Windows Vista rendszerből

    A Vezérlőpult Programok csoportjában nyissa meg a Programok és szolgáltatások részt, és távolítsa el a Windows PowerShell minden olyan példányát, amely megtalálható a telepített programok listájában. Például a Windows PowerShell v2 CTP-verziója "Windows PowerShell (TM) V2" néven jelenhet meg.

    A Feladatok részben válassza a Telepített frissítések megtekintése lehetőséget, és távolítsa el a Windows PowerShell minden olyan példányát, amely telepített frissítésként szerepel. Például a Windows PowerShell V1 Windows Updateként jelenhet meg a Microsoft Tudásbázis következő cikkszámainak egyikével:

1.2 A Windows PowerShell eltávolítása Windows Server 2008 rendszerből

    Indítsa el a Kiszolgálókezelőt, és nyissa meg az „Összetevők” részt.

    1. Válassza a "Funkciók eltávolítása" lehetőséget.

      Válassza ki a Windows PowerShell értéket, és kövesse az utasításokat az eltávolításhoz.

    A Vezérlőpult Programok csoportjában nyissa meg a Programok és szolgáltatások elemet, és távolítsa el a Windows PowerShell minden olyan példányát, amely a telepített programok listájában szerepel.

    A Feladatok csoportban válassza a Telepített frissítések megtekintése lehetőséget. Távolítsa el a Windows PowerShell minden olyan példányát, amely telepített frissítésként szerepel.

1.3 A Windows PowerShell eltávolítása Windows Server 2003 vagy Windows XP rendszerből

    Nyissa meg a Vezérlőpult Programok telepítése/eltávolítása elemét, és távolítsa el a Windows PowerShell minden olyan példányát, amely a telepített programok között szerepel.

    A Programok hozzáadása/eltávolítása részben válassza a Frissítések megjelenítése lehetőséget. Távolítsa el a Windows PowerShell minden olyan példányát, amely telepített frissítésként szerepel. Például a Windows PowerShell V1 Windows-frissítésként jelenhet meg a következő cikkszámmal a Microsoft Tudásbázisban: KB926139.

2. Távolítsa el a WinRM korábbi verzióit a számítógépről

A Windows Management Framework telepítése előtt el kell távolítania a WinRM meglévő verzióit.

2.1 A WinRM eltávolítása Windows Vista vagy Windows Server 2008 rendszerből

    A Vezérlőpult Programok csoportjában nyissa meg a Programok és szolgáltatások részt, és távolítsa el a Windows Remote Control szolgáltatás minden olyan példányát, amely megtalálható a telepített programok listájában.

    A Feladatok csoportban válassza a Telepített frissítések megtekintése lehetőséget. Távolítsa el a Windows Remote Control szolgáltatás minden olyan példányát, amely megtalálható a telepített frissítések listájából. Például a WinRM 2.0 CTP-verziója "WindowsRemoteManagement" néven jelenhet meg a következő cikkszámok egyikével a Microsoft Tudásbázisban:

2.2 A Windows PowerShell eltávolítása Windows Server 2003 vagy Windows XP rendszerből

    Nyissa meg a Vezérlőpult Programok telepítése/eltávolítása elemét, és távolítsa el a Windows távvezérlő minden olyan példányát, amely a telepített programok között szerepel.

    A Programok hozzáadása/eltávolítása részben válassza a Frissítések megjelenítése lehetőséget. Távolítsa el a Windows Remote Control szolgáltatás minden olyan példányát, amely megtalálható a telepített frissítések listájából. Például a WinRM Windows-frissítésként jelenhet meg a következő cikkszámmal a Microsoft Tudásbázisban: KB936059.

3. A Windows Management Framework telepítése

    Töltse le és telepítse a Windows Management Framework programot. Válassza ki az operációs rendszernek, rendszerarchitektúrának és nyelvnek megfelelő Windows PowerShell v2 és WinRM 2.0 csomagot.

    A WinRM és a Windows PowerShell telepítése után konfigurálja a szoftvert úgy, hogy az megfelelően működjön az alábbi lépésekben leírtak szerint.

jegyzet

4. A parancsfájlok Windows PowerShellben való futtatásának képességének ellenőrzése

    Válassza a Start, Minden program, Kellékek, Windows PowerShell parancsot egymás után.

    A Windows PowerShell megnyitásához tegye a következők egyikét:

    • Ha Windows Vista, Windows 7 vagy Windows Server 2008 R2 rendszert futtat, kattintson a jobb gombbal a Windows PowerShellre, és válassza a Futtatás rendszergazdaként lehetőséget. Amikor megjelenik a Felhasználói fiókok felügyelete üzenet, amely a folytatásra kéri, kattintson a Folytatás gombra.

      Ha Windows XP vagy Windows Server 2003 rendszert futtat, kattintson a Windows PowerShell elemre.

    Futtassa a következő parancsot:

    Get-ExecutionPolicy

    Ha a visszaadott érték eltér a RemoteSigned értéktől, módosítania kell az értéket RemoteSigned értékre.

    jegyzet

    Ha a parancsfájl-végrehajtási házirend beállítása RemoteSigned , akkor csak a felhasználó számítógépén létrehozott vagy megbízható forrás által aláírt parancsfájlok futhatnak.

Felkészülés a szkriptek futtatására a Windows PowerShellben

A rendszergazdaként megnyitott Windows PowerShell-munkamenetben futtassa a következő parancsot:

Set-ExecutionPolicy RemoteSigned

5. Ellenőrizze, hogy a WinRM rendelkezik-e engedéllyel a Windows PowerShell csatlakoztatására

    Válassza a "Start", "Minden program", "Kellékek" sort egymás után.

    A parancssor megnyitásához tegye a következők egyikét:

    • Ha Windows Vista, Windows 7 vagy Windows Server 2008 R2 rendszert futtat, kattintson jobb gombbal a Parancssorra, és válassza a Futtatás rendszergazdaként lehetőséget. Amikor megjelenik a Felhasználói fiókok felügyelete üzenet, amely a folytatásra kéri, kattintson a Folytatás gombra.

      Ha Windows XP vagy Windows Server 2003 rendszert futtat, válassza a Parancssor lehetőséget.

    A parancssorban futtassa a következő parancsot:

    winrm get winrm/config/client/auth

    jegyzet

    Ha a WinRM szolgáltatás már fut, akkor nem kell elindítania. A WinRM szolgáltatás állapota az sc query winrm parancs futtatásával ellenőrizhető.

Keresse a Basic = értéket az eredmények között. Ha Basic = false van megadva, akkor azt Basic = true értékre kell módosítani.

jegyzet

    Ha a WinRM szolgáltatás fut, és nem kell módosítania az alapértéket, futtassa a net stop winrm parancsot a WinRM szolgáltatás leállításához.

Az alapszintű hitelesítés engedélyezése a WinRM-ben

    A rendszergazdaként megnyitott parancssori ablakban futtassa a következő parancsokat: A kapcsos zárójelben ( ) lévő érték megkülönbözteti a kis- és nagybetűket:

    winrm beállítása winrm/config/client/auth @(Basic="true")

    Ellenőrizze a Basic = true értékét a parancs kimenetében.

    jegyzet

    Ha a WinRM szolgáltatás fut, futtassa a net stop winrm parancsot a leállításához.

Következő akció.

Már eltelt egy kis idő a Microsoft legújabb operációs rendszerének végleges kiadása óta, és nem csak a köztes buildeket tesztelők, hanem azoknak a felhasználóknak is sikerült már megismerkedniük vele, akik letöltötték a várva várt frissítést. Jó az új rendszer vagy sem? Ez a legújabb innovatív termék, vagy csak a G8, aminek akkoriban ki kellett volna jönnie? Ezek olyan kérdések, amelyekre amúgy sem lehet egyértelműen válaszolni. A kézenfekvő újítások mellett, amelyek között szerepel a rendszerben megjelent Start menü, a Microsoft Edge böngésző, az Xbox-kompatibilitás, a Cortana-ba integrált kereső és feladatnézet, számos olyan újítás található, amelyekről nem minden Windows 10 felhasználó tud.

Ezen újítások egyike a szoftvertermékek közvetlen telepítésének lehetősége a Windows PowerShell shell használatával, amelyről ebben a cikkben később lesz szó. Annak ellenére, hogy ez a funkció még 2014 áprilisában, a Windows Management Framework 5.0 Preview kiadásával együtt megjelent, csak a „tízek” végleges kiadásával válhatott natívvá. Lássuk tehát, melyik modul felelős ezért a funkcióért, és hogyan telepíthet szoftvertermékeket a telepítőfájlok letöltése nélkül.

Windows PowerShell OneGet modul

A Windows Management Framework 5.0 Preview kiadása óta a Windows PowerShell számos új funkcióval rendelkezik, amelyek megkönnyítik a számítógépek kezelését. Ezek a szolgáltatások két érdekes technológiát tartalmaznak, nevezetesen a Windows PowerShell kívánt állapotkonfigurációját és a Windows hálózati kapcsolókhoz tanúsított tanúsítványt.

A Certified for Windows Network Switches esetében számos Windows PowerShell-parancsmag került hozzáadásra, amelyek a Windows-tanúsítvánnyal rendelkező hálózati kapcsolók kezeléséért felelősek. Vagyis 19 új parancsmag található, amelyeket a PowerShell-héj „Get-Command *-NetworkSwitch*” parancsának futtatásával találhat meg. Mivel a technológia meglehetősen komoly, és különös figyelmet érdemel, ebben a cikkben egy kis leírásra korlátozom magam, és nem foglalkozom vele részletesebben.

De a második technológiát részletesebben kell tárgyalni. Ha Windows Management Framework 5-öt vagy Windows 10 operációs rendszert telepít, használhat egy olyan eszközt, amely sokkal könnyebbé teszi a szoftverek megtalálását és telepítését számítógépein. A OneGet egy ilyen eszköz. A OneGet egy csomagkezelő aggregátor, azaz egy olyan modul, amely speciális lerakatokat használ, hogy egyetlen felületet biztosítson a szoftverek felfedezéséhez, telepítéséhez és leltározásához. Más szóval, ez a technológia egyrészt olyan parancsmagokat biztosít, amelyek lehetővé teszik a végfelhasználó számára a telepítőcsomagok kezelését (amiről kicsit később lesz szó), másrészt felületet biztosít a szállítói csomagok írásához. .

Mielőtt magával a modullal kezdenénk foglalkozni, figyeljen több olyan definícióra, amelyek szorosan kapcsolódnak ehhez a technológiához, nevezetesen:

  • Csomag. Dióhéjban a csomag egy olyan program, amelyet egy adott forrásból építenek és telepítenek bármely elérhető csomagkezelő rendszer segítségével. Általában egy csomag lefordított kódot tartalmaz további metainformációkkal, amelyek tartalmazhatják a csomag leírását, verzióját vagy a „függőségeket”. Egy csomagkezelő rendszernek, például egy szoftvertermék új verzióra történő automatikus frissítéséhez, hogy megbizonyosodjon arról, hogy minden csomagfüggőség telepítésre kerül, fel kell dolgoznia az ilyen metainformációkat, és szükség esetén automatikusan telepítenie kell az összes hiányzó terméket. csomagok;
  • adattár. A Wikipédia szerint az adattárak olyan helyek, ahol adatokat tárolnak és karbantartanak. Leggyakrabban az adattárban lévő adatokat fájlok formájában tárolják, amelyek a hálózaton keresztül tovább terjeszthetők. A lerakatokat eredetileg Linux rendszerek használták, lehetővé téve a rendszer futtatásához szükséges csomagok telepítését más helyekről. A legtöbb adattár ingyenes, de egyes vállalatok fizetős előfizetés esetén hozzáférést biztosítanak saját adattáraikhoz. A OneGet adattárakról egy kicsit később fogunk beszélni;
  • Csomagkezelő. Ez egy olyan szoftvereszköz-készlet, amely a szoftvercsomagok telepítésének, frissítésének, konfigurálásának és eltávolításának automatizálásáért felelős. A csomagok általában tartalmaznak egy adatbázist, amely felsorolja a szoftver előfeltételeit és függőségeit, valamint a termékverzióval kapcsolatos információkat, hogy megakadályozzák a nem működő szoftvertermékek használatát. A csomagkezelők közé tartozik a Linux apt-get vagy a NuGet, amely később Windows rendszereken jelent meg. Az OnetGet viszont a NuGet logikai kiterjesztése, amely az összes elérhető csomagkezelő, úgynevezett szolgáltató aggregátoraként működik.

Kezdetben a Microsoft korlátozza a legtöbb elérhető szolgáltató használatát egy olyan alapkészlet biztosításával, amely lehetővé teszi további szolgáltatók felfedezését és telepítését a szoftver kezeléséhez. A legfontosabb szolgáltatók a következők:

  • Bootstrap– olyan szolgáltató, amely lehetővé teszi más szolgáltatók felfedezését;
  • MSI– MSI-fájlok feldolgozására tervezett szolgáltató;
  • MSU– viszont a Microsoft frissítési fájlok kezeléséért felelős szállító;
  • ARP(Programok hozzáadása/eltávolítása) – a rendszer „Program eltávolítása vagy módosítása” komponensében regisztrált szoftvertermékek leltári adataiért felelős szolgáltató;
  • PowerShellGet- Egy szolgáltató, amely lehetővé teszi a különböző PowerShell-modulok kezelését.

A OneGet-szolgáltatók teljes listáját rövid leírásukkal együtt a következő linken találja.

Maga a OneGet modul 10 Windows PowerShell-parancsmagot tartalmaz, amelyek többségével a cikk következő része foglalkozik. Ezek a parancsmagok a következőket tartalmazzák:

  • Find-Package - csomagok keresése;
  • Get-Package – a számítógépre telepített összes csomag listáját adja vissza;
  • Get-PackageProvider – visszaadja azon szolgáltatók listáját, amelyek ezen a számítógépen csatlakoztak a OneGethez;
  • Get-PackageSource – Egy adott csomagszolgáltatónál regisztrált csomagforrások listáját adja vissza.
  • Install-Package – lehetővé teszi egy vagy több szoftvertermék telepítését;
  • Register-PackageSource - csomagforrás hozzáadása a megadott csomagszolgáltatóhoz;
  • Csomag mentése - lehetővé teszi a csomag mentését a helyi számítógépre utólagos telepítés nélkül;
  • Set-PackageSource - módosítsa a megadott csomagszolgáltatónál a csomag forrását;
  • Uninstall-Package - egy vagy több szoftvercsomag eltávolítása;
  • Unregister-PackageSource – Regisztrált csomagforrás eltávolítása.
    • Szoftver telepítése a OneGet segítségével

      Tehát itt az ideje a szoftvertermékek telepítésének. Ezután látni fogja, hogyan telepíthet egy csomagszolgáltatót, hogyan találhatja meg a szükséges szoftvert, telepítheti azt, valamint azt is, hogyan távolíthat el egy felesleges alkalmazást, és hogyan töltheti le a szoftvertermék telepítőcsomagját a számítógépére. Kezdjük sorban.

      A Chocolatey Package Provider telepítése

  1. Nyissa meg a Windows PowerShellt, és a helyi számítógépen a OneGet szolgáltatásban regisztrált csomagforrások listájának megjelenítéséhez futtassa a parancsot Get-PackageSource. Vegye figyelembe, hogy ha a parancsban megad egy adott csomagszolgáltatót, akkor a Get-PackageSource parancsmag csak a megadott szolgáltatóhoz társított forrásokat jeleníti meg. Ellenkező esetben a parancs visszaadja a OneGet rendszerben regisztrált összes csomagforrást. Mivel minden szolgáltató csomagforrásait meg kell néznünk, a parancs további paraméterek nélkül fog futni. Ügyeljen arra, hogy ebben a szakaszban még nem telepített további csomagszolgáltatót, amelyet a szoftvertermékek telepítéséhez használnak majd. A parancs kimenetét a következő képen láthatja:

  2. Amint az az előző ábrán látható, a Chocolatey szolgáltató nincs telepítve a helyi gépünkre. Ezért ezt korrigálni kell. Ne feledje, hogy csomagszolgáltató hozzáadásához a PowerShell ExecutionPolicy értékét a következőre kell állítani Korlátlan. Ellenkező esetben nem tudja hozzáadni a szolgáltatót. Hadd emlékeztesselek arra, hogy a cmdlet Get-ExecutionPolicy lehetővé teszi az aktuális munkamenet végrehajtási szabályzatainak megjelenítését. A végrehajtási házirend a Windows PowerShell biztonsági házirend része, amely meghatározza, hogy betölthetők-e a konfigurációs fájlok, és végrehajthatók-e a parancsfájlok, és mely parancsfájlok futtatásához szükséges digitális aláírás. Az alapértelmezett érték " Korlátozott” (nem tölt be konfigurációs fájlokat és nem hajt végre parancsfájlokat), ezért ha nem változtatta meg a végrehajtási szabályzat értékét saját magának, futtassa a parancsot Set-Execution Policy Korlátlan. Mivel az alapértelmezett végrehajtási házirend hatóköre a LocalMachine, így a házirend-beállítások csak az aktuális felhasználóra vonatkoznak, a paramétert az alkalmazott parancshoz is hozzáadhatja. – Hatály jelentéssel Jelenlegi felhasználó. E két parancs kimenete a következő ábrán látható:

  3. Ebben a szakaszban láthatjuk azon szolgáltatók listáját, amelyek regisztrálva vannak a OneGet szolgáltatásban az aktuális számítógépen. Ehhez használhatja a parancsmagot Get-PackageProvider. Ez a parancsmag, amint egy kicsit fentebb már említettem, azoknak a csomagszolgáltatóknak a listáját adja vissza, amelyek már csatlakoztak a OneGethez. Opcionálisan szűrheti az eredményeket egy (több) szállítónév egésze vagy egy része alapján. Például annak megtekintéséhez, hogy mely szolgáltatók csatlakoznak jelenleg, futtassa a parancsmagot Get-PackageProvider minden további opció nélkül. Ahogy az alábbi ábrán is látható, kezdetben 4 ilyen szolgáltató csatlakozott a számítógépemhez, amelyekről ma már meséltem. Most, hogy telepítse a Chocolatey szolgáltatót a számítógépére, futtassa a parancsot Get-PackageProvider -Csokoládé név -ForceBootstrap, ahol a -ForceBootstrap paraméter felelős a szolgáltató automatikus telepítéséért. Vegye figyelembe, hogy általános szabályként a Chocolatey szolgáltató telepítésekor a NuGet szolgáltatót is telepíteni kell. Amint az a következő ábrán látható, a parancsmag újrafelhasználása után Get-PackageProvider, az általunk telepített szolgáltatónak már meg kell jelennie a listában:

Most létrehozhatunk egy teljes listát a szolgáltatókban elérhető összes csomagról, és átvezethetjük a parancsmagba Exportálás-CliXML objektumok XML-reprezentációjának létrehozásához és XML-fájlba mentéséhez. Ne feledje, hogy az exportált lista folyamatosan változik, és idővel egyre több csomag kerül az Ön által használt adattárakba. Ennek megfelelően ne felejtse el időről időre lecserélni az exportált fájlt. A csomagok listájának exportálásához és a lista C:\TestPosh mappába való mentéséhez futtassa a következő parancsot: talál-csomag | Export-CliXML C:\TestPosh\Test.xml

Felhívjuk figyelmét, hogy az exportálási eljárás minden bizonnyal eltart egy ideig. Miután a parancs végrehajtása befejeződött és egy XML-fájl létrejött a számítógépen, importálja azt, és a könnyebb megtekintés érdekében használja a folyamatot és a parancsot. rácsnézet, amely a parancs eredményének ablakban, interaktív táblázat formájában történő megjelenítéséért felelős, megtekinthető, hogy mely csomagok lesznek telepíthetőek. Természetesen ezt a csomaglistát bármely olyan alkalmazással megnyithatja, amely képes XML-fájlok feldolgozására, például ugyanazzal az Excellel. Ez a parancs, amint az a következő ábrán látható, így néz ki: Import-CliXML C:\TestPosh\Test.xml | Ki GridView

Mivel a szolgáltató már telepítve van, továbbléphet ennek az eljárásnak a következő részéhez, amely az

Szoftver telepítése PowerShell segítségével

A szoftvertermékek telepítése előtt nézzük meg, hogy mi van már telepítve a számítógépre. A feladat végrehajtásához használhatja a parancsmagot Get-Csomag, amely visszaadja a helyi gépre telepített összes szoftvercsomag listáját, akár a OneGeten, akár más alkalmazástelepítő eszközökön keresztül. Opcionálisan futtathatja a parancsmagot is Get-Csomag távoli számítógépeken pedig egy Invoke-Command, egy Enter-PSSession parancs vagy egy parancsfájl részeként futtatva.

Abban az esetben, ha bizonyos szoftverekről szeretne információkat kapni, például a telepített Microsoft Office 2013 termékekről, használhatja a –Name paramétert ezzel a parancsmaggal együtt a megfelelő értékkel, például: Get-Package - "Office 2013" név. A parancsmag kimenete alább látható:

A szoftver telepítése előtt próbáljuk meg eldönteni, mit kell telepítenünk. Mivel csak az Office 2013 és még néhány alkalmazás van telepítve a gépre, a következőkben megmutatom, hogyan telepíthetsz olyan szoftvereket, mint az Adobe Creative Cloud, az Adobe Reader, a Notepad ++, valamint a Process Explorer, a Process Monitor és a WinRar.

Tekintettel arra, hogy a telepítési folyamat előtt magukat a csomagokat kell lokalizálnunk, használjuk a cmdlet képességeit. Find-Csomag. Ahogy korábban megjegyezte, ez a parancsmag lehetővé teszi, hogy telepítőcsomagokat keressen a helyi számítógépen elérhető csomagforrásokban. Abban az esetben, ha nem használ paramétereket ezzel a parancsmaggal, a parancs megjeleníti az összes alkalmazás teljes listáját, amint azt korábban megjegyeztük.

Például először próbáljuk meg megtalálni azokat az Adobe-alkalmazásokat, amelyek telepíthetők az általunk hozzáadott Chocolatey szolgáltatótól. Ehhez a parancsmagon kívül elegendő a paraméter megadása -Névés adja meg értékeként a kívánt szoftverterméket. Mivel a telepítőcsomagok termékneve is előfordulhat az Adobe szó után, a következőképpen adja meg a termék nevét: Vályogtégla* a következő ábrán látható módon. Amint láthatja, a OneGet modul a következő telepítőcsomagot találta a lerakatban: Adobe-creative-cloud 1.0 verzió. Elvileg ez az egyik termék, amit keres, ami azt jelenti, hogy telepíteni kell. Ehhez, amint az a következő ábrán is látható, ki kell használni a parancsmag képességeit Telepítés-csomag. A Creative Cloud telepítéséhez futtassa a következő parancsot Telepítési csomag - Név adobe-creative-cloud -Force, ahol a Force paraméter a PowerShellben megszokott módon felülírja azokat a korlátozásokat, amelyek megakadályozzák a parancs végrehajtását mindaddig, amíg a módosítások megsértik a biztonsági követelményeket. Ezeknek a parancsoknak a kimenete a következő ábrán látható:

Most, miután az első szoftverterméket telepítettük, próbáljunk meg rákeresni az Adobe Reader egy adott verziójára. Ehhez a már ismert parancs mellett Csomag keresése – AdobeReader név paramétert kell hozzáadni – Minden Verzió, amely egy csomag összes elérhető verzióját adja vissza, vagy egy csomag összes olyan verzióját, amely a beállításokban megadott tartományon belül van MinimumVersionés MaximumVersion. Kérjük, vegye figyelembe, hogy ez a paraméter nem kötelező, mivel a keresés kezdetben a szoftvertermék legújabb verzióját jeleníti meg. Most az összes elérhető verzió közül válasszuk ki azt, amelyet telepíteni kell a számítógépre, például legyen az 2015.007.20033 . az olvasó ezen verziójának telepítéséhez meg kell adnia a parancsot Telepítési csomag - AdobeReader név paraméter hozzáadása -RequiredVersion jelentéssel 2015.007.20033 , amely megadja a telepíteni kívánt csomag pontos verzióját. A paraméter hozzáadásával beállíthatja a termék maximálisan elérhető verzióját is MaximumVersion a megfelelő értékkel. Ezeknek a parancsoknak a kimenete a következő ábrán látható:

Ha egy szoftvertermék legfrissebb verzióját kell telepítenie, és ugyanakkor nem szeretne több parancsot beírni a PowerShellbe, akkor általánosíthatja a csomagok keresését és telepítését egy folyamat segítségével. Például a Notepad++ szövegszerkesztő legújabb verziójának telepítése esetén a következő parancsot futtathatja: Find-Package -Name NotepadPlusPlus | Telepítési csomag – Kényszer. Így megkeres egy csomagot a tárolóban, és ha eredményt talál, azonnal telepíti csendes módban. A szoftvertermék telepítési folyamata az alábbiakban látható:

Most, mivel a fenti feladat szerint hátra van a Process Explorer, a Process Monitor és a WinRar telepítése, próbáljunk meg egyszerre több szoftvercsomagot telepíteni. Ehhez kívánatos pontosan tudni, hogyan hívják ezeket a csomagokat magában a tárolóban. Mint korábban írtam, ez a cmdlet segítségével ellenőrizhető talál-csomag | Ki GridView. Ha a csomagnevek ismertek, folytathatja magát a telepítést. Ehhez a következő parancsot futtathatja: Find-Package -Name procexp, procmon, winrar | Telepítés-csomag. Ebben a példában, amint az a következő ábrán látható, konkrétan nem adom meg a paramétert Kényszerítés hogy egyszerre több szoftvercsomag telepítésének teljes folyamatára figyelhessen.

Programok mentése és törlése

A cikkben tárgyalt utolsó két parancsmag felelős a telepítőcsomag mentéséért és a telepített program eltávolításáért. Kezdjük a megtakarítással.

A telepítőcsomag mentéséhez használhatja a OneGet modul következő parancsmagját, nevezetesen a modult Csomag mentése. Ez a parancsmag lehetővé teszi a csomagok mentését a helyi számítógépre anélkül, hogy később telepítené őket. Alapértelmezés szerint ez a parancsmag a szoftvertermék legfrissebb verzióját menti, azonban ha hozzáadja a paramétert az aktuális parancsmaghoz AllVersions, a kiválasztott program összes verziója mentésre kerül a számítógépére. Sőt, hasonlóan a kereső és telepítő parancsmagok paramétereihez, az összes verzió mentése mellett a paraméterek használatával - MaximumVersionés – MinimumVersion, kiválaszthatja a megtartani kívánt csomag verziótartományát is. A csomag számítógépre mentéséhez az opció mellett Névés ha szükséges, a termék verziójáért felelős paramétert meg kell adni a paramétert Pálya a telepítő jövőbeni helyével.

Amint az a következő ábrán látható, a parancs Csomag mentése - Procexp név - C elérési út:\TestPosh mentse a Process Explorer legújabb verzióját a C:\TestPosh mappába:

Ha véletlenül rossz csomagot telepített, bármikor eltávolíthatja azt a OneGet modul segítségével. Ehhez használja a parancsmagot Uninstall-Package. A modul többi parancsmagjához hasonlóan a program eltávolításához meg kell adnia a Név paramétert a megfelelő alkalmazásnévvel, és használhatja a Force paramétert is a program csendes eltávolításához. Például a korábban telepített WinRAR eltávolításához a következő parancsot kell futtatnia: Uninstall-Package -Name WinRAR -Force az alábbi:

Következtetés

Ebből a cikkből megismerhette a Microsoft új operációs rendszerének egyik funkcióját, nevezetesen a szoftvertermékek telepítését a Windows PowerShell parancshéj használatával. Meséltem magáról a OneGet modulról, a technológiával együtt használt alapvető terminológiáról, és arról, hogy milyen előre telepített csomagszolgáltatók léteznek. Megtanulta, hogyan kapcsolhat harmadik féltől származó csomagszolgáltatót a OneGethez, és hogyan használhatja azt szoftvertermékek keresésére, telepítésére, mentésére és eltávolítására.

Remélem, hogy ez az információ hasznos volt számodra, és valami újat tanultál magadnak. Ha bármilyen kérdése van a cikk anyagával kapcsolatban - tegye fel őket a megjegyzésekben, szívesen állok rendelkezésére.

VN:F

Értékelés: 9,9/ 10 (18 leadott szavazat)

Programok telepítése a PowerShell használatával Windows 10 rendszerben, 9,9 / 10 18 értékelés alapján

Ma megmutatom, hogyan kell telepíteni és használni az Active Directory felügyeleti modult a Windows PowerShellhez. A modul parancsmagjaival információkat szerezhet a különféle AD-objektumokról és beállításokról, és kezelheti azokat. Ez a modul külön komponensként kerül telepítésre a szerver operációs rendszerekbe. Asztali operációs rendszereken (Windows 10, 8.1, 7) telepítenie kell a Remote Server Administration Tools (RSAT) csomagot, amely tartalmaz egy modult az AD-vel való interakcióhoz a PowerShellből. Ezen a modulon kívül az RSAT tartalmazza az összes szükséges felügyeleti grafikus beépülő modult, parancssori segédprogramokat és Windows PowerShell modulokat a Windows és az AD adminisztrációjához. Ezt a csomagot magának kell letöltenie az operációs rendszer verziójához a Microsoft webhelyéről.

Az Active Directory modul telepítése a Windows PowerShellhez

A Windows PowerShell Active Directory modulja először a Windows Server 2008 R2 rendszerben jelent meg. Automatikusan a beállításra kerül. A PowerShell-parancsmagok AD-modulból való használatához a tartománynak legalább egy Windows Server 2008 R2 vagy újabb rendszert futtató vezérlővel kell rendelkeznie. Ha a hálózat csak Windows Server 2003 és 2008 DC-ket tartalmaz, akkor le kell töltenie és telepítenie kell az Active Directory Management Gateway szolgáltatást. Az Active Directory modulból származó PowerShell-parancsmagok kölcsönhatásba lépnek egy olyan webszolgáltatással, amely egy ADDS szerepkörrel rendelkező tartományvezérlő része.

A Windows PowerShellhez készült Active Directory Module nemcsak tartományvezérlőre telepíthető, hanem bármely tartományi tagkiszolgálóra vagy munkaállomásra. Windows Server 2016 rendszeren telepítheti az Active Directory modult a Windows PowerShellhez a Kiszolgálókezelő grafikus konzoljáról a Szerepkörök és szolgáltatások hozzáadása varázsló segítségével. Elég elindítani a varázslót, és az összetevők kiválasztásának szakaszában kiválasztani a Távoli kiszolgálófelügyeleti eszközök -> Szerepkör-felügyeleti eszközök -> AD DS és AD LDS eszközök -> elemet. Active Directory modul a Windows PowerShellhez(Távoli kiszolgálófelügyeleti eszközök > Szerepkör-felügyeleti eszközök > AD DS és AD LDS eszközök -> Active Directory modul a Windows PowerShellhez).

Ez a modul a PowerShell segítségével is telepíthető. Nyisson meg egy PowerShell-konzolt rendszergazdai jogokkal, és futtassa a parancsokat:

Import-Module ServerManager
Add-WindowsFeature -Név "RSAT-AD-PowerShell" -IncludeAll SubFeature

Windows 10, Windows 8.1 és Windows 10 esetén az RSAT-AD-PowerShell modul telepítéséhez először az RSAT megfelelő verzióját kell telepíteni, ezt követően a modult engedélyezni kell a Vezérlőpulton (Vezérlőpult -> Programok -> Programok és a funkciókat, majd kattintson a "Windows-szolgáltatások bekapcsolása" -> Távoli kiszolgálófelügyeleti eszközök -> Szerepkör-felügyeleti eszközök -> AD DS és AD LDS-eszközök -> engedélyezze az Active Directory modult a Windows PowerShell-összetevőhöz.

Vagy telepítheti a modult a PowerShell segítségével:

Enable-Windows OptionalFeature -Online -FeatureName RSATClient-Roles-AD-Powershell

Az Active Directory PowerShell-modul importálása és használata

Windows 7 és Windows Server 2008 R2 rendszeren, ahol a PowerShell 2.0 telepítve van, az AD-modul használatának megkezdéséhez importálnia kell azt a PowerShell-munkamenetbe a következő paranccsal:

Alternatív megoldásként exportálhat egy modult egy távoli gépről, amelyen már telepítve van, és importálhatja a PowerShell-munkamenetbe:

$MySession = Új-PSSession -ComputerName MyDomainController
Exportálás-PSsession-Session $MySession-Modul ActiveDirectory-OutputModule RemoteADPosh
Remove-PSSession -Session $MySession
Import-Module RemoteADPosh

Windows Server 2012 R2/2016 és Windows 8.1/Windows 10 esetén a modul (ha telepítve van) automatikusan importálódik a munkamenetbe.

Ha a számítógép egy tartományhoz csatlakozik, alapértelmezés szerint egy meghajtó jön létre névvel HIRDETÉS:..A CD paranccsal navigálhat erre a lemezre, és az ismert fájlrendszer-parancsokkal navigálhat ezen a lemezen. Az útvonalak X500 formátumban vannak.

PS C:\> cd AD:
PS AD:\> dir

PS AD:\> cd "DC=vmblog,DC=ru"

Az alábbiak szerint jelenítheti meg az Active Directoryval való munkavégzéshez rendelkezésre álló modul-parancsmagok listáját:

Get-Command - ActiveDirectory modul

A Windows különböző verzióiban eltérő számú parancsmag érhető el:

  • Windows Server 2008 R2 – 76 parancsmag.
  • Windows Server 2012 – 135 parancsmag
  • Windows Server 2012 R2 / 2016 – 147 parancsmag.

Így most már használhatja a PowerShell-parancsmagokat az AD adminisztrálására. Oldalainkon a következő parancsmagok használatával ismerkedhet meg a PowerShell AD moduljából: , .

A Windows PowerShell egy parancssori shell és szkriptnyelv, amely nagy teljesítményű és gyönyörű szintaxissal rendelkezik a rendszeradminisztrációhoz. A Windows PowerShell kiváló eszköz a Windows operációs rendszer, valamint a Windows rendszeren futó alkalmazások adminisztrációjának kezelésére és automatizálására.

A vbs-scriptek lelkes csodálója voltam. Mivel észrevettem, hogy azokhoz a feladatokhoz, amelyekhez korábban Delphit használtam, a vbs szkriptnyelv nagyon alkalmas. Végül is sokkal kényelmesebb, ha csak megnyit egy jegyzettömböt, tesz oda néhány sort, menti a fájlt a kívánt kiterjesztéssel, és futtatja a szkriptet. Ehhez nem kell semmit telepíteni, például a Delphi-t, ami szintén fizetős.

Bár a vbs nem rossz, az utód PowerShell sokkal több funkcióval rendelkezik.

Van egy vbs szkriptem, ami automatikusan feltölti a képeket az egyik blogba. Szükség volt a képet szélességben vagy magasságban igazítani, a hozzáadott kép felbontásától függően. Így nem tudtam elérni a képek felbontását vbs szkript segítségével, de a PowerShell segítségével ez nagyon egyszerűen megtehető.

Ha egy A Windows 7-től kezdve a PowerShell magával a Windows-szal együtt érkezik, akkor Windows XP rendszerben le kell töltenie és telepítenie kell - töltse le a PowerShell V2-t a Windows XP SP3 rendszerhez.

A Powershell 5. verziója a microsoft.com linkről tölthető le, leírja azt is, hogy a kívánt operációs rendszerhez melyik fájlt kell letölteni és hogyan kell telepíteni.

Hogyan engedélyezhető a helyi PowerShell-szkriptek futtatása?

Alapértelmezés szerint a Windows biztonsági okokból nem engedélyezi a PowerShell-szkriptek futtatását. Engedélyeznie kell a helyi szkriptek végrehajtását. Futtassa a parancsot a konzolon (lehetővé teszi a helyi szkriptek és a letöltött, megbízható tanúsítvánnyal aláírt szkriptek futtatását):

powershell -Command Set-ExecutionPolicy RemoteSigned

Ellenkező esetben, amikor megpróbálja futtatni a szkriptet, a következő szöveget fogja látni:

A C:\ImageSize.ps1 fájl nem tölthető be, mert a parancsfájl nem engedélyezett ezen a rendszeren. További információért írja be a „get-help about_signing” parancsot.
+ CategoryInfo: NotSpecified: (:) , ParentContainsErrorRecordException
+ FullyQualifiedErrorId: RuntimeException

A biztonsági szabályzat visszaállításához írja be:

powershell -Command Set-Execution Policy Restricted

Ha engedélyezni szeretné a szkriptek aláírás-ellenőrzés nélküli futtatását, írja be:

powershell -Command Set-ExecutionPolicy Unrestricted

Ha a következő üzenetet látja a szkript futtatásakor:

Biztonsági figyelmeztetés Csak azokat a szkripteket futtassa, amelyekben megbízik. Bár az internetről származó szkriptek hasznosak lehetnek, ez a szkript potenciálisan károsíthatja a számítógépet. Szeretné futtatni a \server\scripts\my.ps1 fájlt? [D] Ne futtassa [R] Futtassa egyszer [S] Felfüggeszti [?] Súgó (alapértelmezett "D"): d

És ha meg akar szabadulni tőle, akkor a szkript futtatásakor használja az -ExecutionPolicy Bypass paramétert

Powershell -ExecutionPolicy Bypass -fájl "\\server\scripts\my.ps1"

Hogyan lehet PowerShell-szkriptet futtatni?

Írja be a parancsot a parancssorba

Powershell - Fájlja a saját-script-name.ps1-et

Ahol a saját-script-name.ps1 a szkript neve. A PowerShell-szkriptfájlok *.ps1 kiterjesztéssel rendelkeznek

Segítség vagy segítség a Windows PowerShellhez

A PowerShell különféle parancsmagokkal rendelkezik az ilyen vagy olyan segítség lekéréséhez. De a legfontosabb: Get-Help

Írja be a parancsokat a konzolba:

powershell -parancs Get-Help

powershell -parancs Get-Help -?

És kap két különböző leírást, amelyek kiegészítik egymást a súgó használatáról.

A súgófunkciók meglehetősen kiterjedtek, példákkal és részletes leírásokkal oroszul. Ezért többféle formátumban is kiadhatja.

Például:

  • powershell -command Get-Help Get-Help - általános súgó a Get-Help parancsmaghoz
  • powershell -command get-help Get-Help -examples - példák a get-help parancsmag használatára
  • powershell -parancs get-help Get-Help -részletes - részletes súgó a get-help parancsmaghoz
  • powershell -parancs get-help Get-Help -full - a legteljesebb súgó a get-help parancsmaghoz

winintro.ru/windowspowershellhelp.ru/ - segítség html-book formájában

Windows Powershell megjegyzések:

Összehasonlító operátorok

  • -eq - Egyenlő
  • -ne - Nem egyenlő - Nem egyenlő
  • -ge - Nagyobb vagy egyenlő - Nagyobb vagy egyenlő
  • -gt Nagyobb mint
  • -lt - Kevesebb mint - Kevesebb mint
  • -le - Kisebb vagy egyenlő - Kisebb vagy egyenlő
  • -szerű - Helyettesítő karakterek összehasonlítása - Használjon helyettesítő karaktereket a mintákhoz
  • -notlike - Helyettesítő karakterek összehasonlítása - Használjon helyettesítő karaktereket a helyettesítő karakterek inkonzisztenciájának kereséséhez
  • -match - Reguláris kifejezések összehasonlítása - Használjon reguláris kifejezéseket a minták egyeztetéséhez
  • -notmatch - Reguláris kifejezések összehasonlítása - Használjon reguláris kifejezéseket a minta inkonzisztenciájának kereséséhez
  • -replace - Replace operator - Az operátortól balra lévő érték egy részét vagy egészét lecseréli
  • -contains - Containment operator - Határozza meg, hogy az operátortól balra lévő érték tartalmazza-e a jobb oldali értéket. Az eredmény egy logikai érték
  • -notcontains - Containment operátor - Megadja, hogy az operátortól balra lévő érték nem tartalmazza a jobb oldali értéket. Az eredmény egy logikai érték

Alapértelmezés szerint az összehasonlító operátorok nem különböztetik meg a kis- és nagybetűket.
A kis- és nagybetűk megkülönböztetése érdekében a parancs előtagja "c". Például a kis- és nagybetűket megkülönböztető -eq operátor "-ceq"-re változik.
Az explicit kis- és nagybetűk közötti összehasonlításhoz a parancs előtagja "i". Példa: a -replace operátor nem érzékeny a kis- és nagybetűkre -ireplace

  • -is - Egy típus
  • -nem - Nem típus
  • -as - As type, nincs hiba, ha a konverzió sikertelen

PowerShell logikai operátorok:

  • -és - Mindkét feltételnek igaznak kell lennie ahhoz, hogy a kifejezés igaz legyen
  • -vagy - Az egyik vagy mindkét feltételnek igaznak kell lennie ahhoz, hogy a kifejezés igaz legyen
  • -xor - Az egyik feltételnek igaznak, a másodiknak hamisnak kell lennie ahhoz, hogy a kifejezés igaz legyen
  • -not - A megadott feltételeknek "false"-ra kell értékelniük, hogy a kifejezés igaz legyen
  • ! - A megadott feltételnek "false"-ra kell értékelnie, hogy a kifejezés igaz legyen

$myVar -a "String" $myVar -eq 123 $myVar -ceq $myVar2 "abcdef" -például "abc*" "abcdef" -csere "dEf","xyz" $myVar1 -a "String" -és $myVar2 -az "Int" (1 -egyenlet 1) -és -not (2 -gt 2)

String műveletek

#Ossza fel a karakterláncot szóközökkel: $string = "Tesztkarakterlánc" $string.split(" ") $string.IndexOf(" ") #Keresés a $karakterláncban az első szóközre # Az első előfordulásának nulla alapú indexét adja vissza Index abcdefgh".Substring(1) bcdefgh # Egy 1. pozícióból kezdődő és 4 karakter hosszúságú részkarakterláncot ad vissza PS> "abcdefgh".Substring(1,4) bcde # Alkarakterlánc beszúrása a 0. pozícióból PS> "abcdefgh".insert(0," X") Xabcdeabcde # Eltávolítás a 0 pozícióból hosszúság 2 PS> "abcdefgh".remove(0,2) cdeabcde # Objektumtulajdonság - karakterlánc hossza PS> "abcdefgh".length 8 # True értéket ad vissza, ha a karakterlánc tartalmazza a "cde" részstringet PS> "abcdefgh" .Contains("cde ") True # Igazat ad vissza, ha a karakterlánc az "abc" részkarakterlánccal kezdődik PS> "abcdefgh".startsWith("abc") True # Igazat ad vissza, ha a karakterlánc a " részkarakterlánccal végződik fgh" PS> "abcdefgh".endsWith("fgh" ) Tru e # Igaz értéket ad vissza, ha a karakterlánc tartalmazza a "cde" részkarakterláncot PS> $"abcdefgh" -like "*cde*" True # Egy tömböt ad vissza, ahol "d" a határoló PS> "abcdefgh" -split "d" abc efgh # Két ":" - elválasztó karakterláncot ad vissza PS> "abcdefgh", "xyz"-join ";" abcdefgh;xyz # Egy karakterláncot ad vissza, ahol az "abc" helyére "XYZ" lép. PS> "abcdefgh".replace("abc","XYZ") XYZdefgh # Egy karakterláncot ad vissza, ahol a karakterek NAGYBETŰ PS> "abcdefgh" ".ToUpper( ) ABCDEFGH # Egy karakterláncot ad vissza, ahol a karakterek kisbetűssé alakulnak PS> "ABCDEFGH".ToLower() abcdefgh

Előre definiált változók

$otthon– felhasználói könyvtár
$NULL- üres
$igaz- igazság
$false- hazudik
$DebugPreference– A „Continue” kimeneti hibakeresés, a „SilentlyContinue” nem ad ki hibakeresési információkat. Lásd a Write-Debug parancsot

Fájlokkal való munka

$string | Out-File $file -Hozzáfűzés #$karakterlánc hozzáfűzése újsorral a fájlhoz $fájl $string = get-content -$fájl elérési útja #A fájl tartalmának lekérése a $stringben $viccek = ::ReadAllText($file ) #a teljes fájl beolvasása egy sorba Tesztelérési út "C:\teszt.txt" #Ellenőrizze, hogy létezik-e fájl

Keresse meg az összes fájlt egy adott fájlnévkiterjesztéssel egy könyvtárban és alkönyvtárban.
Ezután másolja át ezeket a fájlokat egy másik könyvtárba.

$flist = get-childitem e:\doc\* -include *.pdf -recurse $flist | ForEach-Object($_.CopyTo("e:\doc\all_pdf\" + $_.PSChildName)) ls d:\ | ?($_.psiscontainer) | válassza ki a teljes nevet #Csak a könyvtárak megjelenítése ls d:\ | ?(!$_.psiscontainer) | válassza ki a teljes nevet #Csak a fájlok megjelenítése $local = Hely lekérése #Aktuális könyvtár $local.Path # Munkakönyvtár $local.Drive.Root # Root $local.Drive.Name # Meghajtóbetűjel $local.Drive.Used # Használt meghajtó $local .Drive.Free # Ingyenes a lemezen

A D meghajtón lévő fájlok teljes nevének megjelenítése: 2014. június 1. és 2014. szeptember 20. között megváltoztak:

Ls d:\ -recurse | ?(!$_.psiscontainer) | válassza ki a teljes nevet,LastWriteTime | Where-Object ( $_.LastWriteTime -ge "06/01/2014" -és $_.LastWriteTime -le "09/20/2014")

Szöveg megjelenítése a képernyőn

# szöveg, amire figyelni kell. Sárgával kiemelve. Write-Warning("A szöveg figyelmet igényel") # Csak a szöveg kimenete Write-Host("Csak szöveg") #enable debug output $DebugPreference = "Folytatás" # hibakeresési információk nyomtatása Write-Debug "A fájl nem nyitható meg." # letiltott hibakeresési kimenet $DebugPreference = "SilentlyContinue"

Szünet néhány másodpercre

Start-Sleep -s 15 # Szünet 15 másodpercig

Szünet a konzolban, amíg meg nem nyomják az Enter billentyűt

Read-Host "Nyomja meg az Entert"

Munka folyamatokkal

#Feladat: az összes Notepad nevű folyamat leállítása # 1. módszer get-process Notepad | Stop-Process # Method #2 (Csak egy folyamattal működik) $plist = get-process Jegyzettömb $plist.Kill() # Method #3 (ugyanaz, mint a 2, de minden folyamat) $plist = get-process Jegyzettömb $ plist | ForEach-Object ($_.Kill()) #Folyamatok lekérése és kezdési dátumuk: Get-Process| Format-Table Name, StartTime -AutoSize

Növekedés

$i++ - híváskor i a régi értékkel rendelkezik, de utána 1++-al nő

++$i - a hívás időpontjában az i értéke 1-gyel nő

Tömbök

$tömb = 17,15,160 #három elemből álló tömb létrehozása $tömb -tartalmazza $elem #tartalmazza-e a tömb a $file1 elemet #a $file1.count tömb 0. eleme #a tömb mérete #az "asdf" elem eltávolítása a tömbből $array = @ ("adsf","adf","erge") $tömb = $tömb |? ($_ -ne "adf") #csak egyedi tömbelemek lekérése $a = @(1,2,3,4,5,5,6,7,8,9,0,0) $a = $a | select -uniq #az elem első előfordulásának indexe a tömbben $array.indexOf("cde")

Ha Elseif Else konstruál

if ($i -eq 0) ( Write-Host("i nulla") ) ElseIf ($i -eq 1) ( Write-Host("i egyenlő eggyel") ) Else ( Write-Host("i nem egyenlő nullával vagy eggyel")

ForEach Loop

$services = Get-Service ForEach ($szolgáltatás a $servicesben) ( $service.Stop() ) 65 #ASCII-kód konvertálása "A" karakterré #karakter konvertálása ASCII-kódba "Hello" #karakterlánc konvertálása ASCII-kódokká

Várakozás bármely gomb megnyomására:

$HOST.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") | OUT-NULL $HOST.UI.RawUI.Flushinputbuffer() $host.ui.RawUI.WindowTitle = "(!LANG:elimS ablak címe" #задаем заголовок окна !}

Adattípusok a PowerShellben

A leggyakoribb típusok:

Fix hosszúságú Unicode karakterlánc Egy Unicode 16 bites karakter Egy 8 bites előjel nélküli karakter 32 bites előjelű egész 64 bites előjelű egész Boolean Igaz/hamis érték Egy 128 bites decimális érték Egy pontosságú 32 bites lebegőpontos szám Dupla -precíziós 64 bites lebegőpontos szám Dátum és idő Xml objektum Értéktömb Hashtable objektum

Vannak beépített állandók is: $true,$false, $null

Unicode: Unicode-karakter PowerShell-karakterláncban való kódolásához írja be a Unicode elé 0x-et, és adja át a System.Char-ba:

PS > 0x263a ☺

Adattípus átalakítás

Ha egy adott adattípusra szeretne konvertálni, az értéket vagy a változót a szögletes zárójelben lévő típus elé írja, Cast operátorés kényszeríti a kiválasztott adattípust:

PS C:\> "0064" 64 PS C:\> $false 0 PS C:\> ("0x" + "FF") 255

Adattípusok tesztelése

PS C:\> 32 -is
Igaz PS C:\> $true -is
Igaz

Funkciók a Powershellben

function elimS ( #egy függvény, amelynek több bemeneti paramétere van param($string = "default", $integer = 7) #bemeneti paraméterek write-host "string = " $string " | integer = " $integer ) elimS #függvény meghívása paraméterdefiníciók nélkül a paraméterek az alapértelmezett értéket veszik fel $string = "tesztkarakterlánc" $integer = 911 elimS $string $integer #így hívjuk meg helyesen a függvényt - szóközzel választjuk el a paramétereket elimS -integer $integer - string $string #ez is helyes $global:var1 = "teszt" egy globális változó, így függvényekből is átadhatja a változók értékét.

További információ arról, hogyan lehet több paramétert átadni egy függvénynek:

Pihenés

get-host #powershell-verzió megjelenítése Clear-RecycleBin c: -Kényszerített #kuka kiürítése Tömörítés-Archívum -C elérési út:\teszt\* -Célelérési út:\archívum\test1.zip #zip mappa Kibontás -Archívum -C elérési út:\temp \test1.zip "C:\teszt\Új mappa\" #archívum kicsomagolása (Get-CimInstance Win32_operatingSystem).lastbootuptime #show system boot time write-host $sleep_array.GetType().FullName #változótípus-kapcsoló megjelenítése ($a) ( #eset – többszörös, ha 1 ($b = $b+10 ) 2 ($b = $b+20 ) 3 ($b = $b+30 ) 4 ($b = $b+40 ) alapértelmezett ($b = $b+50) ) Get-Content - "C:\scripts\test.txt" elérési út - Várjon #hasonló a linux végéhez

powershell parancsmagok

Sort-Object- az objektumokat növekvő vagy csökkenő sorrendbe rendezi az objektumtulajdonságok értékei alapján. Beállíthat egy tulajdonságot vagy több tulajdonságot (több kulcs szerint rendezve), és választhat a kis- és nagybetűk közötti rendezés közül. Azt is beállíthatja, hogy a Sort-Object parancsmag csak egy adott tulajdonsághoz tartozó egyedi értékkel rendelkező objektumokat jelenítse meg.

Elem másolása- átmásol egy elemet a névtér egyik helyéről a másikra. A Copy-Item parancsmag nem törli a másolt elemeket. A parancsmag által másolható elemek típusát a Windows PowerShell-szolgáltatók jelenléte határozza meg. Például, ha a parancsmagot a FileSystem szolgáltatóval használja, akkor a fájlokat és mappákat, míg a beállításjegyzék-szolgáltatóval a rendszerleíró kulcsokat és bejegyzéseket másolja.

Elem áthelyezése- áthelyez egy elemet, beleértve annak tulajdonságait, tartalmát és gyermekelemeit, egyik helyről a másikra. Mindkét megadott helyet ugyanannak a szolgáltatónak kell támogatnia. Például áthelyezhet egy fájlt vagy alkönyvtárat egyik könyvtárból a másikba, vagy áthelyezhet egy regisztrációs alkulcsot egyik alkulcsból a másikba. Amikor áthelyez egy elemet, az eredeti helyén törlődik, és egy újban jön létre.

Elem eltávolítása- eltávolít egy vagy több elemet. Ezt a parancsmagot számos gyártó támogatja, így különféle típusú elemeket tud eltávolítani, beleértve a fájlokat, könyvtárakat, rendszerleíró kulcsokat, változókat, álneveket és függvényeket.

Get-ChildItem- Elemeket kap a megadott helyekről. Ha az elem egy tároló, akkor ez a parancsmag a tárolóból lekéri az elemeket, amelyeket gyermekelemeknek nevezünk. A Recurse opcióval az összes alárendelt tárolóból lekérhet elemeket. A hely lehet egy hely a fájlrendszerben, például egy könyvtár, vagy egy másik szolgáltató által biztosított hely, például egy rendszerleíró adatbázis vagy igazolástároló.

powershell parancsmag beállításai

-ErrorAction- a paraméter minden parancsmagban megtalálható, lehetővé teszi a hiba előfordulásakor végrehajtandó művelet beállítását:

  • Folytatás – hibaüzenet megjelenítése és a végrehajtás folytatása
  • SilentlyContinue – hagyja figyelmen kívül a hibát, és folytassa
  • Stop - a végrehajtás leállítása az első hiba esetén
  • Érdeklődni – hiba esetén kérje meg a következő teendőket

Példa: Copy-Elem "d:\teszt1\klbackup*" "d:\test2\" -ErrorAction stop

-Mi van ha- Üzenetet jelenít meg, amely leírja a parancs eredményét anélkül, hogy ténylegesen végrehajtaná azt. Minden parancsmagban jelen van.

get-help about_CommonParameters- bármely parancsmaggal használható paraméterek leírása.

SSH Powershell-en keresztül

Példa az SSH-n keresztüli munkavégzésre:

#telepítse az SSH-modult, egyszer Find-Module Posh-SSH | Install-Module #SSH-munkamenet létrehozása: Import-Module Posh-SSH $ComputerName = "1.2.3.4" $UserName = "ubuntu" $KeyFile = "C:\SSH\key.pem" $nopasswd = új objektumrendszer. Biztonság .SecureString $Crendtial = New-Object System.Management.Automation.PSCredential ($UserName, $nopasswd) $SSHSession = New-SSHSession -ComputerName $ComputerName -Credential $Crendtial -KeyFile $KeyFile #Shell $SHCreate SSHSession | New-SSHShellStream # parancs küldése $SSH.WriteLine("ifconfig") # válasz olvasása $SSH.read() # session bezárása: $sshSession | Remove-SSHSsssion

Csapatok:

  • Get-SSHTrustedHost – tekintse meg a megbízható gazdagépeket
  • Get-SSHSession – a nyitott munkamenetek listájának megtekintése
  • Remove-SSHSession – munkamenet bezárása

Jegyzet. Ezt a modult a WMF 5.0 telepítése nélkül is használhatja. A PS 4.0 és 3.0 modul-előnézete külön is elérhető – 2016. március, az újabbakért pedig keressen rá a letöltőközpontban a PackageManagement PowerShell Modules Preview webhelyére.

Programok telepítése

Ez a példa négy programot és a Sysinternals segédprogramok teljes készletét telepíti a Chocolatey lerakatból. Az első három parancs egyszer végrehajtásra kerül, és a házirend-módosítást meg kell erősíteni. A negyedik parancs csendben telepíti a felsorolt ​​programokat, az ötödik pedig egyszerűen időt takarít meg.

#Aláírt csomagok telepítésének engedélyezése az internetről Set-ExecutionPolicy RemoteSigned #Set Chocolatey szolgáltató Get-PackageProvider -Name Chocolatey -ForceBootstrap #Make Chocolatey megbízhatónak Set-PackageSource -Name Chocolatey -Megbízható #Programok telepítésePluszPlus, Jegyzetfájl telepítése PluszPlus, v , sysinternals -Verbose -Force -ProviderName chocolatey #Futtatható fájlok (sysinternals) elérési út hozzáadása a PATH-hoz setx PATH "$env:path;C:\Chocolatey\bin" -m

A szolgáltató letölti a C:\Chocolatey\lib könyvtárba a chocolateyInstall.ps1 szkripten alapuló csomagot. Letölti a programtelepítőt a hivatalos oldalról a %temp%\Chocolatey mappába, és csendes telepítési módban futtatja. A legegyszerűbb példa a Notepad++.

Install-ChocolateyPackage "notepadplusplus" "exe" "/S" "https://notepad-plus-plus.org/repository/6.x/6.9/npp.6.9.Installer.exe"

Programkeresés

Rengeteg program található a tárolókban, a legnépszerűbbek mindegyike biztosan ott van.

Find-Csomag "*zip*","*commander*" - Szolgáltató neve Chocolatey

Telepítő típusok és csendes telepítési kulcsok

  • Windows automatikus telepítési webhely és szoftver automatikus telepítési fóruma
  • Windows frissítések telepítése Powershell segítségével

    • Töltse le a Windows Update PowerShell modult a Microsoft webhelyéről.
    • Csomagolja ki az archívumot a %WINDIR%\System32\WindowsPowerShell\v1.0\Modules mappába
    • Ha még nem engedélyezte a helyi szkriptek futtatását, akkor tegyük meg: "Set-ExecutionPolicy RemoteSigned".
      • Ellenőrizheti a "Get-ExecutionPolicy" paranccsal: a "Restricted" helyett "RemoteSigned" legyen.
    • Importálja a letöltött modult a következő paranccsal: "Import-Module PSWindowsUpdate"
    • Kész. Most használhatja a következő parancsokat:
      • Tekintse meg az elérhető frissítések listáját: Get-WUInstall -ListOnly
      • Telepítse az összes frissítést megerősítés kérése nélkül: Get-WUInstall -AcceptAll
      • Telepítse az összes frissítést megerősítés kérése és késleltesse az újraindítást: Get-WUInstall -AcceptAll -IgnoreReboot
      • Telepítsen bizonyos frissítéseket a számuk ismeretében:"Get-WUInstall -KBArticleID KB3066441, KB3078676 -AcceptAll -IgnoreReboot" - most nem kell felkeresnie a Microsoft webhelyét, és manuálisan letöltenie őket
      • Részletes segítség a modulhoz: get-help Get-WUInstall -részletesen
      • Tekintse meg az elérhető frissítések listáját, kivéve a "Nyelvcsomagok" kategóriát, a "Skype" címeket és a KB3012973 frissítést: Get-WUInstall -NotCategory "Nyelvcsomagok" -NotTitle Skype -NotKBArticleID KB3012973 -ListOnly
      • Frissítések telepítése, kivéve a "Nyelvcsomagok" kategóriát, a "Skype" címet és a KB3012973 frissítést: Get-WUInstall -NotCategory "Nyelvcsomagok" -NotTitle Skype -NotKBArticleID KB3012973 -AcceptAll -IgnoreReboot

    Szia. =)
    Egy másik istenkáromló cikk a Windows Server adminisztrációjáról az operációs rendszer kezdeti használatra való felkészítéséről szól. Elrontott az a tény, hogy a Windows Server alapverziójában grafikus felhasználói felülettel, valamint a Windows Server 2012 Core és újabb verzióiban a Powershell már telepítve van, nagyon meglepett, hogy a Windows Server 2008R2 Core-ban ez nem olyan szaga van. Mert A beállítás nem volt túl egyértelmű, és googlezni és techneten kellett keresnem, úgy döntöttem, lejegyzem egy kis megjegyzést a jövőre nézve.

    Tehát először legalább a PowerShell 2.0 áll majd rendelkezésünkre (sőt, ez a lépés kihagyható, ha mindent az alábbiakban leírtak cmd-ben csinálunk, de én ezzel kezdtem). Ezt kétféleképpen lehet megtenni: a sconfig.cmd segédprogram parancssorból történő futtatásával vagy a DISM ( Telepítési kép szolgáltatása és kezelése) ott. Az első egy pszeudografikus felületet kínál számunkra, ahol a 4. pont alatt megtaláljuk a lehetőséget a PS 2.0 telepítésére.

    A DISM-en keresztül ez a következőképpen történik:
    dism.exe /online /enable-feature:MicrosoftWindowsPowerShell

    Miután telepítettük a PS-t, újraindítottuk és egy kicsit megfelelőbb eszköz áll rendelkezésünkre, megpróbáljuk frissíteni az aktuális verzióra. Az írás idején ez a 4.0-s verzió vagy az 5.0-s előzetes verzió volt. Számomra a 3.0-s verzió a minimálisan használható verzió, amely már sok olyan parancsmagot tartalmaz a kiszolgálói szerepkörök és erőforrások kezelésére, amelyek nem szerepelnek a második verzióban. A Windows PowerShell 3.0 használatához a .Net Framework 4.0 vagy újabb verzióját telepíteni kell a rendszerre.
    Ha most megpróbáljuk telepíteni a .Net 4.0-t, akkor megtudjuk, hogy ehhez szükségünk van a már telepített .Net 2.0-ra, ami valamiért hiányzik a Server Core kiadásból. Vicces, de megszokásból a telepítő letöltése és futtatása után a telepítés elutasítását kapjuk, és észrevesszük, hogy a dism.exe-t kell használnunk. >_< OK, dism, так dism. Уставливается по аналогии с PS:
    dism.exe /online /enable-feature:NetFx2-ServerCore
    dism.exe /online /enable-feature:NetFx2-ServerCore-WOW64

    A következő lépés a .Net Framework frissítése a legújabb verzióra. Ha a Powershell 3.0-t szeretné használni, telepítse a .Net 4.0-t, ha pedig a legújabb verziót, akkor a .Net 4.5.1-es vagy újabb verzióját. A választás az Öné, a telepítés rendkívül egyszerű. A fogás csak a telepítőcsomag beszerzésében lehet - csatlakoztattam egy hálózati meghajtót a szerverhez, amelyre az összes telepítőfájlt feltöltöttem; bármilyen Önnek megfelelő médiumot használhat.

    Tehát elkészítettük az alapot a PS 3.0 és újabb verzióinak telepítéséhez. A következő lépés a Windows Management Framework telepítőjének letöltése és telepítése. Töltse le és futtassa a szükséges architektúra KB2819745 kódját:

    Hagyományosan a telepítés után újra kell indítanunk, miután megcsináltuk, a PowerShell 4.0 áll majd rendelkezésünkre.

    Egyébként ahhoz, hogy az Add-WindowsFeature parancsmagot (a Windows Server 2012-ben Install-WindowsFeature néven átkeresztelve) használni tudja a kiszolgálói szerepkörök konfigurálására, telepítenie kell a Kiszolgálókezelő összetevőit ugyanazon a DISM.EXE fájlon keresztül. Ez így néz ki:
    dism.exe /online /enable-feature:ServerManager-PSH-Cmdlet s
    Általában nagyon el vagyok kényeztetve a PS legújabb verzióival, tk. A harmadik verzió megjelenése után vettem fel, de mint kiderült, a dism.exe a szerepek telepítésére is korlátozódhat. Ha pedig nem ismeri a szükséges szolgáltatás nevét, akkor a /get-features paraméteren keresztül mindig megtekintheti az összes elérhető opciót és azok állapotát. De ami engem illet, a Get-WindowsFeature sokkal informatívabb. =)
    dism.exe /online /get-features vs. Get-WindowsFeature