Co je Windows Power Shell. Základy prostředí Windows PowerShell

Se záhadným písmem a vytrvale blikajícím kurzorem? Toto je příkazový řádek. Nástroj je k dispozici ve všech verzích systému Windows. S jeho pomocí je pohodlné spravovat systém, volat programy a vyhledávat soubory. Ale cmd není dostatečně funkční pro profesionální práci. Microsoft se proto rozhodl napravit všechny nevýhody konzole a vydal produkt s názvem Windows PowerShell. Co to je a jak používat vývoj, čtěte dále.

Co je PowerShell ve Windows

PowerShell je interaktivní, objektově orientované příkazové prostředí s funkcemi skriptovacího jazyka. Oficiální vydání PowerShellu 1.0 od Microsoftu proběhlo 14. listopadu 2006. Vývojáři zkombinovali obvyklé rozhraní příkazového řádku CLI s platformou .NET Framework pro správu místních a vzdálených sítí.

Všimněte si, že Windows PowerShell není jednoduché operační prostředí. Společnost Microsoft vytvořila výkonný, rozšiřitelný a zároveň flexibilní nástroj pro automatizaci správy, který může fungovat jako vyhrazený skriptovací jazyk.

18. srpna 2016 Microsoft oznámil, že Windows PowerShell je nyní open source produkt dostupný pro každého vývojáře. Společnost také přidala podporu pro operační systémy založené na Unixu, včetně distribucí Linuxu a OS X.

Jak spravovat PowerShell

Rutiny nebo rutiny se používají k provádění úloh. Jedná se o malé příkazy napsané jako spustitelné soubory. Ve verzi 2.0 prostředí PowerShell pro Windows XP a Server 2008 R2 tvůrci přidali moduly, které umožňují spravovat více prostředků, včetně Active Directory a Exchange Server.

V automatizačním nástroji PowerShell je aktuálně zabudováno přes 130 modulů a příkazů. Poskytují přístup k souborům, sítím, registru, správě a dalším funkcím systému:

  • nastavení času a data;
  • práce se složkami a jednotlivými soubory;
  • získání pomoci a dalších informací;
  • import a ukládání dat;
  • skriptovací techniky;
  • samostatné skripty a aplikace;
  • kontrola zabezpečení systému a práce s deskriptory;
  • správa systému;
  • kontrola místa na disku.

Vzhledem k tomu, že prostředí Windows PowerShell je rozšiřitelné prostředí, mohou uživatelé vytvářet své vlastní příkazy a psát „autorské“ moduly pomocí jazyka .Net.

Začínáme s PowerShell

Nejnovější beta verze 6.0 PowerShellu byla vydána v roce 2016. Ve Windows 7, 8 a 10 je nástroj vestavěný. Pokud používáte jiný operační systém, budete si muset aplikaci stáhnout. Chcete-li to provést, přejděte na oficiální web microfoft.com a do vyhledávacího pole zadejte Installing Windows PowerShell. Systém vás automaticky přenese na stránku s nejnovějšími verzemi produktů. Vyberte svůj OS ze seznamu a klikněte na Stáhnout.

Po úplném stažení souboru jej otevřete poklepáním. Ve výchozím nastavení se prostředí nainstaluje do ProgramFiles\PowerShell\ a vytvoří zástupce v nabídce Start. Pokud jste spokojený uživatel Windows, klikněte na ikonu systému v levém dolním rohu a zadejte PowerShell do „Prohledat programy a soubory“. Spusťte aplikaci, zadejte svůj první cmdlet a začněte.

Seznam požadovaných příkazů a pokynů pro PowerShell

Každý název rutiny je ve tvaru sloveso-podstatné jméno nebo akční objekt. Nabízíme seznam nejdůležitějších rutin PowerShell pro Windows 10 a předchozí verze, počínaje XP. Budou užitečné i pro začínající uživatele, kteří se teprve včera naučili ukládat textové dokumenty.

  1. Získejte pomoc. cmdlet zabudovaný do jádra shellu. Navrženo pro volání nápovědy a poskytuje užitečné informace o syntaxi, programech, jejich účelu a dalších rutinách. Pokud jste napsali ipconfig /? v běžném interpretu příkazů, pak v PowerShellu musíte zadat Get-Help Get-Process.
  2. Získejte obsah. Zjednodušuje proces čtení souborů pro začátečníky a správce systému. Pokud bylo dříve nutné otevřít deskriptor a přečíst všechny řádky dokumentu jeden po druhém, nyní stačí předat soubor rutině. Chcete-li to provést, zadejte do konzoly C:\> Get-Content C:\...\"název souboru.""přípona".
  3. Get-Service. Přístup k informacím o službách nainstalovaných v počítači.
  4. Staňte se členem. Zobrazuje informace o objektu vráceném rutinou a umožňuje zobrazit jeho vlastnosti a metody.
  5. Get-Command. Vyhledá rutiny a vrátí všechny informace o nich, včetně dat o funkcích, skriptech, aplikacích a dalších prvcích. Verze 5.0 PowerShellu pro Windows 10 přidala sloupec Verze do Get-Command, takže CommandDet nyní zobrazuje více verzí stejného modulu.
  6. Stop-\Start-Service. Nepostradatelný pomocník pro administrátory. Rutina spouští a zastavuje služby na vzdálených a místních počítačích.

Speciální znaky pro skripty

