29Aug
Może to być bardzo frustrujące, gdy twój profesor mówi jedno o PowerShellu, a różne strony internetowe wydają się dowodzić czegoś przeciwnego. Czy PowerShell działa na systemach innych niż Windows, czy nie? Dzisiejszy post SuperUser Q & A ma odpowiedź na zaintrygowane pytanie czytelnika.
Dzisiejsze pytanie &Sesja odpowiedzi przychodzi do nas dzięki uprzejmości SuperUser - poddziału Stack Exchange, opartego na społecznościach grupy Q & A.
Pytanie
Czytnik SuperUser FredSavage187 chce wiedzieć, czy PowerShell działa na innych systemach operacyjnych oprócz Windows:
Mój profesor informatyki napisał ostatnio quiz i jedno z pytań brzmiało: "Prawda czy fałsz: PowerShell działa na Windowsie, Macu iLinux ".Poprawną odpowiedzią było "false" i utrzymuje, że PowerShell jest rzeczą tylko dla Windows. Ale znalazłem kilka stron internetowych, które mówią inaczej:
PowerShell jest open source i jest dostępny w systemie Linux [blog Microsoft Azure]
Repozytorium PowerShell [GitHub]
Który z nich jest rzeczywiście poprawny? Czy PowerShell działa na systemach Linux i Mac OS, a także Windows?
Czy PowerShell działa na innych systemach operacyjnych oprócz Windows?
Odpowiedź
Pomocnik SuperUser Ben N ma odpowiedź dla nas:
Tak. Znaczna część PowerShell to. NET, więc może działać na dowolnym systemie operacyjnym z Common Language Runtime( CLR).W systemie Windows jest to. NET Framework. W przypadku innych systemów operacyjnych, w tym systemu Linux, można użyć CoreCLR, open-source, międzyplatformowego podzbioru. NET Framework.
Jak dowiedziałeś się w repozytorium PowerShell na GitHub, obsługiwanych jest sporo systemów operacyjnych i dystrybucji. Na przykład tutaj są instrukcje dla Ubuntu i demonstracja:
Można argumentować, że nie wszystkie funkcje PowerShell są dostępne w środowiskach innych niż Windows, ponieważ niektóre funkcje zależą od bibliotek znalezionych tylko w systemie Windows. Właściwość ParsedHtml w typie HtmlWebResponseObject zwrócona przez Invoke-WebRequest jest na przykład użyteczna tylko w systemie Windows, ponieważ zawiera obiekt COM pochodzący z niezarządzanej biblioteki, mshtml.dll , aby był specyficzny. Na innych platformach nic tam nie ma. Oczywiście istnieją polecenia cmdlet do zarządzania systemami dostępnymi tylko w systemie Windows, na przykład nowoczesne aplikacje( na przykład Get-AppxPackage ).
Mimo to infrastruktura PowerShell działa doskonale na innych systemach operacyjnych, wiele poleceń cmdlet można wykorzystać w dowolnym miejscu, a obsługa jest coraz lepsza.
Czy chcesz coś dodać do wyjaśnienia? Dźwięk w komentarzach. Chcesz przeczytać więcej odpowiedzi od innych użytkowników Stack Exchange, którzy znają się na technologii? Sprawdź cały wątek dyskusji tutaj.
Image Kredyty: Jeff Hicks( Baza wiedzy IT Petri)