jakie są zalety Powershell nad cygwin / unix-shell

9

Oczywistą różnicą, o której wiem, jest możliwość interfejsu z niektórymi produktami MS, takimi jak Exchange. Ale jeśli ktoś nie musi administrować takimi produktami, jakie są zalety Powershell? Jakie są w ogóle powody, aby uczyć się PowerShell (zakładając, że biegle posługuję się bash i cygwin)?

Mosze
źródło

Odpowiedzi:

18

Najbardziej oczywista zaleta: dopóki w potoku nie ma wyjścia tekstowego (lub starszego polecenia), nie przenosisz tekstu przez potoki, ale wystąpienia obiektów struktury .NET, ze wszystkimi ich właściwościami i metodami.

Pozwala to na bardziej ekspresyjną i mniej dwuznaczną obsługę potoku, na którą również nie wpływają ustawienia regionalne i ustawienia języka (na przykład, pomyśl o formatach daty lub liczb i tym, jak normalnie należy traktować je jako ciągi znaków).

Oznacza to również, że masz dostęp do wielu możliwości środowiska .NET w środowisku skryptowym.

Tomalak
źródło
6

Bez oceny wartości tego paradygmatu głównymi zaletami programu PowerShell są integracja .Net i funkcjonowanie. Począwszy od serwera Windows 2008, jest on domyślnie dołączany do pakietu i ładowany w dodatkach Service Pack w 2003 i 2003 R2.

Aby być uczciwym, istnieje kilka innych opcji skryptów - na przykład Perl i Python. Python daje również możliwość korzystania z IronPython, jeśli chcesz natywną integrację .Net. W rzeczywistości IronPython zainstaluje się poprawnie, po prostu upuszczając go w katalogu. Możesz w trywialny sposób spakować go w aplikację bez potrzeby oddzielnego kroku instalacji.

Kluczową siłą Powershell jest trochę obosieczny miecz. Podczas gdy przesyłanie strumieniowe obiektów .net jest dość przydatne i ma swoje zalety, stawia o wiele więcej założeń co do zdolności komponentów do ładnej gry z frameworkiem. Aby to naprawdę działało, musisz owinąć rzeczy za pomocą poleceń cmdlet. Podczas gdy tekst wyjściowy jest nieco niższy i wymaga analizowania, nakłada on mniejsze obciążenie na komponenty, aby ładnie grały z frameworkiem.

Z biegiem czasu spodziewałbym się, że znacznie więcej ekosystemu Windows (zarówno MS, jak i składniki innych firm) będzie dostarczany z opakowaniami cmdlet, dzięki czemu będą działać z Powershell. Gdy tak się stanie, sprawa Powershell stanie się znacznie silniejsza.

Historycznie jedną z kluczowych tradycyjnych słabości systemu Windows z administracyjnego punktu widzenia była słaba obsługa skryptów. Stwardnienie rozsiane rozpoznało to wiele lat temu i po kilku kiepskich próbach (np. WSH) Powershell jest jak dotąd najbardziej wiarygodnym wysiłkiem stwardnienia rozsianego, aby naprawić ten niedobór.

ConcernedOfTunbridgeWells
źródło
2

Myślę, że największą wygraną dla PowerShell jest to, że możesz dowolnie potokować dowolne elementy bez konieczności analizowania tekstu i / lub grok sed i awk. Nie wprowadzając tych paskudnych obiektów do równania, pomyśl o PowerShell jako o automatycznym sed i awk do łączenia poleceń w potoku.

x0n
źródło
2

