Co je powershell ve Windows 7. Základy Windows PowerShell. Rutiny v PowerShellu

Ahoj všichni! Dnes krátká poznámka k tématu, jak otevřít powershell jako správce. Dovolte mi, abych vám připomněl, že PowerShell je výkonný programovací a administrativní jazyk od společnosti Microsoft, každý rok roste, všechno velké množství rutiny a funkčnost. V podstatě se jedná o náhradu za příkazový řádek Windows. Níže zvážíme metody, které vám umožní otevřít a nakonfigurovat.
.

Metody otevření modulu snap-in prostředí PowerShell

Powershell se vyvíjí velmi dobře a s vydáním Windows 10 již obdržel verzi 5, ale naše téma je jiné. Jak tedy otevřít powershell? Všechno je jednoduché, pokud ve Windows XP, pak nic. Protože je dodáván samostatně, ve všech následujících verzích je dodáván jako vestavěná součást. Většina univerzální metoda otevřete powershell tímto kliknutím

Win+R a vstup do powershell

Stisknutím klávesy enter se konzole PowerShellu spustí, problém je pouze v tom, že se neotevře jako správce. V důsledku toho nebude mnoho příkazů provedeno; níže uvidíme, jak to provést jménem správce.

Jak spustit windows powershell jako správce ve Windows 8.1 a Windows 7

Windows Powershell můžete otevřít pomocí Start. Ve Windows 8.1, Windows 2012 R2 přejděte na Systémové nástroje – Windows, klikněte pravým tlačítkem a vyberte Spustit jako správce.

Ve Windows 7 a Windows 2008 R2 to vypadá takto Start > Příslušenství > Windows PowerShell

Můžete také vytvořit zástupce v položce úkolu a kliknout na něj pravým tlačítkem a vybrat příslušnou položku

Bylo by vhodné, kdyby se PowerShell vždy otevíral jako správce, pojďme to implementovat. To se provádí stejným způsobem ve všech verzích Windows. Otevření ovládacího panelu

Klikněte na něj pravým tlačítkem a vyberte Vlastnosti. Okamžitě vidíte cestu k souboru, kde se v systému nachází.

Klikněte na tlačítko "Upřesnit". Uvidíte další vlastnosti. kde musíte zaškrtnout políčko Spustit jako správce.

Vše je velmi jednoduché. Jsem si jistý, že nyní nebudete mít otázku, jak otevřít Windows Powershell. Další užitečnou věcí je změna písma v okně powershell.

Jak otevřít PowerShell z kontextové nabídky tlačítka Start ve Windows 10

Microsoft klade stále větší důraz na příkazový řádek směrem k jeho silnému jazyku (PowerShell), a to je logické, protože jeho schopnosti pro správu operačních systémů Rodina Windows, jsou téměř neomezené, ne-li více, než v grafickém rozhraní. Počínaje Verze Windows 10 1709 v kontextové nabídce PowerShell nahradil obvyklý cmd pro všechny. Klepněte pravým tlačítkem myši na tlačítko Start ve Windows 10 az kontextové nabídky vyberte příslušnou položku:

  1. Windows PowerShell
  2. Windows PowerShell (administrátor) je přesně ten režim s maximálními právy ve Windows 10.

Spusťte Windows PowerShell pomocí vyhledávání ve Windows 10

Ve Windows 10 a starších verzích najdete PowerShell pomocí pravidelné vyhledávání, je pro to speciální sekce. Klikněte vedle tlačítka Start na ikonu lupy. Do vyhledávacího formuláře, který se otevře, zadejte slovo PowerShell. Vyhledáte všechny možnosti, mezi nimiž najdete skořápku. Pokud na něj kliknete pravým tlačítkem, můžete jej otevřít jako správce.

Spuštění prostředí Windows PowerShell z nabídky Start ve Windows 10

Chcete-li PowerShell otevřít z nabídky Start, otevřete jej a najděte položku Windows PowerShell, bude ve formě složky, otevřete ji a spusťte příslušnou verzi.

Pokud kliknete pravým tlačítkem myši, můžete spustit prostředí Vershel jako správce s právy správce.

Další a obecné metody spouštění shellu

Existují také velmi specifické metody pro otevření shellu pomocí výkonného jazyka od společnosti Microsoft. Ten nejnemotornější, lze ho snadno najít spustitelný soubor a spusťte jej přímo z umístění v systému. Pojďme k vašemu Windows 10 po následující cestě:

C:\Users\username\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell

V důsledku toho uvidíte složku se zástupci, kteří jsou přítomni v nabídce Start, můžete je spustit.

Můžete také spustit původní spustitelný soubor, který se nachází podél cesty:

C:\Windows\System32\WindowsPowerShell\v1.0

A kliknutím na něj pravým tlačítkem si jej můžete stáhnout jako správce s maximálními právy.

Windows PowerShell můžete spustit také z okna příkazového řádku; k tomu stačí zadat kouzelné slovo a stisknout Enter.

Dovolte mi také připomenout způsob spouštění nové úlohy z modulu snap-in „Správce úloh“. Otevřete "Správce úloh", vyberte položku nabídky "Soubor - Spustit novou úlohu"

V zobrazeném okně zadejte PowerShell.

No, poslední metoda, kterou znám, je spuštění PowerShell, přes Průzkumník Windows 10, otevřete Explorer, vyberte položku nabídky "Soubor - spustit Windows PowerShell", budou oba režimy.

Co je PowerShell ISE

Pravděpodobně jste si všimli, že zkratka PowerShell ISE je všude a rádi byste věděli, co to je. Stručně řečeno, jedná se o speciální prostředí, ve kterém můžete psát skripty a scénáře v PowerShellu pomocí všech různých rutin, které vám Microsoft nabízí.

Powershell změna písma je velmi jednoduchá, ve vlastnostech přejděte na záložku Písmo, kde můžete nastavit velikost od 5 do 72.