Kromě rutin obsahuje PowerShell ve Windows 7 a novějších speciální znaky, jako je $_ nebo (). Ikony způsobují největší zmatek mezi začátečníky, kteří se nezabývali systémy podobnými Linuxu nebo programováním.

  1. Svislý pruh "|". Tento symbol se používá pro zřetězení programů. Při práci s konzolí se zapíná, když chcete dát příkazu napravo od svislého pruhu pokyn, aby přijal výstup z příkazu nalevo. V PowerShellu se svislý pruh používá téměř ke stejnému účelu, kombinuje několik příkazů najednou. Například vytvořte nové uživatelské jméno, přidejte jej do skupiny a resetujte výchozí heslo.
  2. Funkční znak "()". Umožňuje efektivně řídit proces provádění skriptu. Stejně jako v programovacích jazycích podobných C je funkce v PowerShellu tvořena uzavřením několika cmdletů do složených závorek a je připravena ke spuštění tolikrát, kolikrát je potřeba.
  3. Speciální znak $_. Používá se k psaní bloků skriptů, filtrů a procedurálních výrazů. $_ převezme hodnotu aktuálního objektu a předá ji dalšímu. K vyjádření nebo zadání proměnné můžete použít znak dolaru bez podtržítka: $var = "Ahoj".

Co je PowerShell ISE

Nástroj PowerShell je dodáván s grafickou aplikací Windows PowerShell ISE. Je to shell nebo integrované prostředí pro psaní skriptů. ISE poskytuje vývojářům obrovskou škálu možností. S jeho pomocí můžete vytvářet, ladit a upravovat skripty, otevírat textové a XML soubory. Barevné zvýraznění syntaxe značně usnadňuje testování a hledání chyb v kódu.

ISE je mnohem pohodlnější než konzole PowerShell a dokáže ji zcela nahradit. Pomocí prostředí můžete zkopírovat a vložit velké fragmenty kódu a spustit ne celý skript, ale jeho jednotlivé části. Na rozdíl od PowerShellu lze velikost okna v ISE jednoduše měnit pomocí ukazatele myši, jako při práci s běžným programem.

Chcete-li vyzkoušet ISE, zadejte PowerShell ISE v nabídce Start. Pokud používáte jiný OS než Windows, stáhněte a nainstalujte distribuci z oficiálních stránek. Po spuštění aplikace se otevře třídílné okno. Skripty se píší nahoře, příkazy PowerShellu se píší dole a výsledek je vidět uprostřed.

Začněte s ISE a ve spodním okně zadejte Get-Process. Stiskněte několikrát Tab. Vedle rutiny se zobrazí její parametry, které se po každém stisku klávesy změní. Toto bude vaše první lekce práce se skriptovacím prostředím společnosti Microsoft.

Všichni víme, co je příkazový řádek a jaké možnosti poskytuje, ale ne každý ví o podobném rozhraní zvaném . V podstatě jde o téměř stejný příkazový řádek, jen s mnohem pokročilejšími možnostmi. Tento článek pojednává o tom, co je PowerShell a co nám tento nástroj může nabídnout.

Definice prostředí PowerShell

Začněme tím, co je to skořápka. Shell je rozhraní, které vám umožňuje používat jakékoli funkce operačního systému. PowerShell je tedy shell, který byl vyvinut společností Microsoft a je navržen tak, aby úkoly prováděl automatickyji. Tento nástroj je založen na .NET a prostředí příkazového řádku a skriptovacím jazyce.

Existuje také něco jako , které funguje jako integrované skriptovací prostředí, jinými slovy je to grafické rozhraní, přes které můžeme vytvářet nějaké skripty, aniž bychom museli zadávat všechny příkazy do příkazového řádku.

První verze nástroje PowerShell se objevila již v roce 2006 pro Windows XP, Server 2003 a Vista. V současné době je nejnovější verze nástroje 4.0. Vydáno v roce 2013 spolu s Windows 8.1.

Jaké funkce PowerShell plní?

Jak jsem řekl výše, Microsoft vytvořil tento nástroj, aby bylo možné provádět jakékoli úkoly s operačním systémem mnohem rychleji. Řekněme, že chcete vidět, které jsou připojeny k vašemu počítači, takže to lze provést pomocí PowerShellu. Můžete si také vytvořit takový, který bude běžet na pozadí, když budete podnikat. Pokud si všimnete nepotřebných procesů na pozadí, které načítají vaše systémy, můžete je zakázat pomocí PowerShellu. Můžete také vytvořit dokument, který bude ukládat informace o počítačových sítích nebo jiných věcech.

Pomocí tohoto nástroje tedy můžete snadno a rychle provádět časově náročné úkoly a také vytvářet libovolné skripty nebo kombinovat několik příkazů.

Pokud jste správce sítě, pak vám PowerShell bude moci pomoci pracovat například s Active Directory. Také stojí za zmínku, že nástroj obsahuje více než 100 příkazů. To znamená, že vám pomůže vyřešit většinu problémů.

Spuštění PowerShellu ve Windows 7

Chcete-li spustit PowerShell v tomto operačním systému, musíte zadat „“ do vyhledávání, kde se nachází Start.

Dalším způsobem, jak otevřít nástroj, je přejít do nabídky Start, všech programů, příslušenství a složky Windows PowerShell.

Spuštění PowerShellu v systému Windows 8.1

Chcete-li otevřít PowerShell ve Windows 8.1, musíte do vyhledávání zadat klíčové slovo "", pro otevření vyhledávání klikněte na Win+Q.

Další způsob, jak otevřít, je přes okno." Vykonat" Klikněte Win+R otevře se okno, do kterého vstoupíte.

Použití v každodenním životě

Tento nástroj používá mnoho IT specialistů a správců, a to z dobrého důvodu, protože poskytuje skvělé příležitosti a zkracuje čas potřebný k dokončení jakýchkoli úkolů.

