If-Koubou

PowerShell работи ли на други операционни системи, освен Windows?

PowerShell работи ли на други операционни системи, освен Windows? (Как да)

Това може да бъде много разочароващо, когато вашият професор казва, че едно нещо относно PowerShell и различни уебсайтове изглежда предлагат солидно доказателство за противното. Дали PowerShell действително работи върху не-Windows системи или не? Днешната публикация на SuperUser Q & A е отговорът на озадачен въпрос на читателя.

Днешната сесия за въпроси и отговори ни идва с любезното съдействие на SuperUser - подразделение на Stack Exchange - обединяване на уеб сайтове с въпроси и отговори.

Въпроса

Reader на SuperUser FredSavage187 иска да знае дали PowerShell работи на други операционни системи освен Windows:

Професорът ми по компютърни науки наскоро ни даде тест и един от въпросите беше "Вярно или невярно: PowerShell работи на Windows, Mac и Linux". Правилният отговор беше "фалшив" и той твърди, че PowerShell е нещо само за Windows. Но намерих няколко уебсайта, които казват друго:

PowerShell е отворен и е достъпен на Linux [Microsoft Azure Blog]

PowerShell Repository [GitHub]

Кое всъщност е вярно? Дали PowerShell работи върху Linux и Mac OS, както и Windows?

Дали PowerShell работи върху други операционни системи освен Windows?

Отговорът

Сътрудникът на SuperUser Бен Н има отговор за нас:

Да. Голяма част от PowerShell е .NET, така че може да работи на всяка операционна система, която има общ езиков цикъл (CLR). На Windows, това е .NET Framework. За други операционни системи, включително Linux, можете да използвате CoreCLR, подмножество от отворен код, междуплатформена платформа на .NET Framework.

Както научихте в хранилището PowerShell на GitHub, поддържат се няколко операционни системи и дистрибуции. Например, тук са инструкциите за Ubuntu и демонстрация:

Може да се твърди, че не всички PowerShell са налични в среда, различна от Windows, тъй като някои функции зависят от библиотеките, намиращи се само в Windows. Най- ParsedHtml собственост върху HtmlWebResponseObject тип, върнат от Invoke-WebRequest, например, е полезна само за Windows, защото съдържа COM обект, който идва от несъздадена библиотека, mshtml.dll да бъдете конкретни. На други платформи няма нищо. Разбира се, има и команди за управление на системи, намиращи се само в Windows, като модерни приложения (Get-AppxPackage, например).

И все пак инфраструктурата на PowerShell работи перфектно на други операционни системи, много от командите могат да се използват навсякъде и подкрепата става все по-добра.

Имате ли нещо, което да добавите към обяснението? Звучи в коментарите. Искате ли да прочетете повече отговори от други потребители на Stack Exchange? Вижте цялата тема на дискусията тук.

Кредити за изображения: Джеф Хикс (Petri IT Knowledgebase)