Do vlastností se dostanete také ze samotného okna nástroje, klikněte na ikonu v levém horním rohu a vyberte vlastnosti

Zde je nastavení písma mírně odlišné a jak se mění, mění se i velikost konzole.

Na kartě Barvy můžete nastavit barvu písma v Powershell a samotném okně. Tím, že je například černý, jako příkazový řádek.

Také doporučuji, pokud jste aktivním uživatelem konzole, nastavte velikost vyrovnávací paměti ne na 50 příkazů, ale alespoň na 100.

Děkuji za pozornost. Toto jsou způsoby otevření konzoly Power Shell v systému Windows. Materiál stránek

Mnoho uživatelů ví o příkazovém řádku, ale jen velmi málo z nich slyšelo o prostředí Windows PowerShell. V jistém smyslu je PowerShell nástroj, jehož cílem je nahradit příkazový řádek a poskytnout výkonnější možnosti pro správu operačního systému Windows. V tomto článku se pokusíme jasně vysvětlit, co tento nástroj je, proč je tak výkonný a kdo má tendenci jej nejčastěji používat.

Co je PowerShell?

Pro lepší pochopení musíme nejprve pochopit, co je to skořápka. V informatice je shell uživatelské rozhraní, které poskytuje přístup k různým službám. operační systém. Shell může být založen na příkazovém řádku nebo může obsahovat grafické uživatelské rozhraní (GUI).

Windows PowerShell je prostředí vyvinuté společností Microsoft pro účely automatizace úloh a správy konfigurace. Tento výkonný shell je založen na .NET frameworku a obsahuje shell příkazového řádku a skriptovací jazyk.

Nad standardním prostředím příkazového řádku může být také prostředí Windows PowerShell ISE. ISE funguje jako integrované skriptovací prostředí – grafické uživatelské rozhraní, které umožňuje vytvářet různé skripty bez nutnosti zadávat všechny příkazy na příkazovém řádku.

První verze PowerShellu byla vydána v listopadu 2006 pro Windows XP. Windows Server 2003 a Windows Vista. Nejnovější je verze 4.0, která byla vydána v říjnu 2013. Standardně se dodává s Windows 8.1 a Windows Server 2012 R2.

Co můžete dělat s PowerShell?

Microsoft vyvinul Windows PowerShell jako nástroj, který pomáhá automatizovat a rychle řešit mnoho únavných administrativních úkolů. Můžete například použít PowerShell k zobrazení všech zařízení USB nainstalovaných na jednom nebo více počítačích v síti, nebo můžete nastavit časově náročnou úlohu Pozadí zatímco děláte jinou práci. Můžete také identifikovat a ukončit procesy, které nereagují, nebo filtrovat konkrétní informace o počítačích ve vaší síti a exportovat je ve formátu HTML.

Možnosti prostředí PowerShell vám umožňují zjednodušit a automatizovat časově náročné a opakující se úlohy vytvářením skriptů a kombinováním více příkazů dohromady.

Pokud jste správce sítě, PowerShell se vám bude při práci velmi hodit Aktivní adresář. Vzhledem k tomu, že nástroj obsahuje stovky přizpůsobitelných příkazů nazývaných rutiny, je pravděpodobnost, že vám PowerShell pomůže zvýšit produktivitu, velmi vysoká.

Jak spustit PowerShell ve Windows 8.1?

Pokud na úvodní obrazovce nebo zástupce na ploše nemáte dlaždici PowerShell, můžete ji otevřít pomocí vyhledávání – to je jedna z nejčastějších jednoduchými způsoby. Stiskněte +Q, napište „powershell“ a poté stiskněte Enter.

PowerShell můžete otevřít také ze sekce Aplikace na úvodní obrazovce: přejděte na Domovská obrazovka a přesuňte kurzor do levého dolního rohu, těsně pod poslední dlaždici v prvním sloupci. Klikněte na ikonu se šipkou směřující dolů. Poté klikněte na ikonu PowerShell v sekci „Utilities“.

Chcete-li otevřít PowerShell pomocí dialogového okna Spustit, stiskněte +R, napište „powershell“ a stiskněte Enter.

Jak spustit PowerShell ve Windows 7?

Ve Windows 7 můžete nástroj najít vyhledáním slova „powershell“ v nabídce Start.

PowerShell můžete otevřít také prostřednictvím nabídky Start v části Příslušenství.

Je zřejmé, že výše uvedený příkaz v okně Spustit funguje také ve Windows 7.

Kdo obvykle používá PowerShell?

PowerShell je bezpochyby volbou mnoha správců IT. A to z dobrého důvodu, protože tento nástroj výrazně zjednodušuje operace správy a snižuje množství práce ve velkém firemní sítě.

Řekněme, že spravujete velkou síť obsahující více než pět set serverů a potřebujete implementovat nové bezpečnostní řešení, které závisí na nějaké službě, která musí na těchto serverech běžet. Samozřejmě se můžete připojit ke každému serveru a zjistit, zda je na něm nainstalována a spuštěna požadovaná služba. V tomto případě však vaše vedení pravděpodobně nebude spokojeno, protože na dokončení úkolu budete potřebovat příliš mnoho času.

S pomocí PowerShellu tuto práci můžete provést během několika minut, protože celou operaci lze provést pomocí jediného skriptu, který bude shromažďovat informace o službách běžících na zadaných serverech a uložit je jako textový soubor, např.

PowerShell vám umožňuje dělat mnohem více, než se dá popsat v jednom článku, takže pokud máte opravdový zájem, vřele doporučujeme zakoupit a přečíst si jednu z mnoha knih, které pokrývají sílu tohoto nástroje.

Měj krásný zbytek dne!

V tomto článku se podíváme na takovou technologii od společnosti Microsoft jako Windows PowerShell, povíme si, co je PowerShell, co jsou to rutiny a pipeline, jak psát skripty a moduly a dotkneme se také dalších neméně důležitých a užitečných funkcí Windows PowerShellu.

