Це може бути дуже неприємно, коли ваш професорговорить, що одне про 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? Ознайомтесь із повною темою дискусії тут.
Іміджеві кредити: Джефф Хікс (база знань про Петрі ІТ)