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

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

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

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

    Питання

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

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

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

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

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

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

    Відповідь

    Співробітник суперкористувача Ben N має відповідь для нас:

    Так. Велика частина PowerShell є .NET, тому вона може працювати на будь-якій операційній системі, яка має Common Language Runtime (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? Перегляньте повний потік обговорення тут.

    Зображення: Джефф Хікс (Petri IT Knowledgebase)