Před PowerShellem existovaly ( a jsou) následující nástroje pro automatizaci a správu služeb: příkazový řádek Windows a Windows Script Host. Ale tyto technologie mají nevýhody.

U týmu Řetězce Windows Je zde také možnost provádět některé administrativní úkoly a možnost zapsat si algoritmus akcí, uložit jej jako skript (bat soubor), přičemž můžete použít určité programovací prvky, například použít proměnné, podmíněné konstrukce a dokonce i něco jako smyčky.

Většina softwarových produktů má konzolové rozhraní, tzn. můžeme program spravovat pomocí příkazového řádku a zároveň šetřit zdroje kvůli nedostatku pracovních nákladů GUI. Microsoft dokonce vydává edice bez grafického rozhraní pro serverový operační systém Windows Server ( Server Core, Windows Server 2016 má dokonce Nano Server), ale to vše nestačí, protože možnosti příkazového řádku jsou omezené, tzn. Nebudeme schopni napsat nějakou složitou logiku, abychom něco zautomatizovali, a i kdyby to šlo, bude to vyžadovat čas a znalosti.

Nevýhodou příkazové řádky je také to, že k plné správě serveru využíváme různé konzolové utility softwarových produktů, a proto je použití příkazové řádky pro administraci skutečně obtížné, a to z toho pohledu, že všechny tyto utility mají různé syntaxe, parametry, způsoby použití a za účelem provádění typických úkolů, tzn. každý den si toto vše musíte uchovávat v paměti a pro provádění atypických úkolů si musíte nejprve přečíst nápovědu nebo dokumentaci.

Technologie Windows Script Host umožňuje provádět veškeré administrativní úkony jako příkazový řádek, včetně jejich automatizace psaním WSH skriptů, zde však již můžeme využívat plnohodnotné programovací jazyky ​​( VBScript a JScript), tj. lze implementovat komplexní logiku a algoritmy. Kromě toho s pomocí WSH spravujeme softwarové produkty prostřednictvím objektového rozhraní, jinými slovy, Windows Script Host je mnohem více „ chladič» než příkazový řádek. Ale tuto technologii se také nestal tím ideálním nástrojem pro správu a automatizaci této správy správci systému, protože Windows Script Host vyžadoval znalost výše uvedených programovacích jazyků, což je pro správce systému vlastně nadbytečné. Administrátorům stačí jednoduchý administrační nástroj s možností programování některých akcí a nechtějí se pouštět do objektových modelů softwarových produktů v programovacích jazycích VBScript a JScript.

V důsledku toho Microsoft potřeboval vyvinout administrační nástroj pro systémové administrátory, který by stoprocentně uspokojil všechny potřeby systémových administrátorů, a to jak z hlediska možností správy a automatizace, tak z hlediska pohodlí a snadného použití, a tak se objevil Windows PowerShell.

Co je Windows PowerShell?

Windows PowerShell je skriptovací jazyk a příkazový shell Windows určený pro správu a konfiguraci operačních systémů Windows. PowerShell je postaven na CRL frameworku a .NET Frameworku a na rozdíl od příkazového řádku, který přijímá a vrací text, Windows PowerShell pracuje s objekty. Každý objekt v PowerShellu má vlastnosti a metody, které můžete použít k manipulaci s těmito objekty.

V systému Windows Microsoft PowerShell vyvinul koncept cmdletů ( rutiny), což je systém pojmenování příkazů " Sloveso-podstatné jméno" Tento systém umožňuje správcům systému rychle zvládnout a zjednodušit práci s PowerShell.

S pomocí Windows PowerShell umí:

  • Přístup k systému souborů;
  • Správa registru;
  • Správa služeb;
  • Řídit procesy;
  • Nakonfigurujte operační systém;
  • Instalace softwaru;
  • Instalace serverových rolí a komponent;
  • Správa a konfigurace rolí a komponent serveru;
  • Psát a používat skripty k automatizaci správy a správy;
  • Proveďte další úkoly správce systému.

Windows PowerShell obsahuje mnoho běžně používaných nástrojů a příkazů, které můžete spustit z příkazového řádku, jako je ipconfig, ping a další. To bylo provedeno za účelem usnadnění přechodu správců systému z příkazového řádku na PowerShell.

Pro usnadnění má také mnoho často používaných příkazů a nástrojů v PowerShellu synonyma ( Přezdívka), například cls je synonymem pro rutinu Clear-Host, dir je synonymem pro Get-ChildItem ( úplný seznam synonyma lze zobrazit spuštěním rutiny Get-Alias ​​​​).

Pro zjednodušení hledání požadovaného příkazu má PowerShell speciální rutinu Get-Command, pomocí které můžete vyhledávat podle slovesa i podstatného jména. Všechny příkazy v prostředí Windows PowerShell jsou seskupeny do modulů ( např. Hyper-V, NetTCPIP), což také usnadňuje nalezení správného příkazu.

Po nalezení požadovaného příkazu se můžete podívat na návod pro práci s tímto příkazem, tzn. help, pro tyto účely existuje speciální rutina Get-Help, například následující příkaz zobrazí nápovědu pro rutinu Get-Command:

Get-Help Get-Command

Nápověda v prostředí Windows PowerShell může být krátká, podrobná ( parametr -Podrobné), plný ( parametr -Plná), a můžete také zobrazit pouze příklady ( parametr - Příklady). Následující příkaz zobrazí pouze příklady použití rutiny Get-Command:

Get-Help Get-Command -Příklady

Nápověda PowerShellu je aktualizovatelná, tzn. lze jej aktualizovat pomocí příkazu Update-Help.

Verze Windows PowerShell

První verze PowerShell 1.0 se objevila 14. listopadu 2006 a byla vydána jako samostatná distribuce, kterou bylo možné nainstalovat na následující verze operačních systémů Windows: Windows XP Service Pack 2, Windows Server 2003 Service Pack 1 a Windows Vista.

