Windows Server 2016 及び Semi AnnualのServer CoreのシェルをPowerShellにする

Windows Server 2016またはWindows Server Semi Annual ChannelのServer Core時のシェルはCMDですが、PowerShellにしたいところでした。

で、いろいろネットに載ってますが、とりあえず、レジストリのShellを変更すればいいとのこと。
HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon
のShellの値をPowerShell.exeに変更すればいいということですが、今後、Semi Annual Channelを導入していくと、1台づつ設定するのはめんどくさいので、GPOを使って設定します。

とりあえず、GPOを一つ作り、

GPEグループポリシーエディターでコンピューターの構成\基本設定\Windowsの設定\レジストリを右クリックして新規作成ーレジストリ項目をクリック。

Server Core PowerShell GPOレジストリ値を設定します。

GPM_WMIServer Coreを判別するためにWMIフィルターを使いました。
今回の設定はWindows Server 2016以降になります。2012 R2ではまた別のフィルターを設定します。

Server Core 2016WMIWMIフィルターを新規作成し、上記のようなクエリーを指定しました。
OperatingSystemSKUの値を判別していますが、これがまた曲者で・・・

  • Windows Server Semi Annual DataCenter ServerCore 145(17623で帰ってきた値)
  • Windows Server Semi Annual Standard ServerCore 146?(未確認)
  • Windows Server 2016 LTSB DataCenter ServerCore 147 (WMIドキュメントから確認)
  • Windows Server 2016 LTSB Standard ServerCore 148 (WMIドキュメントから確認)

となっているようで、とりあえず、上記4つに当てはまる場合抽出するよう記載しています。

GPM_WMIFilterグループポリシーの管理で、ServerCore用のポリシーのWMIフィルターに、上記のフィルターを設定します。

グループポリシーを適用して結果からクエリーを確認します。

とりあえず、こんな感じでやりましたが、2012 R2と一緒にやろうとすると、クエリを複雑にする必要があって、別々

にポリシー作った方が早いかもと思ってしまいます。

Windows Server SemiAnnual_17623やっぱり、ログイン後はPowerShellのほうがらくちんですね。

コメントを書く

Month List