Zalety:-

  1. Automatyzacja zadań: - Zadania takie jak dodawanie użytkownika do 1000 komputerów to żmudne zadanie ręczne. Ale za pomocą programu PowerShell wystarczy napisać prosty skrypt, a ten skrypt zostanie uruchomiony, automatycznie skonfiguruje on wszystkich klientów. W ten sposób oszczędza czas, automatycznie powtarzając kroki. Skrypty tworzenia kopii zapasowych / przywracania Windows PowerShell można opracowywać i planować (za pomocą Harmonogramu zadań systemu Windows), natomiast Administracja centralna służy do jednorazowego tworzenia kopii zapasowych i przywracania. Windows PowerShell ma tę zaletę, że działa przeciwko migawkom SQL zamiast produkcyjnej bazy danych. Jeden z parametrów polecenia Windows PowerShell spowoduje wygenerowanie migawki SQL, a następnie Windows PowerShell uruchomi akcję przeciwko migawce zamiast produkcyjnej bazy danych. Spowoduje to zmniejszenie wpływu operacji tworzenia kopii zapasowych na środowisko produkcyjne. Dzięki Windows PowerShell administratorzy SharePoint będą mieli bardziej szczegółową kontrolę opcji tworzenia kopii zapasowej lub przywracania.

  2. Ulepszenie możliwości zdalnego sterowania: - Znaczenie jest dwojakie, po pierwsze, komputery stacjonarne z systemem Windows 7 mogą komunikować się z serwerem za pomocą poleceń programu PowerShell. W rezultacie technicy z laptopami z systemem Windows 7 mogą zdalnie konfigurować swoje serwery, uruchamiając skrypty PowerShell. Po drugie, skrypty logowania klienta napisane w PowerShell, które znajdują się na serwerze, mogą działać łatwiej w systemie Windows 7. Również za pomocą programu PowerShell możemy łatwo kontrolować zdalne maszyny, wykonywać na nich ważne zadania i łatwo wprowadzać te zmiany na dużą skalę. Zdalne korzystanie z zasobów sieciowych. Kiedy więc pracowalibyśmy z PowerShellem, nie korzystamy z GUI, a zatem przepustowość wymagana do określonego zadania jest zmniejszona, a problem przeciążenia sieci rozwiązany.

  3. Spójność: - Jeśli masz ustawioną procedurę wykonywania zadania, użycie Windows Powershell zapewni, że nigdy nie przegapisz kroku, zautomatyzujesz tyle, ile możesz, i poprosi Powershell o monitowanie o rzeczy, których nie można zautomatyzować.

  4. Obsługa platformy .NET: - Powershell obsługuje platformę .NET. Dlatego wszystkie funkcje systemowe mogą być łatwo dodawane do skryptów PowerShell, a tym samym pomagają programistom w tworzeniu skryptów. W ten sposób automatyzacja zadań VDI jest znacznie łatwiejsza, prostsza i wydajniejsza.

  5. Mniej pracy ręcznej: - Administrator może teraz tworzyć, usuwać lub modyfikować ustawienia maszyn wirtualnych zdalnie, po prostu pisząc skrypty. Nie musi chodzić do indywidualnego komputera i wykonywać pracy. Również napisane skrypty są akceptowane na wszystkich komputerach. Dlatego administrator nie musi ich ponownie zapisywać.

  6. Wielokrotnego użytku: - Skrypty raz napisane w celu wykonania określonego zadania mogą być przechowywane do późniejszych celów, a także mogą być łączone z innymi skryptami w celu wykonywania różnych zadań. Powtarzające się zadania można wykonywać w znacznie prostszy sposób, po prostu uruchamiając skrypty. Oszczędza to czas i pieniądze administratorów podczas konfigurowania maszyn.

  7. Obsługa potoków: - Największą wygraną w PowerShell jest to, że możesz dowolnie dowolnie przesyłać dowolne elementy bez parsowania tekstu. Możesz podać dane wyjściowe jednego polecenia jako dane wejściowe do nowego zestawu, a tym samym rozwiązać złożone zadania.


źródło
0

Nie gwarantuje się, że Cygwin będzie dostępny dla każdej wersji systemu Windows. Ostatnio sprawdziłem, czy jest wątpliwe na komputerach 64-bitowych. Powershell staje się domyślną powłoką poleceń dla systemu Windows i oferuje „natywny” dostęp do wszystkich zasobów na komputerze z systemem Windows.

Eric Z Beard
źródło
Używam cygwin na 64-bitowym systemie Vista, działa idealnie.
lajos