V systému Windows Server 2008 se PowerShell 1.0 objevil jako součást, která se také musela nainstalovat.

Počínaje Windows 7 a Windows Server 2008 R2 přichází PowerShell jako nedílná součást systému ( těch. předinstalovaný, není třeba jej instalovat). Níže je uvedena tabulka shody mezi verzí PowerShellu a verzí operačního systému Windows ( těch. jaká verze PowerShellu je ve výchozím nastavení nainstalována na kterou verzi Windows):

Verze PowerShellu Verze Windows
PowerShell 2.0 Windows 7, Windows Server 2008 R2
PowerShell 3.0 Windows 8, Windows Server 2012
PowerShell 4.0 Windows 8.1, Windows Server 2012 R2
PowerShell 5.0 Windows 10, Windows Server 2016

S každým nová verze PowerShell se stává stále mocnějším nástrojem pro správu; pro srovnání, první PowerShell měl asi 130 cmdletů a PowerShell 5.0 jich má nyní přes 600!

Vědět současná verze PowerShell může použít vlastnost PSVersion vestavěné proměnné $PSVersionTable, například spusťte následující příkaz:

$PSVersionTable.PSVersion

Nebo spusťte rutinu

Get-Variable -Name PSVersionTable –ValueOnly

kde hodnota PSVersion bude verze PowerShellu.

jazyk PowerShell

PowerShell je objektově orientovaný skriptovací programovací jazyk. Používá se k psaní příkazů pro ovládání všech součástí operačního systému Windows v prostředí Windows PowerShell a také k psaní skriptů pro automatizaci administrativních úloh v integrovaném prostředí. Skripty Windows PowerShell (ISE). Přestože byl jazyk PowerShell vytvořen pro úkoly správy, je to plnohodnotný skriptovací programovací jazyk, protože má programové konstrukce, které jsou přítomny v každém programovacím jazyce, jako jsou: podmínky, smyčky, zpracování chyb, práce s proměnnými, objekty a pole.

Jazyk PowerShell má jednotnou syntaxi pro psaní příkazů a strukturu pojmenování těchto příkazů založenou na principu „ Sloveso-podstatné jméno", co dělá daný jazyk intuitivní pro programátory i správce systému.

Windows PowerShell

Windows PowerShell je prostředí pro spouštění příkazů a skriptů v PowerShellu. Tento shell má stejné možnosti jako příkazový řádek, například: ukládání historie provádění příkazů, nastavení vzhled shell, dokončování příkazů kombinací kláves Ctrl+C, stejně jako mnoho dalších funkcí, které nejsou dostupné v shellu příkazového řádku, například taková úžasná funkce jako „ zvýraznění syntaxe» ( se objevil v PowerShell 5.0).

PowerShell lze spustit několika způsoby, například:

  • Z příkazového řádku zadáním PowerShell;
  • Prostřednictvím dialogového okna " Vykonat» ( klávesová zkratka Win+R), také zadáním PowerShell;
  • Ve Windows 7 - Start -> Všechny programy -> Příslušenství -> Windows PowerShell -> Windows PowerShell;
  • V systému Windows 8.1 nebo Windows Server 2012 R2 - Start->Všechny programy -> Systémové nástroje -> Windows PowerShell;
  • Ve Windows 10 nebo Windows Server 2016 - Start->Všechny programy -> Windows PowerShell Directory ( ve skupině W) -> Windows PowerShell.

Příklad spuštění PowerShellu v systému Windows Server 2016

Snímek obrazovky PowerShell v systému Windows Server 2016

Rutiny v PowerShellu

Rutina (cmdlet) - Tento tým Windows PowerShell, pomocí kterého můžete interagovat s objekty operačního systému za účelem jejich správy. Tyto příkazy jsou součástí jazyka PowerShell. Cmdlety jsou sestaveny podle principu „ Sloveso-podstatné jméno", oddělené pomlčkou (-); jinými slovy, nejprve naznačíme, co máme dělat, a pomlčkou označujeme, co máme dělat. Například cmdlet Get-Help, kde Get je sloveso s významem " Dostat"a Nápověda je podstatné jméno" Pomoc"v kontextu PowerShellu" Zobrazit – Nápověda" Rutiny PowerShellu vracejí výsledky jako objekty, což je jeden z hlavních rozdílů od příkazového řádku systému Windows, ve kterém příkazy vracejí na obrazovku pouze text.

Kromě rutin pro získávání dat (Get) existují také typy rutin, jako jsou:

  • Přidat – přidání dat;
  • Clear – clear;
  • Povolit – povolit;
  • Zakázat – vypnout;
  • Nový – vytvořit;
  • Odebrat – odstranit;
  • Set – set;
  • Start - start;
  • Stop – stop;
  • Export – export;
  • Import – import;
  • A mnoho dalších.

Úplný seznam rutin v prostředí Windows PowerShell lze zobrazit pomocí speciální rutiny Get-Command. Spusťte ji například s parametrem -CommandType cmdlet, v důsledku toho se na obrazovce zobrazí seznam rutin.

Get-Command -CommandType cmdlet

Jak jste již pochopili, rutiny mají parametry, pomocí kterých můžeme určit akce rutiny. Parametry mohou být povinné nebo volitelné, například rutina Get-Command nemá žádné požadované parametry.

Obrázek níže ukazuje způsob, jak hledat rutinu podle slovesa ( Parametr slovesa). V tomto případě jsme zobrazili seznam rutin, které mohou něco restartovat.

tým

Get-Command -Restart slovesa

Chcete-li hledat rutinu podle podstatného jména, musíte použít parametr Noun. Níže máme například seznam rutin, které pracují se službami.

tým

Get-Command -Noun Service

Pokud nenajdete rutinu, kterou potřebujete celé jméno Můžete použít masku ve formátu *Text*.

