2016/08/31 現在の Windows 10 1607(x64 Enterprise)と、Linux(CentOS
7)での PowerShell の違いをざっくりまとめました。
(まだ使い込んでいないので、さわりだけ)
Windows 10 1607 | Linux | TP5 NanoServer (参考) |
備考 | |
バージョン | 5.1.14393.82 | 6.0.0-alpha | 5.1.14284.1000 | |
TAB 補完 | 〇 | 〇 | 〇 | |
リダイレクト | 〇 | 〇 | 〇 | |
標準コマンドレット数 | 1,511 | 346 | 853 | |
変数の大文字小文字区別 | しない | 一部する | しない | $env: とか Linux が大文字/小文字を区別しているもの 変数名とかコマンドレット名は区別なし |
Get-Member | 〇 | 〇 | 〇 | |
Get-Command | 〇 | 〇 | 〇 | |
Get-Help | 〇 | △ | 〇 | -Online 使えない |
PowerShell ISE | 〇 | × | 〇 | |
外部コマンド実行 | 〇 | 〇 | 〇 | |
.NET Framework | 〇(.NET 4.6) | 〇(.NET Core) | 〇(.NET Core) | New-Object ではなく []::new とか []::Create が主流? |
リモーティング | 〇 | × | ? | Invoke-Command 等は 6.0.0-alpha では機能しない(既知の問題) (Over ssh は出来るらしい 山市良のえぬなんとかわーるど: メモ: PowerShell v6.0.0-alpha.9 on Linux and Windows (enjoy cross PSRemoting)) |
レジストリ | 〇 | × | 〇 | Linux にレジストリはない |
WMI | 〇 | × | ? | Linux に WMI はない |
コマンドレット数を見るとわかるのですが、サポートされていないコマンドレットが相当数あるので、それを注意すれば、Nano Server と同様に 普通に PowerShell が使えます。
Get-Member、Get-Command、Get-Help が使えるので、困った時でも PowerShell 流の対応が可能なのが嬉しいです。
ただし、.NET Framework を直接ハンドリングしている場合は、少し作法が違うので(互換性はあり)、.NET Core を意識した書き方にする必要があります。
PowerShell on CentOS 7 on Hyper-V
http://www.vwnet.jp/Windows/PowerShell/2016082801/PowerShellonCentOS7.htm
Copyright © MURA All rights reserved.