Pokud má uživatel velkou síť, která se skládá z několika stovek serverů, pak bude nutné implementovat bezpečnostní systém, který bude fungovat při použití konkrétní služby. Problém je v tom, že musíte zkontrolovat, zda je tato služba nainstalována na všech serverech. Samozřejmě se můžete ke každému serveru připojit ručně, ale správě se to nebude líbit, protože dokončení takového úkolu zabere spoustu času.

Pro zkrácení pracovní doby na pár minut můžete využít PowerShell, pomocí kterého pomocí jednoho skriptu shromáždíme všechny potřebné informace a uložíme je do samostatného dokumentu.

O tomto nástroji bylo také napsáno poměrně dost knih, nicméně tento nástroj poskytuje dostatek příležitostí, které pravděpodobně nebudou v tomto článku plně popsány. Pokud vás tedy toto téma zajímá, můžete jej začít studovat podrobněji.

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.

Co přispělo ke vzniku prostředí Windows PowerShell?

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.

Příkazový řádek Windows má také schopnost provádět některé administrativní úkoly a možnost zaznamenat algoritmus akcí, uložit jej jako skript (bat soubor), přičemž můžete použít určité programovací prvky, například používat proměnné, podmíněné konstrukce, a dokonce i něco jako cykly.

Většina softwarových produktů má konzolové rozhraní, tzn. můžeme program ovládat pomocí příkazové řádky a zároveň šetřit zdroje díky absenci nákladů na provoz grafického rozhraní. 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. Tato technologie se ale také nestala ideálním nástrojem pro správu a automatizaci této správy pro systémové administrátory, protože Windows Script Host vyžadoval znalost výše uvedených programovacích jazyků, což je pro systémové administrátory 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 prostředí Windows PowerShell vyvinul Microsoft koncept rutin ( 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.

Pomocí prostředí Windows PowerShell můžete:

  • 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 synonym 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ždou novou verzí se PowerShell stává stále mocnějším nástrojem pro správu, pro srovnání, první PowerShell měl asi 130 cmdletů a v PowerShellu 5.0 jich je již více než 600!

Aktuální verzi PowerShellu můžete zjistit pomocí vlastnosti 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 k psaní skriptů pro automatizaci administrativních úloh v integrovaném skriptovacím prostředí Windows PowerShell (ISE). Přestože byl jazyk PowerShell vytvořen pro úkoly správy, jedná se o 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“, díky čemuž je tento jazyk intuitivní jak pro programátory, tak pro systémové administrátory.

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, jako například: ukládání historie provádění příkazů, přizpůsobení vzhledu prostředí, dokončení provádění příkazů kombinací kláves Ctrl+C, stejně jako mnoho dalších funkcí, které nejsou v shell příkazového řádku, například taková úžasná funkce jako " zvýraznění syntaxe» ( představeno v PowerShellu 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) je příkaz prostředí Windows PowerShell, který umožňuje interakci s objekty operačního systému a jejich správu. 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é povinné parametry.

Obrázek níže ukazuje způsob, jak vyhledat 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 požadovanou rutinu nenajdete pod jejím celým názvem, můžete použít masku ve formátu *Text*.

Pipeline v PowerShellu

Jednou z hlavních funkcí prostředí Windows PowerShell je možnost použití kanálu 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. Tuto funkci budete 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í, pak se podívejte na seznam úloh na pozadí a zobrazte výsledek naší úlohy ( 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ého 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, budou provedeny na vzdáleném počítači stejným způsobem, jako kdybyste příkazy zadávali 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. Pomocí této metody můžete spouštět příkazy nebo skripty 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 Function a poté napsat algoritmus pro ovládání této funkce ve složených závorkách (), tj. 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 nepoběží na systému Windows Server nainstalovaném v edici 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í!

PowerShell 5.0 je dodáván s Windows 10, ale pro předchozí operační systémy byla nová verze vydána jako součást Windows Management Framework 5.0 až na konci února a na druhý pokus. Dnes budu mluvit o některých nových funkcích, ale začnu tím, proč byste mohli potřebovat PowerShell.

Proč potřebujete PowerShell

Nemá smysl učit se PowerShell jen tak, a to platí pro jakýkoli jazyk – skriptovací, softwarový a dokonce i lidský. Stejně jako mnoho řešení společnosti Microsoft je PowerShell navržen s ohledem na podnikání, aby automatizoval úkoly správy počítačů a serverů v organizacích.

Skriptovací jazyk je založen na výkonné softwarové platformě .NET, takže možnosti PowerShellu sahají daleko za hranice administrace.

Jednou jsem potřeboval smazat jeden sloupec z mnoha sešitů Excelu 2013. Ruční práce byla hnusná a Google neposkytoval hotové řešení. Založil jsem téma na fóru (ano, taky se občas ptám na OSZone :). Hodil se mi jakýkoli jazyk, ale řešením se nečekaně ukázal být PowerShell. Jak se ukázalo, Excel můžete načíst jako objekt COM a dále s ním manipulovat.

Následně jsem nejednou použil modifikaci toho skriptu k automatické aktualizaci desítek excelových sešitů, které stahovaly data z jiných souborů. To mi ušetřilo spoustu času a úsilí.

Myslím, že myšlenka je jasná a nyní můžeme přejít k novým funkcím PowerShellu 5.0.

8 užitečných funkcí

Zvýraznění syntaxe

V nové konzoli je mnohem jednodušší navigace!

Červená barva a číslování řádků jsou ale z jiné opery.

Prohledávejte historii dvěma směry

Klávesové zkratky: Ctrl + R a Ctrl + S
Rutiny: Get-PSReadlineKeyHandler A Set-PSReadlineKeyHandler

Stejně jako CMD má PowerShell historii relace s navigací pomocí šipek, a Získejte historii zobrazí protokol podobný F7. Úplný seznam klávesových zkratek souvisejících s protokolem lze zobrazit následovně:

Get-PSReadlineKeyHandler | ? ($_.function -jako "*hist*")

Ve výsledcích jsou dvě nové funkce vyhledávání historie, které jsou zobrazeny na obrázku níže. Funguje to velmi jednoduše.


Na rozdíl od Get-History, která obsahuje historii aktuální relace, je tato historie udržována globálně a je uložena při zavření okna.

Díky za tip Antonu Drovosekovovi a Konstantinu Sidyakinovi z naše skupina VK.

Vytváření spojení, symbolických a pevných odkazů

Rutiny: Nový předmět, Odebrat položku, Get-ChildItem

Na svém blogu mám spoustu příběhů, takže jsem nemohl ignorovat možnost vytvořit je v PowerShellu.

#Symbolický odkaz na soubor Nová-položka -Typ položky SymbolickýOdkaz -Cesta C:\test\Soubor MůjSym.Odkaz.txt -Cíl C:\test\1.txt #Symbolický odkaz na složku Nová položka -Typ položky SymbolickýOdkaz -Cesta C:\test \MySymLinkFolder -Cíl C:\Windows\ #Pevný odkaz na soubor Nová položka -Typ položky HardLink -Cesta C:\Test\MyHardLinkFile.txt -Cíl C:\test\1.txt #Připojení Nová-položka -Spojení typu položky -Cesta C: \Temp\MyJunctionDir -Cíl C:\Windows

Abychom byli spravedliví, syntaxe příkazu je mklink Je snazší si to zapamatovat, takže to může být rychlejší takto:

Iex "mklink /d C:\test\MySymLinkFolder C:\Windows"

Vytvoření dočasného souboru

Rutina: New-TemporaryFile

Ve skriptech často potřebujete vytvořit dočasný soubor, abyste tam vložili nějaké informace. K tomu je vytvořena nová rutina.

#Vytvořit dočasný soubor New-TemporaryFile #Vytvořit dočasný soubor a získat jeho úplnou cestu $tmpfile = (New-TemporaryFile).FullName $tmpfile

Zřídka provádím čistou instalaci hlavního systému, ale na virtuálních počítačích se to stává pravidelně. A OneGet je velmi vhodný pro rychlou automatickou instalaci klíčové sady programů.

Poznámka. Tento modul můžete používat bez instalace WMF 5.0. Předběžná verze modulu pro PS 4.0 a 3.0 je k dispozici samostatně – březen 2016 a novější verze vyhledejte v centru pro stahování PackageManagement PowerShell Modules Preview.

Instalace programů

Tento příklad nainstaluje čtyři programy a úplnou sadu nástrojů z úložiště Chocolatey. První tři příkazy se provedou jednou a změna zásad musí být potvrzena. Čtvrtý příkaz tiše nainstaluje uvedené programy a pátý jednoduše šetří čas.

#Povolit instalaci podepsaných balíčků z Internetu Set-ExecutionPolicy RemoteSigned #Nainstalovat poskytovatele Chocolatey Get-PackageProvider –Name Chocolatey -ForceBootstrap #Udělat Chocolatey jako důvěryhodné Set-PackageSource -Name Chocolatey -Trusted #Install programy, Install-Package, firefoxl NotepadP filezilla, sysinternals -Verbose -Force -ProviderName chocolatey #Přidat cestu ke spustitelným souborům (sysinternals) do PATH setx PATH "$env:path;C:\Chocolatey\bin" -m

Dodavatel stáhne balíček do C:\Chocolatey\lib, který je založen na skriptu chocolateyInstall.ps1. Stáhne instalační program programu z oficiálního webu do složky %temp%\Chocolatey a spustí jej v režimu tiché instalace. Nejjednodušším příkladem je Notepad++.

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

Vyhledat programy

V repozitářích je mnoho programů, určitě tam jsou všechny ty nejoblíbenější.

Find-Package "*zip*","*commander*" -ProviderName Chocolatey

Odinstalování programů

S mazáním aplikací však není vše tak plynulé.

Uninstall-Package -name filezilla

V ideálním případě by odstranění balíčku mělo vést k tichému odstranění programu, ale implementace závisí na autorovi balíčku a možnostech instalačního programu. V praxi některé balíčky neobsahují odinstalační skripty, jiné přicházejí s berličkami v podobě skriptů AutoHotkey a další jednoduše spouštějí odinstalaci interaktivně a žádají vás o ruční dokončení procesu. Pokud je však instalační program MSI, odstranění funguje hladce.

Související odkazy na OneGet a tichou instalaci:

  • Podrobný průvodce instalací programů z PowerShellu (Dmitry Bulanov)
  • Typy instalačních programů a klíčů pro tichou instalaci (můj článek z roku 2005 je docela relevantní :)
  • Stránka pro automatickou instalaci systému Windows a fórum pro automatickou instalaci programu

Diskuse a anketa

Pro zkušené skriptátory a systémové administrátory má PowerShell 5.0 další zajímavé funkce (například třídy podobné objektově orientovaným programovacím jazykům). Úplný seznam najdete na této stránce TechNet (odkaz vede konkrétně na anglickou verzi, protože ta ruská zatím neobsahuje informace o 5.0).

Můžete označit fragmenty textu, které vás zajímají, které budou dostupné prostřednictvím jedinečného odkazu v adresním řádku vašeho prohlížeče.

o autorovi

Zvýraznění syntaxe v PowerShell 5.0 je výchozí modul PSReadLine. V předchozích verzích jej můžete nainstalovat a přidat do zatížení ve skriptu profilu (proměnná $profile) nebo jej v případě potřeby načíst sami

Import-modul psreadline

Můžete mi říci více o tiché instalaci ze skriptů? Není to tak dávno, co jsem začal používat chocolatey, moc se mi to líbí, hlavně aktualizovat všechny programy jedním příkazem. Dokud jsem nepřišel na tichou instalaci, nastavil jsem vše v ručním režimu, příkaz-potvrdit-instalaci.

6yHTapb

Jediná věc, pro kterou jsem zatím potřeboval PowerShell ve Win 10, bylo obejít chybu s nefunkčním tlačítkem „vlastnosti“ v nastavení připojení VPN. Set-VpnConnection -Name "Name" -SplitTunneling $true.
Mimochodem, Vadime. Jsou k tomu nějaké informace? Mluvíme o tlačítku ve vlastnostech připojení VPN - síť - IP verze 4 - „vlastnosti“. Zde můžete obvykle zrušit zaškrtnutí políčka „použít bránu ve vzdálené síti“. Samotné tlačítko je aktivní, ale po stisknutí se nic neděje. Zde se PowerShell hodil.

Sergej Roshchin

Děkuji moc za Chocolatey
na Windows 7, jak tomu rozumím, to nefunguje?

Lecron

Hlasováním... využívám téměř všechny možnosti. Některé programy jsou v přenosné podobě. Část - nainstalovaná ručně z disku, pro ty, kteří se mohou sami aktualizovat nebo seriózní úpravy již byly dávno dokončeny. Některé z nich jsou napsané. Některé jsou nové. Některé z nich jsou již předinstalované v obrazu.
Klienti a úkoly se opět liší.

O PowerShellu... Myslím, že se Microsoft minul s názvem. Na první pohled není jasné, co se stalo. Command shell/procesor nebo skriptovací programovací jazyk. Slovo Shell naznačuje to první, ale pak je nejvyšší čas, protože je to tak cool, udělat z něj výchozí nebo ho alespoň propagovat jako hlavní. Skutečné případy použití však směřují spíše k druhému, nahrazujícímu WSH.

  • Lecron: ale pak je nejvyšší čas, protože je to tak cool, udělat z něj výchozí nebo ho alespoň propagovat jako hlavní.

    Ve Win+X můžete CMD nahradit PS (vlastnosti hlavního panelu - navigace). A jako hlavní ho propagují už dlouho - na TechNetu o CMD už dlouho není nic nového, jen PS.

    Cílovou skupinou jsou samozřejmě IT specialisté, ale totéž lze říci o CMD a WSH. Ale nevidím žádnou újmu pro cílové publikum mého blogu. Využití pro PS nacházím doma i v práci a není to s administrativou.

    • Lecron

      Nemluvím o škodě. A o nedorozuměních a odpovídajících chybách.
      co to je? Jak to vidí Microsoft? Příkazový procesor, který obvykle pracuje v interaktivní režimu, který také Možná

      Interaktivně pracovat v jedné syntaxi a sémantice a psát sekvence akcí v jiných je směšné. To je hlavní problém. Tak hluboko, že si toho ani vy nevšimnete, ačkoli jste to v článku nepřímo zmínili. Syntaxe mklink není jednodušší, ale známější. Od nové položky, s sjednocený syntaxe, umožňuje vytvářet velmi, velmi mnoho věcí. A nyní je jeho syntaxe ve skutečnosti jednodušší než znalost mnoha jednotlivých utilit, včetně jejich názvů.

      Slib byl dodržen – zde je modul pro správu správců balíčků, pokračujte.

      Nerozuměl. Co je to „modul správy manažerů“?

        • Lecron

          Zdá se mi, že tady se pes hrabal. U poskytovatelů. Když neexistuje jednotný přístup ke správě balíků. Ve skutečnosti musí uživatel vědět a vzít v úvahu, který poskytovatel je používán. A to nejen pro uživatele, ale i pro správce.

          Funkce je jako obvykle zaměřena na organizace a MSI a MSU jsou plně podporovány.

          Lecron

          Možná jsem nepochopil celou hloubku této funkce, proto tak stupidní tvrzení.
          Bude uživatel potřebovat další kroky, pokud vlastník úložiště/balíčku změní poskytovatele? Nebo změní jeho nastavení tvůrce balíčku? Nebo se o tohle všechno stará správce balíčků?

          Hm... tady je funkce - vezmi si to, zkus to, přijď na to - pomůže to vyřešit některé otázky. Existuje dodavatel, ten má balíčky v úložišti. Odebrali jste konkrétní balíček? Pak si ji nebudete moci stáhnout od tohoto poskytovatele. Balíček, který již byl stažen, však zůstává lokálně a lze jej dále spravovat.

          Lecron

          Mimochodem, je tu další otázka. Existuje příkaz Update-Package, nebo ještě lépe Update-AllPackage?

          Ahoj. Řekněte mi, je možné obnovit boot nebo bios a jak to udělat? Zavaděč Windows 7 Pro havaroval. Již jsem změnil nastavení při spouštění, ale systém Windows nechce spustit. Dříve byl ve službě prezentován Windows 8.1, nainstalovali Windows 7 Pro bez mého souhlasu. Pomozte vyřešit problém!

Alexeji

Často jsem slyšela o čokoládě, a protože jsem si to připomněla, nakonec jsem se rozhodla ji vyzkoušet. výsledek nebyl nijak zvlášť působivý.

Masivně jsem nainstaloval sadu softwaru již nainstalovaného na PC. jen asi 70 % bylo nalezeno v úložišti.
keys -y -accept-license -f -x - Kouřil jsem manu jen pár minut, možná jsem něčemu nerozuměl.
výsledek:
software, o který jsem nežádal: autoIT, autohotkey. Proč?
stáhli si starou verzi Acrobat Reader DC, cheat engine;
nelze stáhnout virtuální schránku virtuální schránky;
tichý režim nefungoval viber, wireshark, lehká slitina - musel jsem zaškrtnout políčka a stisknout dále;
Skype odstranil starý, ale nenainstaloval nový.
a některé zkratky nebyly vytvořeny, nyní si musíte zapamatovat, které.

Upozornění:
- Adobe Reader
- výhled na vítr
- Firefox
-notepadplusplus
– týmový prohlížeč

Nechápu, jaké jsou zde chyby.

na čistém systému si v každém případě budete muset zbytek softwaru stáhnout ručně, nebo nainstalovat již nepodporovaný z archivu.
navíc je to vzácné, ale na některých místech během instalace musíte vybrat určité konfigurace - složení balíčků atd. zde to lze implementovat pouze pomocí skriptů pro každý produkt, což doma neušetří mnoho času. protože všechny tyto možnosti se mohou měnit a mění se od verze k verzi, musíte skripty sledovat a přepisovat. nezní moc dobře.
pokud by mohl skenovat registr a přidat jej do databáze nebo do softwaru GUI k výběru, bylo by to jednodušší. V opačném případě musíte nejprve strávit čas sestavením seznamu pro instalaci - pro jistotu jsem zkontroloval každý produkt, abych uvedl správný název balíčku.

  • Sergeji

    PS C:\Users\Gerald> Find-Package "*paint.net*" -ProviderName Název čokolády Shrnutí verze zdroje ---- ------- ------ ------- paint .net 4.0.6 chocolatey Paint.NET je software pro manipulaci s obrázky a fotografiemi určený k použití na počítačích, které...

    Zrovna dnes jsem poprvé narazil na zmínku o Chocolatey na Habrahabru a právě tam ve vašem newsletteru. Zdálo se, že to bylo ono! Myslel jsem, že za automatickou instalaci svobodného softwaru z ninite.com bude úžasná skriptovaná náhrada, ale bohužel. Relevance softwaru není podporována na paranoidní úrovni a problémy jsou ty, které popsali účastníci výše.

    Vitalij

    Myslím, že filozofie UNIXu je pro konzoli vhodnější:


    Napište programy, které spolupracují.
    Pište programy, které podporují textové proudy, protože se jedná o univerzální rozhraní.

    • Vitaly, obsahuje Windows konzolový nástroj pro ZIP? To se provádí za účelem zjednodušení skriptů PowerShell; není třeba chodit do CMD, integrované nápovědy atd.

      • Lecron

        Proč se obtěžovat s cmd, když oba shelly a oba musí nezávisle spouštět spustitelné soubory a spravovat jejich vstup/výstup?
        Nebráním se zahrnutí takové funkce, zvláště pokud je to uděláno moudře, jako rozhraní pro zlib, a ne jen další nabobtnání kódové základny - jedna věc v průzkumníku, druhá v shellu, třetí strana v cmd .

        Vitalij

        Ne, není součástí dodávky.
        Ale na mém hostingu, když jsem poprvé zkusil použít zip, jsem obdržel něco jako „zip není nainstalován. Nainstalujte pomocí apt-get install zip."

        Přejít na cmd? Výše bylo řečeno, že PS by mělo spouštět binární soubory.

        Odkaz? V Linuxu příkaz man %util_name% nebo %utility_name% -?, první poskytuje podrobný manuál, druhý jako stručný odkaz na parametry. Zdá se, že to funguje všude.

        Výsledkem je, že interpret příkazů na Linuxu je jednoduchá a výkonná věc, existuje mnoho alternativ, protože v něm není nic složitého, pouze spouští programy, řídí výstupní proud a interpretuje nejjednodušší syntaxi.

        ostražitější

        Vadim Sterkin: Vitaly, obsahuje Windows konzolový nástroj pro ZIP?

        Stydím se zeptat: nebylo by jednodušší to přidat než přidat vestavěnou funkci?

  • Herz Mein

    > proč by měl shell pracovat s archivy pomocí vlastních prostředků?

    Pokud existuje taková možnost ve třídách .Net, tak proč ji nevyužít? Je to jen jiný přístup než bash nebo cmd, což jsou interpreti příkazového řádku. CLI. A PowerShell je IMHO spíše debugger pro skripty.

    artem

    Lecron co to je? Jak to vidí Microsoft? Příkazový procesor, který obvykle pracuje v interaktivní režimu, který také Možnáčíst příkazy ze souboru zvaného skript? Nebo jako skriptovací jazyk, který má vlastní REPL? Souhlasíte s tím, že je v tom velký rozdíl?

    Je jasné, že úkoly jsou různé. Ale nevidím mezi nimi žádný rozpor. Tito. Obě potřeby je docela možné pokrýt jedním nástrojem. O to se PowerShell snaží. Některé věci dopadnou dobře, některé ne tolik. Ale vize je jasná.

    artem

    Vadim Sterkin:
    A jako hlavní ho propagují už dlouho - na TechNetu o CMD už dlouho není nic nového, jen PS.

    Bude to brzy, předpokládám. CMD (samotná skořápka) se nyní začala poměrně aktivně zdokonalovat. I když předtím se toho deset let vůbec nedotkli.

    artem

    Vitalij Napište programy, které dělají jednu věc a dělají ji dobře.

    Nevidím žádné rozpory. V PowerShellu dělá každá rutina jednu věc (až na velmi málo výjimek). Kdo říká, že Expand-Archive umí vypalovat DVD nebo vařit kafe - ať je první, kdo po mě hodí kamenem.

    Vitalij Napište programy, které spolupracují.

    Tady PowerShell dělá všechny shelly, které znám, protože... pracuje s objekty, nikoli s textem. Tito. „Spolupráce“ (předávání dat mezi rutinami) je mnohem efektivnější. Není třeba ztrácet čas rozebíráním textu a snahou vysvětlit dalšímu týmu, co přesně tento text je.

    Vitalij Pište programy, které podporují textové proudy, protože se jedná o univerzální rozhraní.

    Podporovány jsou také streamy. A pokud potřebujete jen přenést test, nejsou s tím žádné problémy.

    To znamená, že PowerShell plně dodržuje výše uvedenou filozofii.

    Vitalij Proč například vkládat „Vytváření spojení, symbolických a pevných odkazů“ do PS s vlastní syntaxí, pokud existuje mklink? Proč existuje „Vytváření a rozbalování archivů“, pokud existuje zip a jeho analogy?

    Ano, protože uvedené příkazy jsou „analogické k zipu“. Ve skutečnosti je odpověď na toto tvrzení velmi snadná. Jen si musíte uvědomit, že rutiny nejsou vestavěné funkce shellu, ale spíše externí příkazy. A vše do sebe okamžitě zapadne. Je normální, že máme příkazy k provedení některých akcí, že? To platí pro PowerShell i pro jakýkoli jiný shell.

    Ano, existuje malý počet rutin, které jsou dodávány s výchozím prostředím. Ale ideologicky se neliší od těch rutin, které se objevují samostatně při instalaci odpovídajících součástí Windows nebo jsou dokonce poskytovány vývojáři třetích stran.

    • Lecron

      artem: Je normální, že máme příkazy k provedení některých akcí, že? To platí pro PowerShell i pro jakýkoli jiný shell.

      Shell - tolik z tohoto slova... se začalo překrucovat pod vlivem čs.
      Celou dobu jsem věřil, že příkazy nezávisí na spouštěcím prostředí a příkazy zabudované do prostředí jsou potřeba pouze pro obsluhu schopností samotného prostředí, a ne objektů třetích stran. Opravdu se mýlil?
      Z tohoto pohledu se PS začíná podobat ACDSee a Nero.

      Vitalij

      Tady PowerShell dělá všechny shelly, které znám, protože... pracuje s objekty, nikoli s textem. Tito. „Spolupráce“ (předávání dat mezi rutinami) je mnohem efektivnější.

      Pochybuji, že všechny nástroje třetích stran podporují tyto stejné objekty. Ale text je podporován jakoukoli utilitou, která funguje na příkazovém řádku.

      Jen si musíte uvědomit, že rutiny nejsou vestavěné funkce shellu, ale spíše externí příkazy. A

      Proč tedy mají tyto rutiny svou vlastní syntaxi? No, nezdá se, že by to byly externí příkazy.

      • artem

        Vitalij: Pochybuji, že všechny nástroje třetích stran podporují tyto stejné objekty.

        Nástroje třetích stran - ne, samozřejmě. Rutiny třetích stran jsou ale snadné. Řekl bych, že asi osmdesát procent rutin třetích stran pracuje s objekty docela dobře.

        Pokud neexistuje rutina a musíte spustit utilitu (spustitelný soubor), musíte ji samozřejmě zadat jako vstup. Ale je snadné získat text z objektu (například rozšířením požadované vlastnosti). Chápu, že to zní srozumitelně, ale po získání kritického množství zkušeností se to ukáže jako zcela intuitivní.

        Vitalij: Proč tedy mají tyto rutiny svou vlastní syntaxi? No, nezdá se, že by to byly externí příkazy.

        S tímhle jsem nemohl víc souhlasit. "Nevypadá to" je to správné slovo :)

        Jak jsem řekl výše, na PowerShell je potřeba si trochu zvyknout. A teď řeknu něco ošklivého o našich evangelistech a MVP, ale zneužívání aliasů (dir místo Get-ChildItem, md místo New-Item -ItemType „Directory“, znak procenta místo Foreach-Object nebo otázka místo Where-Object a tak dále, a také vynechání názvů parametrů v případě, kdy default funguje) jen mate nepřipravené lidi. Kvůli tomu mi mimo jiné trvalo roky, než jsem si na PowerShell zvykl. Zdá se mi, že kdyby všechny ukázkové příkazy zveřejněné na blozích a fórech obsahovaly úplnou syntaxi, nováčci by zažívali mnohem méně anální bolesti.

    V podstatě využívám 2 možnosti: nasazení zálohy provedené ihned po nastavení systému nebo instalace vlastního sestavení Windows 7, kam zahrnu všechna potřebná nastavení a programy.
    A s Win10 jsem ještě nezvládl správce balíčků, i když jeho přítomnost vzbuzuje velké nadšení.
    Dříve jsem hrál s různými správci balíčků pro Windows, ale z toho či onoho důvodu byli všichni nepohodlní, pokud jde o „čas na učení“/„čas na ruční stahování“. Ukázalo se, že je jednodušší vytvořit si vlastní sestavu než vytvářet skripty.

    Jevgenij Kazancev

    Nádherný počin, viděl jsem, jak nainstalovat balíček potřebných programů jedním skriptem, použil jsem ninite, nijak zvlášť mě to nezaujalo, teď používám WPI stažené z torrentů, jejich výhoda je, že je toho mnohem více a reálných automatická instalace, mínus, že musíte věřit autorovi repacku.
    Jedna věc, kterou nechápu, je, jak zcela automaticky AKTUALIZOVAT nainstalované programy, což je klíčová základní funkce každého správce balíčků? Jak mohu zajistit, aby se stejný Poznámkový blok ++ automaticky zaregistroval jako výchozí aplikace, aniž bych přešel do strašně nepohodlného nastavení „nové, jsou moderní“? Jak funguje systém závislosti a existuje vůbec?

    Co když to navrhnete jako skript nebo funkci? Například takto (bez kontroly existence a bez převodu na úplné cesty, což je nutné):

    Param ( $create, $extract, $path, $zip) add-type -assembly system.io.compression.filesystem function create-zip ($path, $zip) ( ::createfromdirectory($path, $zip) ) funkce extrakt-zip ($zip, $cesta) ( ::extrahovattoadresar($zip, $cesta) ) if ($create) (vytvořit-zip $cesta $zip ) if ($extrakt) (extrahovat-zip $zip $cesta )

    Volejte podle toho:

    .\test -c -p "C:\Některá\Složka" -z "D:\Složka\out.zip" # Chcete-li vytvořit.\test -e -p "C:\Některá\Složka" -z "D: \Folder\out.zip" # Pro rozbalení

    • Co s tím má společného design? Používáte třídy .NET přímo ve vaší funkci. Rutina eliminuje potřebu přístupu ke třídám. V tom je rozdíl. Asi jako mezi programátorem a IT specialistou.

      artem

      Trolejbus vyrobený z bochníku chleba.jpg

      Pokud tomu dobře rozumím, nikdo nenamítá, že funkce mohou dělat vůbec cokoli :) Výhoda samozřejmě je, že nyní není potřeba psát samostatnou funkci speciálně pro tuto akci. To znamená, že za prvé bude pro lidi snazší jej používat (zejména pokud nevědí, jak psát funkce nebo si nemohou dovolit je pokaždé importovat), a za druhé dojde k větší standardizaci. To je nepochybné požehnání. Souhlasíte, je hloupé, když pět skriptů vyžaduje pět různých autorů k rozbalení archivů a každý z nich řeší tento problém trochu jinak. (Například jednou byla oblíbená možnost prostřednictvím nezdokumentovaného objektu COM Průzkumníka Windows).

    lesha

    Pracuji na Windows a Mac, a když si nastavím server, tak na Linuxu. OS X jsem párkrát kompletně přeinstaloval, ale vše je jednoduché - vybral jsem datum v TimeMachine 10-15 minut a systém je připraven.
    Na Windows je většina mých programů přenosná, instaluji pouze Chrome, protože jinak se softwarový balík Adobe neaktualizuje, takže od verze CC se stahují přes Cretive Cloud. Nevidím smysl stavět zahradu s automatizací. PowerShell je možná dobrý, ale na Windows nemám co automatizovat a pro Linux a OS X je bash, který používám už dlouho.
    Pokud se kamarád zeptá „přeinstaluj mi Windows, jinak je něco zabugované“, nainstaluji systém z externího disku svým „proprietárním“ způsobem a zbytek nechám na něm, aby si nainstaloval sám

  • Mnoho pokynů na tomto webu doporučuje spustit PowerShell, obvykle jako správce, jako jeden z prvních kroků. Někdy se začínající uživatelé ptají v komentářích, jak to udělat.

    Pokud je na vašem počítači nainstalován Windows 10, pak možná ještě rychlejší způsob, jak otevřít PowerShell, je kliknout pravým tlačítkem na tlačítko „Start“ a vybrat požadovanou položku nabídky (jsou zde dvě položky – pro jednoduché spuštění a jako správce). Stejné menu lze vyvolat stisknutím kláves Win+X na klávesnici.

    Poznámka: Pokud v této nabídce místo Windows PowerShell vidíte příkazový řádek, pak jej můžete nahradit PowerShell, pokud si přejete, v Nastavení - Přizpůsobení - Hlavní panel, kde povolíte položku „Nahradit příkazový řádek Windows Powershell“ (v možnost nejnovější verze systému Windows 10 je ve výchozím nastavení povolena).

    Spuštění prostředí PowerShell pomocí dialogového okna Spustit

    Dalším jednoduchým způsobem, jak spustit PowerShell, je použít okno Spustit:

    1. Stiskněte klávesy Win+R na klávesnici.
    2. Vstupte powershell a stiskněte Enter nebo Ok.

    Zároveň si ve Windows 7 můžete nastavit možnost spuštění jako správce a v nejnovější verzi Windows 10, pokud stisknete Enter nebo Ok při podržení kláves Ctrl + Shift, poběží utilita i jako správce.

    Video návod

    Další způsoby, jak otevřít PowerShell

    Výše uvedené seznamy nejsou všechny způsoby, jak otevřít Windows PowerShell, ale jsem si jistý, že budou zcela dostačující. Pokud ne, pak:

    Stává se také, že se lidé ptají, co je PowerShell ISE a PowerShell x86, které se najdou například při použití první metody. Odpovídám: PowerShell ISE – “PowerShell Integrated Scripting Environment.” V podstatě jej můžete použít ke spouštění všech stejných příkazů, ale navíc obsahuje další funkce, které usnadňují práci se skripty PowerShellu (nápověda, ladicí nástroje, barevné značení, další klávesové zkratky atd.). Verze x86 jsou zase potřeba, pokud pracujete s 32bitovými objekty nebo se vzdáleným systémem x86.