Pipeline v PowerShellu

Jeden z hlavních Funkce Windows PowerShell je schopen používat kanál při provádění příkazů.

Dopravník– jedná se o přenos výsledku rutiny přes svislou čáru (|) do jiné rutiny. Zároveň, jak si pamatujete, v rutinách PowerShell pracují s objekty a vracejí objekty; podle toho jsou objekty také přenášeny podél potrubí.

Pomocí kanálu můžete provádět složité úkoly jednoduchým a pohodlným způsobem, aniž byste museli psát složité algoritmy a skripty.

Například zjistíme název největšího souboru v adresáři "C:\Windows\System32" ( jednoduchý příklad potrubí).

tým

Get-ChildItem -Cesta "C:\Windows\System32" -Soubor | Seřadit-Délka objektu -Sestupně | Select-Object - First 1

  • Get-ChildItem – cmdlet pro získání objektů v určeném adresáři;
  • Sort-Object je cmdlet pro řazení objektů, v našem případě třídíme podle velikosti souboru ( délka -Sestupně);
  • Select-Object je cmdlet pro výběr požadovaných vlastností objektu, v našem případě zobrazujeme standardní pole a pouze úplně první objekt, tzn. velký soubor (parametr -První 1).

Všechny rutiny jsou od sebe odděleny svislou lištou. Výsledek každé rutiny je předán jako vstup do jiné rutiny, tj. nejprve získáme všechny objekty v zadaném adresáři, poté seřadíme výsledek a nakonec vybereme úplně první objekt.

Provádění úloh na pozadí

Windows PowerShell má schopnost spouštět úlohy na pozadí, což je mechanismus, pomocí kterého můžete spustit příkaz ( například, jehož dokončení trvá dlouho) na pozadí, tzn. po spuštění se vrátíte do aktuální relace a můžete pokračovat v práci bez čekání na dokončení příkazu. Tato příležitost Budete jej potřebovat, když potřebujete spustit příkaz, jehož dokončení trvá poměrně dlouho, a jak víte, během této doby je relace PowerShellu zablokována, dokud se příkaz nedokončí, a musíte pokračovat v práci.

Můžete spravovat všechny úkoly, které běží na pozadí, například zobrazit seznam úkolů, zastavit úkol, odstranit úkol a samozřejmě zobrazit výsledek úkolu.

Windows PowerShell obsahuje následující rutiny pro práci s úlohami na pozadí:

  • Start-Job – spuštění úlohy na pozadí;
  • Stop-Job – zastavení úlohy na pozadí
  • Get-Job – zobrazení seznamu úloh na pozadí;
  • Receive-Job – zobrazení výsledku úlohy na pozadí;
  • Remove-Job – odstranění úlohy na pozadí;
  • Wait-Job – přesune úlohu na pozadí do popředí, aby počkala na její dokončení.

Chcete-li spouštět na pozadí, musíte napsat příkaz Start-Job a ve složených závorkách () příkaz nebo sadu příkazů, které chcete spouštět na pozadí.

Spusťte například nějakou úlohu ( zobrazit seznam služeb) na pozadí a poté se podívejte na seznam práce na pozadí a zobrazit výsledek našeho úkolu na obrazovce ( těch. seznam služeb).

Spusťte úlohu na pozadí

Start-Job (Get-Service)

Podíváme se na seznam úloh běžících na pozadí

Zobrazení výsledku úlohy 1

Receive-Job Job1

Jak vidíte, nyní máme úkol se stavem „ Dokončeno", tj. už je hotovo ( Get-Service prostě funguje rychle).

Abyste viděli výsledek úlohy na pozadí, tzn. Get-Service cmdlet, provedli jsme příkaz Receive-Job a předali jsme mu název úlohy ( možná je i hodnota identifikátoru). V důsledku toho jsme zobrazili seznam služeb.

Dálkové ovládání pomocí PowerShell

Windows PowerShell je navržen nejen pro lokální použití, ale také pro vzdálené spouštění příkazů. Tato funkce je nezbytná k tomu, abyste mohli ovládat vzdálené počítače ze svého pracoviště, tzn. spusťte příkazy PowerShellu.

Existuje několik způsobů dálkové ovládání:

  • Pomocí parametru –Název počítače (mnoho týmů to má). Jinými slovy, předáte jako parametr název počítače, na kterém chcete příkaz provést. Tato metoda má nevýhodu v tom, že je omezena na provedení jednoho příkazu;
  • Pomocí relací. Rutina Enter-PSSession (interaktivní sezení). Tímto způsobem se připojíte ke vzdálenému počítači a všechny příkazy, které zadáte v PowerShellu, se budou provádět na vzdálený počítač stejně jako kdybyste zadávali příkazy přímo na vzdáleném počítači. Metoda má také nevýhodu, že relace je omezena na jeden počítač;
  • Pomocí rutiny Invoke-Command. Používáním tato metoda Příkazy nebo skripty můžete spouštět na jednom počítači nebo na několika.

Chcete-li se například připojit ke vzdálenému počítači ( v příkladu níže ServerName) v interaktivní relaci spusťte následující příkaz:

Enter-PSSession ServerName

Skripty, funkce a moduly v prostředí Windows PowerShell

Pokud jste napsali algoritmus, pravděpodobně jej budete chtít uložit, abyste jej mohli v budoucnu použít. Windows PowerShell má pro tento účel skriptovací mechanismus.

Podstata tohoto mechanismu je následující: napíšete sadu příkazů, kterou potřebujete, a uložíte ji jako skript - jedná se o jednoduchý textový soubor s příponou .PS1.

Poté, chcete-li tento skript spustit, jednoduše jej spustíte v prostředí PowerShell. V tomto případě musíte buď zadat úplnou cestu k souboru skriptu, nebo přejít do adresáře se skriptem a nazvat jej jménem.

Důležité!

