Home > Windows にまつわる e.t.c.

Windows 10 PowerShell と PowerShell on Linux の違い


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

 

 

back.gif (1980 バイト)

home.gif (1907 バイト)

Copyright © MURA All rights reserved.