Děkuji autorovi za popularizaci PowerShellu. Ony připravené příkazy jsou taková smíchanina různých wrapperů okolo wmic, exe nástrojů a .NET frameworku, která navíc vznikla v době, kdy ještě ConHost.exe neuměl předávat standardní vstupy a výstupy mezi programy, a tak je to řešené uměle s velkými ALE. I když je od verze 6 multiplatformní si nedokážu si vůbec představit, jak bych psal nějaký skript, aby fungoval v obou prostředích (instalace ovladače tiskárny např.), vyjma práce se se surovými daty, a na to už je zase lepší Python.
Trochy mě mrzí, že tu v diskusích nikde není diskuse ohledně porovnání vlastností. Nejspíš protože PS vlastně moc lidí nepoužívá, což je velká škoda. Z mojí zkušenosti Windows Administrátoři radši manuálně 200x proklikají nějaký postup, než aby vymýšleli automatizaci. V Linuxu je to zase opačně že? :)
I tak bych byl rád, kdyby mu víc lidí dalo šanci. Za mě argumenty jsou:
-lepší čitelnost kvůli operaci zmíněné hned na začátku příkazu a celým názvům parametrů, hlavně když spouštíte skript od někoho jiného grep = Select-String -Pattern, mkfs = New-Partition -Size atd.. ale to je asi o zvyku- ctrl + mezerník InteliSence nabídka možností i pro parametry za napsanou pomlčkou – za mě věc kvůli které mám pwsh i na linux serverech protože si ty přepínače nemůžu zapamatovat a tohle je velký pomocník- data mají vždy OOP strukturu, lze jednoduše za příkaz dát | gm (jako get-member) pro vypsání struktury nebo Format-List * či Format-Table * pro strukturované vypsání dat. Např.: ls | fl * pro detaily souborů- automatizace napříč windows prostředím, klidně včetně simulování stisků kláves, myši a proklikání nějakého GUI- procházení event logu je práce s objekty kde funguje filtrování, hledání pomocí select, where atp. oproti Linuxu, kde se průzkum logu vždycky zvrhne na grep, regexy a awk.
- celý jazyk je založený na .NET frameworku a je objektově orientovaný. Chyby = vyjímky určitého typu s popisem problému a kontextem + fungující try / catch- s registrem se pracuje jako se souborovým systémem (podobně jako /proc) což značně zjednodušuje nastavování oproti ručnímu zásahu do /etc .conf souborůA nevýhody:
- největší nevýhoda je rychlost. Chtěl jsem třeba pomocí iwr (Invoke-WebRequest zmíněný v článku) stáhnout všechny .ts chunky z online streamu a ta funkce je tak pomalá, že inicializace každého requestu zabere snad 2s kvůli reportování stavu do gui přes Write-Progress, ale právě tím, že lze pracovat s čímkoliv z .NET frameworku, lze použít přímo WebClient.DownloadFile() což je rychlostně na úrovni wget- neexistence příkazu sudo.. musí se obcházet přes start-process -verb runas což je opravdu ohavné řešeníPěkný den ;)
Názor byl 3× upraven, naposled 02. 05. 2022 15:53