Ve výchozím nastavení je spouštění skriptů ve Windows zakázáno! Chcete-li zobrazit zásady provádění skriptů, spusťte rutinu Get-ExecutionPolicy. V důsledku toho vrátí aktuální zásady, například:

  • Omezeno – provádění jakýchkoli skriptů je blokováno ( výchozí hodnota);
  • AllSigned – je povoleno provádění skriptů, které mají digitální podpis;
  • RemoteSigned – spouštění lokálních skriptů je povoleno, všechny stažené skripty musí mít digitální podpis;
  • Neomezeno - je povoleno provádění jakýchkoli skriptů ( nedoporučuje se, protože to není bezpečné!).

Chcete-li povolit spouštění skriptů, musíte použít rutinu Set-ExecutionPolicy s jedním z výše uvedených parametrů.

Chcete-li například povolit spouštění lokálních skriptů, spusťte následující příkaz a potvrďte změny stisknutím klávesy Y.

Set-ExecutionPolicy RemoteSigned

Parametry můžete předat skriptu, nastavit je jako povinné nebo nastavit výchozí hodnotu.

Windows PowerShell poskytuje mechanismus pro vytváření vlastních funkcí, které lze stejně jako vestavěné rutiny použít v prostředí PowerShell.

Chcete-li to provést, musíte zadat klíčové slovo Funkce a poté ve složených závorkách () napište algoritmus pro tuto funkci, tzn. sada příkazů ( například nějaký často používaný postup: vytvořit uživatele s určitými právy, vyčistit určité adresáře a tak dále). Pak je potřeba to vše uložit do skriptu, ale pouze s příponou .psm1, protože tento soubor již bude modul.

To není vše, tento soubor je nutné umístit do adresáře, kde PowerShell hledá moduly. Existuje několik takových adresářů ( speciální adresář v uživatelském profilu, adresář, kde je nainstalován PowerShell), lze je zobrazit v proměnných prostředí PowerShell. Chcete-li to provést, spusťte následující příkaz

Get-ChildItem Env:\PSModulePath | Formát-tabulka -Automatická velikost

Jakmile umístíte modul, který jste napsali, do speciálního adresáře, můžete přistupovat ke svým funkcím jako normální příkazy PowerShellu.

Integrované skriptovací prostředí Windows PowerShell (ISE)

Aby bylo snadné psát skripty, funkce a podle toho i moduly, vyvinul Microsoft speciální grafický program Integrované skriptovací prostředí(ISE) - Integrované skriptovací prostředí. V tomto programu je velmi pohodlné pracovat a má také výkonné funkce ( vytváření více záložek se skripty, výstupní oblastí, vestavěným debuggerem a dalšími).

Můžete to spustit takto:

  • Ve Windows 7 - Start -> Všechny programy -> Příslušenství -> Windows PowerShell -> Windows PowerShell ISE;
  • Ve Windows 10 nebo Windows Server 2016 - Start->Všechny programy -> Windows PowerShell Directory ( ve skupině W) -> Windows PowerShell ISE.

Poznámka! ISE nebude fungovat systém Windows Server nainstalovaný ve verzi Server Core.

Snímek obrazovky integrovaného skriptovacího prostředí PowerShell (ISE) v systému Windows Server 2016

To je pro mě vše, doufám, že vám byl materiál užitečný! Hodně štěstí!

Spuštění programu z PowerShellu

Úkol spustit jakýkoli spustitelný soubor (program nebo nástroj příkazového řádku) z PowerShellu se vyskytuje poměrně často. PowerShell k tomu nabízí několik možností. různými způsoby, kterým se budeme zabývat dále v tomto článku. Začněme tím nejjednodušším...

Přímé spuštění

Nejjednodušší způsob, jak spustit spustitelný soubor v PowerShellu, je přejít do adresáře se souborem a spustit jej přímo. Vezměme si například jednoduchý program, který zobrazí pozdrav a spusťte jej příkazem:

Nastavit umístění ″C:\Program Files″
.\Ahoj.exe

Upozorňujeme, že i když se nacházíte v požadovaném adresáři, musíte zadat relativní cestu ke spustitelnému souboru. Výjimkou jsou soubory z adresářů uvedených v proměnná prostředí(cesta). Například různé vestavěné programy a utility (notepad, calc, ping atd.) umístěné v adresáři Windows\System32 lze spustit bez zadání cesty.

Operátor &

Pokud potřebujete zadat úplnou cestu ke spustitelnému souboru, můžete použít operátor & (telefonní operátor). Umožňuje vám spustit řetězec textu zadaný v uvozovkách jako jediný tým. Například:

& ′C:\Program Files\Hello.exe′

Protože operátor & neanalyzuje předávaný příkaz, nemůže interpretovat jeho parametry. Proto jsou další parametry\argumenty také předány jako text v uvozovkách. Jako příklad si vezměme předchozí program a mírně jej upravíme tak, aby akceptoval požadovaný text jako argument:

& ′C:\Program Files\Hello.exe′ ′Ahoj světe′

V případě potřeby můžete zadat více argumentů oddělených čárkami:

& ′C:\Program Files\Hello.exe′ „Ahoj,′, „svět“

Pro usnadnění lze příkaz a argumenty umístit do proměnných:

$exe = ′C:\Program Files\Hello.exe′
$arg1 = ′Ahoj′
$arg2 = ′svět′
& $exe $arg1 $arg2

Pokud existuje mnoho argumentů, lze je kombinovat pomocí následující konstrukce:

$exe = ′C:\Program Files\Hello.exe′
$allargs = @(′Ahoj,′,′svět′)
& $exe $allargs

Invoke-Expression

Rutina Invoke-Expression funguje v podstatě stejným způsobem jako operátor & – vezme textový řetězec a provede jej jako příkaz. Například:

Invoke-Expression -Command ′C:\Windows\Hello.exe′

Má to však jeden velký nedostatek, a to nemožnost práce s prostory. Například následující příkaz způsobí chybu:

