/ / Чи працює PowerShell в інших операційних системах, крім Windows?

Чи працює PowerShell в інших операційних системах, крім Windows?

Це може бути дуже неприємно, коли ваш професорговорить, що одне про PowerShell та різних веб-сайтах, здається, пропонує суцільне підтвердження протилежного. Чи працює PowerShell насправді в системах, що не є Windows? Сьогоднішній запит SuperUser Q&A містить відповідь на спантеличений запитання читача.

Сьогоднішня сесія "Питання та відповіді" приходить до нас з люб'язності SuperUser - підрозділу Stack Exchange, групування веб-сайтів Q&A, керованого громадою.

Питання

Читач SuperUser FredSavage187 хоче знати, чи працює PowerShell в інших операційних системах, крім Windows:

Нещодавно мій професор інформатики дав намвікторина, і одним із запитань було: "Істинно чи помилково: PowerShell працює в Windows, Mac та Linux". Правильна відповідь була "помилковою", і він стверджує, що PowerShell - це лише річ для Windows. Але я знайшов пару веб-сайтів, які говорять інакше:

PowerShell з відкритим джерелом і доступний у Linux [Блог Microsoft Azure]

Репозиторій PowerShell [GitHub]

Який насправді правильний? Чи працює PowerShell на Linux та Mac OS, а також Windows?

Чи працює PowerShell в інших операційних системах, крім Windows?

Відповідь

Вкладник SuperUser Ben N має відповідь для нас:

Так. Значна частина PowerShell є.NET, тому він може працювати в будь-якій операційній системі, яка має загальну мову виконання (CLR). У Windows - це .NET Framework. Для інших операційних систем, включаючи Linux, ви можете використовувати CoreCLR, кросплатформенну підмножину платформи .NET Framework з відкритим кодом.

Як ви дізналися у сховищі PowerShell на GitHub, підтримується досить багато операційних систем та дистрибутивів. Наприклад, ось інструкції щодо Ubuntu та демонстрації:

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

Хоча інфраструктура PowerShell прекрасно працює в інших операційних системах, велика кількість командлетів може бути використана в будь-якому місці, і підтримка лише покращується.


Щось додати до пояснення? Звучить у коментарях. Хочете прочитати більше відповідей від інших користувачів, які користуються технологією Stack Exchange? Ознайомтесь із повною темою дискусії тут.

Іміджеві кредити: Джефф Хікс (база знань про Петрі ІТ)