PowerShell
| software PowerShell | |
|---|---|
| Windows Powershell běžící na Windows 7 | |
| Žánr | Terminál |
| Vývojář | společnost Microsoft |
| Datum první verze | 14. listopadu 2006 |
| Nejnovější verze | 7.2.5 (21. června 2022) |
| Operační systém | Microsoft Windows macOS Linux |
| Jazyk | C # |
| Licence | Licence MIT od verze 6.0.0 ( bezplatná licence ) |
| webová stránka | PowerShell |
PowerShell , původně známý jako Microsoft Shell , MSH nebo s kódovým názvem Monad a poté jako Windows PowerShell , je shell charakterizovaný rozhraním příkazového řádku (CLI) a skriptovacím jazykem vyvinutý společností Microsoft , založený na programování objektů a Microsoft .NET framework .
Microsoft původně zamýšlel nasadit PowerShell spolu s Windows Vista , ale později definoval jiná data nasazení pro PowerShell. Vyžaduje verzi 2.0 rozhraní .NET Framework a je podporováno v systémech Windows XP , Windows Server 2003 , Windows Vista , Windows Server 2008 , Windows 7 , Windows 8 a Windows 10 dostupné v edicích x86 , x64 a Itanium . Byl přítomen ve verzi 2 v systému Windows 7, ze kterého jej nelze odinstalovat. Instalace Powershell na Windows 2000 je možná (po instalaci frameworku), ale výsledný systém je zcela nestandardní a nepodporovaný.
Tvoří také základ administrativního rozhraní pro Microsoft Exchange Server 2007 , kde se jakákoliv operace provádí pomocí příkazového řádku a rozhraní GUI je umístěno na vrstvě nad těmito příkazy.
Od verze 6.0 ze srpna 2016 se PowerShell stal svobodným softwarem a Microsoft jej zpřístupnil také pro Linux a macOS . [1]
Historie
Každá distribuce MS-DOS a Microsoft Windows vždy obsahovala rozhraní příkazového řádku : command.com ve verzích založených na MS-DOS ; cmd.exe v systémech založených na Windows NT : nebyly však schopny reprodukovat nebo automatizovat všechny administrativní funkce dostupné prostřednictvím GUI , ačkoli se situace se systémem Windows Server 2003 zlepšila . Bylo to způsobeno kombinací omezení souvisejících s ekvivalentními nástroji příkazového řádku nebo skutečností, že společnost Microsoft již dlouhou dobu neposkytuje spolehlivé nástroje tohoto typu. [2]
Na rozdíl od unixových prostředí také command.com ani cmd.exe nevyhovují standardu POSIX.2 . Služby pro UNIX zahrnují pdksh , který je v souladu s tímto standardem, ale jak tento, tak další UNIX shelly , které jsou k dispozici, nejsou schopny provádět mnoho rutinních úloh, které zůstávají svázány s GUI Windows. Ačkoli byla sada služeb pro UNIX integrována do systému Windows Server 2003 R2 a poté také zahrnuta v některých edicích systému Windows Vista, dříve byla zpřístupněna jako placený doplněk (například sada prostředků systému Windows 2000), což bránilo její deaktivaci. faktická adopce ve velkém měřítku.
Uživatelé byli odrazováni od používání funkcí příkazového řádku kvůli nedostatku komplexní dokumentace. Na druhou stranu i mnohé grafické aplikace v Unixu byly v podstatě obaly pro nástroje příkazové řádky, nicméně doprovázené dokumentací.
Microsoft se pak pokusil napravit některá z těchto omezení zavedením Windows Script Host v roce 1998 , souběžně s distribucí Windows 98 . Byl to interpret příkazů nové úrovně, který bylo možné vyjádřit velkým množstvím skriptovacích jazyků , aby bylo možné ovládat aplikace. Script Host však měl také významná omezení: nebyl integrován s shellem, jeho dokumentace nebyla příliš dostupná a brzy byl považován za nebezpečí pro bezpečnost systému poté, co několik virů upozornilo na podstatnou slabinu jeho modelu. bezpečnost.
Windows Server 2003 a některé verze systému Windows XP obsahují hostitele skriptů příkazového řádku s názvem Cscript.exe (toto je v podstatě samostatná část výše uvedeného hostitele Windows Script Host), který není integrován se stávajícím prostředím (cmd. exe). Tyto operační systémy také poskytují další ad hoc příkazové řádky (např . netsh ), které také nejsou plně integrovány.
Zásadním omezením automatizace úloh ve Windows byla skutečnost, že jeho nativní administrační rozhraní byla otevřena pro patentované grafické nástroje Microsoftu a pro jakákoli skriptovací rozhraní, která se Microsoft mohl rozhodnout poskytnout. Vzhledem k tomu, že GUI bylo primárním rozhraním, bylo obtížné poskytnout "obaly" schopné skriptování - situace, která je přesně opačná než u většiny unixových implementací , kde příkazový řádek schopný spouštění skriptů poskytoval základní funkčnost.
Společnost Microsoft navrhla PowerShell tak, aby tyto problémy byly méně nepřekonatelné a aby byl proces vývoje nových grafických aplikací a aplikací příkazového řádku méně zatěžující integrací bezpečnějšího skriptovacího jazyka do nového rozšiřitelného příkazového prostředí, které bylo schopné provádět a automatizovat stejné základní administrativní úkoly. které se provádějí přes grafické rozhraní ve Windows. Uživatelské rozhraní pro správu Exchange Server 2007 se například spoléhá na PowerShell. Ve většině každodenních úkolů může PowerShell nahradit cmd.exe a Windows Script Host (WSH). Z důvodů zpětné kompatibility však budou cmd.exe i WSH nadále podporovány systémem Windows. Microsoft se zavázal stavět grafické nástroje budoucnosti nad PowerShell, aby zajistil, že základní administrativní funkce budou i nadále použitelné prostřednictvím příkazového řádku, v souladu s unixovým operačním systémem.
Microsoft vydal druhou veřejnou beta verzi „Monad“ 11. září 2005 a třetí byla vydána 10. ledna 2006 .
Microsoft 25. dubna 2006 oznámil, že WSH změní svůj název na Windows PowerShell a stane se významnou součástí jeho nabídky nástroje pro správu systému [3] .
První kandidát na vydání PowerShell byl vydán současně s oznámením. Druhý kandidát na vydání byl vydán 26. září 2006 . Verze 1.0 byla vydána 14. listopadu 2006 . Verze 2.0 je standardní pro Windows 7 . Verze 3.0, dostupná pro Windows 7 SP1 a Windows 2008 Server R2 SP1, je standardem pro Windows 8 a Windows Server 2012 jako součást širšího rozhraní Windows Management Framework V3, jehož součástí je také WinRM.
Verze 6 byla vydána 2. srpna 2016 a vytváří opensource software pod licencí MIT [4] a také jej zpřístupňuje pro Linux a Mac OS. Název se ve skutečnosti změní odstraněním Windows z názvu a ponecháním pouze PowerShell.
Popis
Principy
Kódové jméno PowerShell, Monad , pochází z monadologie Gottfrieda Leibnize , filozofie, ve které se vesmír skládá ze základních prvků, monád , uspořádaných do „ předem stanovené harmonie “. Podobně je PowerShell kombinací složitých úloh a řady komponent, rutin ( command lets ), což jsou třídy .NET navržené tak, aby využívaly vlastnosti prostředí. Zásadní rozdíl mezi unixovým přístupem a přístupem PowerShellu spočívá v tom, že namísto vytváření „potrubí“ (doslova tube ) na základě textových vstupů a výstupů předává PowerShell data z jedné rutiny do druhé jako objekty (data vybavená studnou -definovaná struktura).
Pokud se k němu pokusíte získat přístup přes příkazový řádek, výstup rutiny se automaticky převede na text; místo toho, pokud se ji pokusíte použít v jiné rutině, bude převedena na nejvhodnější objekt pro vstup této jiné rutiny. Tímto způsobem již nejsou potřeba různé utility běžně používané v unixových pipelinech, jako je grep a awk , a umožňuje interaktivní kombinaci jednotlivých prvků nebo ve skriptovacím prostředí, což by jinak vyžadovalo výkonnější programovací jazyk. komplex. Například seznam běžících procesů nebude sestávat z textu, který je popisuje, ale z objektů, které jej tvoří, takže je možné na tyto objekty vyvolat metody, aniž by se výslovně odkazovalo na jakoukoli strukturu nebo knihovnu .
Funkce
- Skriptovací jazyk podobný C# , s mnoha funkcemi vyhrazenými pro zkušené uživatele, jako je přímá podpora hashovacích tabulek , přepínací konstrukce založené na regulárních výrazech, dekompozice polí , možnost ukládání anonymních metod jako dat pro pozdější spuštění. Existují samozřejmě všechny funkce, které byste očekávali od skriptovacího jazyka, jako je iterace (for / foreach / while), podmíněné konstrukce (if / switch), variabilní pole vidění (globální / skriptové / místní / soukromé ) a schopnost definovat funkce.
- Všechny rutiny dědí některé vlastnosti, což uživateli umožňuje vybrat si například úroveň interakce a způsob zpracování chyb; Vezměme si jako příklad „suspend“, který vám umožní zadat nový příkazový shell, prozkoumat problém a pak pokračovat s původním příkazem. Programátor je vybaven jednoduchým vestavěným mechanismem pro definování výzev, které se mají v takových situacích zobrazovat. Rutiny, které vracejí něco externě, podporují možnosti -WHATIF a -CONFIRM. -WHATIF simuluje provádění postupu a sděluje uživateli možný výsledek. -CONFIRM informuje uživatele o tom, co se bude dít, a umožní mu rozhodnout se, co dělat.
- Rozšiřitelný model poskytovatele poskytuje možnost přístupu a manipulace nejen se systémem souborů , ale také s dalšími hierarchickými datovými strukturami. PowerShell například integruje poskytovatele registru Windows , který umožňuje přístup ke stromům „HKLM“ (HKEY_LOCAL_MACHINE) a „HKCU“ (HKEY_CURRENT_USER). Tímto způsobem lze protokol prohlížet pomocí příkazů jako "HKLM dir: \ SOFTWARE \ Microsoft" z příkazového řádku. PowerShell poskytuje poskytovatele pro knihovnu bezpečnostních certifikátů, proměnné prostředí a prostředí, funkce a aliasy; uživatelé mohou vytvářet své vlastní poskytovatele a integrovat je do PowerShellu.
- Volby příkazového řádku jsou obvykle celá slova, ale lze na ně rychleji odkazovat zadáním pouze minimálního počtu písmen potřebných k jejich rozlišení od ostatních (možnost
-mostra-informazioni-dettagliatelze například vyvolat zadáním pouze-mtehdy, pokud žádná jiná možnost nezačíná na „m“). . - Uživatelsky rozšiřitelné automatické dokončování příkazů. Myslete na to, že cmd.exe v nejnovějších verzích Windows dokáže doplnit pouze názvy souborů a adresářů, na rozdíl od toho, co se děje v prostředích, jako je bash a zsh .
- Možnost přiřadit výstup příkazu proměnné, která se stane objektem nebo polem objektů, které lze zobrazit libovolným způsobem.
Windows PowerShell ISE
Windows PowerShell Integrated Scripting Environment (ISE) je aplikace představená počínaje PowerShell 2.0 [5] . S touto verzí PowerShellu můžete spouštět příkazy, testovat a ladit skripty v jediném uživatelském rozhraní s více pohledy (a s grafikou Windows). Panely jsou specifické pro příkazy, skripty a výsledky.
Poznámky
- ^ PowerShell je open source a je dostupný pro Linux | Blog a aktualizace Azure | Microsoft Azure na adrese azure.microsoft.com . Staženo 22. srpna 2020 .
- ^ DOS je stále živý, skrytý uvnitř Windows 10 - Wired , v Wired , 17. ledna 2017. Staženo 4. února 2017 .
- ^ Jeffrey Snover, Windows PowerShell ( Monad ) dorazil , blog týmu Windows PowerShell , MSDN, 25. dubna 2006. Staženo 26. dubna 2006 .
- ^ LICENSE.txt ( TXT ) , na Powershell , Github . Staženo 22. srpna 2020 .
- ^ Stefano Serafino, Windows PowerShell: co to je a k čemu slouží (kompletní průvodce) | 'L' | , v Memex Computer , 18. května 2017.
Bibliografie
- Cobisi, Windows PowerShell 2.0 – kompletní průvodce , ISBN 978-88-8233-893-0 (archivováno z originálu 1. července 2010) .„Vedoucí komunita powershell.it, italská komunita Windows PowerShell“
- Bruce Payette, Windows PowerShell v akci , ISBN 1-932394-90-7 ."Zakládající člen týmu Windows PowerShell a jeden z klíčových vývojářů skriptovacího jazyka"
- Andy Oakley, Monad - Představení příkazového shellu a jazyka MSH ( kniha Ropucha, ISBN 0-596-10009-4 .
- Don Jones, An Introduction to Microsoft PowerShell (archivováno z originálu 27. října 2006) .
- Don Jones, Jeffery Hicks, Windows PowerShell: TFM , ISBN 0-9776597-1-2 .
- Lee Holmes, Windows PowerShell Quick Reference , ISBN 0-596-52813-2 ."Windows PowerShell Team Developer"
- Jerry Lee Ford Jr, programování prostředí Microsoft Windows Powershell pro úplného začátečníka , ISBN 1-59863-354-6 .
- Andrew Watt, Professional Windows PowerShell , ISBN 0-471-94693-1 ."Windows PowerShell MVP"
Další projekty
Wikimedia Commons obsahuje obrázky nebo jiné soubory v PowerShellu
Externí odkazy
- ( EN ) Domovská stránka PowerShellu na microsoft.com .