Invoke-Expression -Command ′C:\Program Files\Hello.exe′

Díky této funkci je používání rutiny extrémně nepohodlné. I když v případě potřeby lze takovým chybám předejít pomocí dalších uvozovek, například takto:

Invoke-Expression -Command ″C:\′Program Files′\Hello.exe″

Start-Process

Spustí se rutina Start-Process zadaný soubor jako proces využívající metodu Start třída .NET Proces. Například:

Start-Process -FilePath ′C:\Program Files\Hello.exe′

Ve výchozím nastavení se proces spustí samostatné okno, který se na konci procesu uzavře. Toto chování můžete změnit pomocí parametrů, takže následující příkaz bude spuštěn v aktuálním okně:

Start-Process -FilePath ′C:\Program Files\Hello.exe′ -NoNewWindow -Wait

Start-Process také umožňuje předat procesu další argumenty:

Start-Process -FilePath ′C:\Program Files\Hello.exe′ -ArgumentList ′Ahoj světe′ -NoNewWindow -Wait

Ve výchozím nastavení rutina nic nevrací, ale pomocí parametru -PassThru ji můžete vynutit, aby vrátila objekt procesu. Je velmi výhodné umístit tento objekt do proměnné:

$process = Start-Process -FilePath ′C:\Program Files\Hello.exe′ -Wait -PassThru

ze kterého se pak můžete naučit mnoho užitečných věcí, jako je stav:

$process.HasExited

$process.ExitTime

nebo prováděcí kód:

$process.ExitCode

.SÍŤ

V zásadě lze třídu .NET Process použít přímo, bez rutiny Start-Process. Proces můžete spustit například příkazem:

::Start(′C:\Program Files\Hello.exe′)

Tato metoda je poměrně nepohodlná a těžkopádná (podle mého názoru), ale o něco flexibilnější v použití. Spusťte například náš program v aktuálním okně, předáme mu argumenty a vezmeme výsledek provedení:

$process = New-Object -TypeName System.Diagnostics.Process
$process.StartInfo.FileName = ″C:\Program Files\Hello.exe″
$process.StartInfo.Arguments = ″Ahoj světe″
$process.StartInfo.RedirectStandardOutput = $true
$process.StartInfo.UseShellExecute = $false
$process.Start()
$process.WaitForExit()

$process.StandatdOutput.ReadToEnd()

WMI

S WMI můžete dělat téměř cokoli, včetně spouštění programu. Metoda je k tomu docela vhodná Vytvořit třídy WMI Win32_Process. Tato metoda spustí proces na místním nebo vzdáleném počítači prostřednictvím RPC. Například ke spuštění programu místní počítač můžete použít tento příkaz:

()″Win32_Process″).Create(′C:\Program Files\Hello.exe′)

A pro spuštění na vzdáleném počítači bude příkaz vypadat takto:

()″\\remotecomputer\root\cimv2:Win32_Process″).Create(′C:\Program Files\Hello.exe′)

Případně můžete použít rutinu Invoke-WmiMethod:

Invoke-WmiMethod -Class Win32_Process -Name Create -ArgumentList ″C:\Program Files\Hello.exe″

Nebo pomocí rutiny Invoke-CimMethod:

Invoke-CimMethod -ClassName Win32_Process -MethodName Create -Arguments @(CommandLine=″C:\Program Files\Hello.exe″)

WMI spustí proces v samostatném okně a vrátí objekt obsahující ID procesu (ProcessID) a výsledek provedení (ReturnValue). ReturnValue může nabývat následujících hodnot:

0 — Úspěšné dokončení
2 -Přístup odepřen
3 — Nedostatečné privilegium
8 — Neznámé selhání
9 - Cesta nenalezena
21 - Neplatný parametr

Invoke-Command

Rutina Invoke-Command může spouštět příkazy na místním nebo vzdáleném počítači pomocí WinRM. Například ke spuštění našeho programu na místním počítači použijeme příkaz:

Invoke-Command -ScriptBlock (″C:\′Program Files′\Hello.exe″)

V případě potřeby můžete programu předat argumenty:

Invoke-Command -ScriptBlock (C:\′Program Files′\Hello.exe ″Ahoj světe″)

Vezměte prosím na vědomí, že Invoke-Command není příliš přátelský s mezerami, takže abyste se vyhnuli chybám, musíte být kreativní s uvozovkami. Těmto problémům se však lze vyhnout například kombinací použití rutiny s operátorem &:

Invoke-Command -ScriptBlock (& ​​′C:\Program Files\Hello.exe′)

Invoke-Command slouží především ke vzdálenému ovládání, jeho hlavní výhodou je možnost spouštění současně na více počítačích. Například:

Invoke-Command -ScriptBlock (″C:\′Program Files′\Hello.exe″) -ComputerName SRV1,SRV2,SRV3

$scriptblock = (″C:\′Program Files′\Hello.exe″)
$Počítače = @(′SRV1′,′SRV2′,′SRV3′)
Invoke-Command -ScriptBlock $scriptblock -ComputerName $Computers

Ve výchozím nastavení rutina vrací výsledek provádění programu, a pokud ji spustíte na pozadí (parametr -AsJob), vrátí objekt Job:

Invoke-Command -ScriptBlock (C:\′Program Files′\Hello.exe) -ComputerName localhost -AsJob -JobName Dobrý den

Vyvolat položku

Rutina Invoke-Item je navržena tak, aby na soubor použila výchozí akci. Spustitelný soubor tedy můžete spustit příkazem:

Vyvolat položku - cesta ″C:\Program Files\Hello.exe″

Nejpohodlnější je však použít Invoke-Item k otevření určitého typu souboru. Takto například otevřeme textový soubor:

Invoke-Item -Path ″C:\Files\test.txt″

A to je vše textové soubory ve složce:

Vyvolat-položka - cesta ″C:\Files\*.txt″

CMD

No, na závěr, další způsob, jak spustit program z PowerShellu, je pomocí shellu cmd. Metoda je poměrně „nepřímá“, ale přesto funguje. Následující příkaz spustí novou instanci cmd a provede se v ní zadaný program, ukončí cmd a vrátí výsledek:

cmd /c ″C:\Program Files\Hello.exe″

PoSh poskytuje takové množství způsobů, jak spustit program. A každý z nich je dobrý pro určité situace.

Mimochodem, článek byl napsán na základě PowerShell: Deep Dive and Best Practice. Doporučuji přečíst, stále je tam spousta zajímavých věcí.

Existuje několik různých způsobů, jak spustit skript, hlavní z nich jsou níže:

  1. Spusťte PowerShell a spusťte v něm skript (zadejte cestu k souboru a název souboru např. takto: C:\Scripts\test.ps1, nebo přejděte do složky skriptu příkazem cd C:\Scripts a spusťte jej pomocí příkazu.\test.ps1) Shell lze najít a spustit mnoha způsoby. Jedním ze způsobů je přes nabídku Start. Pro Windows 7 - musíte jít do "Všechny programy" - "Příslušenství" - "Windows PowerShell" a spustit shell "Windows PowerShell". Pro Windows 10 - musíte najít skupinu s písmenem "W" a v ní najdete "Windows PowerShell".
  2. Spusťte "Windows PowerShell ISE" je program – vývojové prostředí, které umožňuje upravovat a ladit skripty PowerShellu, které je také standardně dostupné spolu se samotným PowerShellem. Po jeho spuštění stačí kliknout na tlačítko "Otevřít" nebo přejít do nabídky Soubor - Otevřít a vybrat požadovaný skript, poté stiskněte F5 nebo tlačítko „Spustit skript.“ Windows PowerShell ISE najdete na stejném místě jako PowerShell – v nabídce Start.
  3. Spusťte standardní příkazový řádek a napište do něj:
    powershell -soubor<имя_скрипта> (příklad: powershell -file myscript.ps1)

Pokud jste dosud nespouštěli skripty PowerShellu, pravděpodobně se zobrazí následující zpráva: Soubor nelze stáhnout<имя_скрипта>, protože provádění skriptů je pro tento systém zakázáno. Další informace získáte zadáním „get-help about_signing“. To je způsobeno tím, že z bezpečnostních důvodů a aby se zabránilo náhodnému spuštění škodlivého kódu, musí být všechny skripty digitálně podepsány.

Jak povolit spuštění nepodepsaného skriptu PowerShell?

1. V prostředí PowerShell, před spuštěním skriptu spusťte příkaz, který umožní provádění nepodepsaných skriptů pro aktuální relaci shellu:

Set-ExecutionPolicy RemoteSigned -Scope Process

2. Při spuštění ze standardního příkazového řádku použijte parametr -executionpolicy, tzn. spusťte skript takto:

<имя_скрипта>

Obě metody nastavují zásady pouze pro aktuální relaci, přičemž zásady zabezpečení pro spouštění skriptů PowerShell zapsaných v registru se nezmění a zůstanou stejné. Pokud chcete změnit bezpečnostní politiku spouštění skriptu na „trvalou“, použijte tuto metodu:

3. Povolit spuštění navždy: Spusťte PowerShell jako správce a poté spusťte příkaz:

Set-ExecutionPolicy RemoteSigned

Poznámka: Pokud byl skript stažen z internetu, pak abyste se vyhnuli požadavku na potvrzení spuštění, musíte místo RemoteSigned použít Bypass - zcela deaktivovat všechny požadavky a varování.

Jak spustit skript PowerShell na pozadí?

K tomu stačí použít spouštěcí parametr -WindowStyle, který může nabývat následujících hodnot: Normální, Minimalizovaný, Maximalizovaný a Skrytý. Chcete-li tedy spustit nepodepsaný skript na pozadí, musíte spustit příkaz:

powershell -executionpolicy RemoteSigned -WindowStyle Skrytý -soubor<имя_скрипта>

Můžete také přidat -NonInteractive, pokud si přejete, aby skript nekladl žádné otázky. Skript bude tedy proveden bez povšimnutí uživatelem. Při použití této metody buďte opatrní.

Spuštění skriptu PowerShellu s parametry

Vlastní spuštění by mělo být provedeno tak, jako byste spouštěli vy pravidelný program nebo bat soubor s parametry. Chcete-li například spustit skript s parametry z příkazového řádku, můžete napsat následující příkaz:

powershell -executionpolicy RemoteSigned -file<имя_скрипта>param1 param2 "další textový parametr"

V samotném skriptu můžete získat tyto parametry takto:

Param ($var1, $var2, $var3) echo $var1, $var2, $var3

V PowerShell ISE můžete spustit skript s parametry stejným způsobem pomocí příkazového podokna.

Jak spustit skript PowerShell pomocí zkratky?

Tento úkol lze provést dvěma způsoby:

  1. Vytvořte soubor bat/cmd, do kterého zapíšete příkaz ke spuštění skriptu (přečetli jste si parametry výše)
  2. Vytvořte zástupce PowerShellu, který se nachází ve složce c:\Windows\System32\WindowsPowerShell\v<версия>\ a ve vlastnostech zástupce v poli "Objekt" přidejte potřebné parametry.

Tedy například běhat powershell skript Když se uživatel přihlásí, můžete jednoduše vytvořit zástupce, jak je popsáno v odstavci 2 a umístit jej do spuštění. Vytvoření zástupce pomocí jedné z výše uvedených metod vám také umožní snadno spustit skript jako správce nebo jako jakýkoli jiný uživatel jako běžný program.

Skriptovací jazyk PowerShell je docela mocný nástroj na řešení různých problémů, ale dá se použít nejen na dobré věci, ale i na špatné věci, takže jej používejte s rozumem ;)