WindowsにCUIを求めるのは間違っているだろうか?(導入編)


はじまり

迷宮都市Microsoft──『Windows』と
通称される壮大なOSを保有する巨大都市。
未知という名の保守、輝かしい設定、
そして可愛いサーバーとのロマンス。
人の夢と欲望全てが息を潜めるこの場所で、
少年は一人の小さな「神様」に出会った。
「よし、〇〇君、付いてくるんだ!
【Windows Server】入団の儀式をやるぞ! 」
「はいっ! 僕は強くなります! 」
どの【OS】にも門前払いだった
サーバー運営志望の少年と、
CUIの神様が果たした運命の出会い。

記事の概要

茶番終了

Windows ServerはGUI操作を用いることができます。しかし、CUIでできないわけではない、そしてGUIでできないこともCUIではできる、といったことがあります。なので今回はCUIでいろいろなことをしていくのを記事にまとめていこうと思います。マウスをできるだけ使わないという制限をかけます(できるだけっていうのは検証が最後まで進んでいない為)

今回の検証ではWindows 10 pro上でhyper-Vを用いて仮想マシンを作成し、その中でWindows Server 2012 R2を動かしてます。インストールした物はDatacenter Server Coreです。

また、インストールは終了し、Administrators画面に入るところからスタートします。またこの記事では基本的にCUI操作をPowerShell上で行います。

コマンドプロンプトもしくはPowerShellの実行方法

Server Coreでは起動した際にこのような画面になっていると思います。

ここで×を押すとコマンドプロンプトが閉じ、デスクトップに何も表示されません。
そういった際はCtrl+Alt+Deleteでタスクマネージャを起動し、「ファイル」から「新しいタスクの実行」をすることでコマンドプロンプトを再度表示させることができます。

コマンドプロンプト上でpowershellと叩けばPowerShellに切り替わりますし、PowerShell上でcmdと叩けばコマンドプロンプトに切り替わります。

まぁ一応この画面もキーボードだけで操作できるので....

PCの諸設定(sconfig)

sconfigではPCの基本的な設定を行うことが可能な対話型のコマンドです

ドメイン変更/PC名変更/Windows Updateの手動自動切換え/Windows Update/リモートデスクトップ/ネットワーク/日付と時刻/ログオフ、再起動、シャットダウン

上記の設定はこのコマンドで設定可能です。

8)ネットワークの設定では下の画面のようにIPアドレスの設定(ネットワークマスクとデフォルトゲートウェイも設定可能)とDNSの設定が可能

それ以外も基本的にわかりやすいので説明は特になし、Sconfigでできることを覚えておけば困らないと思います。

ユーザー/グループ/コンピュータアカウント設定(netコマンド)

ここではWindows Serverにユーザやグループを追加したり、それらのアカウントの全般的な設定方法について説明します。使用するコマンドはnetコマンドです

ユーザーに関して(net user)

net userコマンドでPC上のユーザーの追加・削除・変更を行えます。

またnet userとだけ叩くことでユーザーの一覧を確認可能です。個別のユーザの詳細を確認するにはnet user <ユーザー名>とすれば確認可能です。

net help userで使用方法を見ることができます。もっと詳しい説明はそちらを見てください

ユーザーの追加

ユーザーの追加はnet user <ユーザー名> <パスワード> /addで追加可能です。
ユーザー名demo-user、パスワードOrang3で設定するには下のようにします

> net user demo-user Orang3 /add
コマンドは正常に終了しました

確認するとこのように

>net user

WIN-****の ユーザー アカウント

--------------------------------------
Administrator      demo-user   Guest

コマンドは正常に終了しました

ユーザー削除

ユーザの削除はnet user <ユーザー名> /deleteで削除可能です。
先ほど作成したdemo-userを削除します。

>net user demo-user /delete

コマンドは正常に終了しました

>net user

WIN-****の ユーザー アカウント

--------------------------------------
Administrator     Guest

コマンドは正常に終了しました

ユーザーのパスワード変更及びオプション追加

パスワード変更はユーザー追加の時から/addを減らせばよいです。
オプション追加ではnet user <ユーザー名> オプションでいけます

オプションには、主なものとして下記のようなものがあります

オプション書式 説明
\ACTIVE:{YES|NO} アカウントをアクティブ化、非アクティブ化します
\COMMENT:"" コメントを追加する
\LOGONPASSWORDCHG:{YES|NO} 次回ログオン時にパスワード変更を行うかどうかの設定
\PASSWORDCHG:{YES|NO} ユーザーが自身でパスワードを変更可能かの設定
\HOMEDIR:パス名 ユーザーのホームディレクトリを指定

GUIで設定可能な項目は当然オプションにあります。

消したdemo-userを作り直し、パスワードの変更を行いGuestのユーザーを非アクティブ化します。

>net user demo-user Appl3

コマンドは正常に終了しました

>net user Guest \active:NO

コマンドは正常に終了しました

ちなみにdemo-userですがhyper-VだとログインしようとするとRemoteの権限がないといってはじかれます。これは次のグループを追加してからログインする必要があります。なのでグループの説明をして最後にログインしようと思います

グループに関して(net localgroup)

グループはユーザの権限をまとめて管理するものです。例えばAdministratorsグループに所属しているユーザーはAdministratorsの権限を利用できます。グループは自由に作成できますし、すでに存在しているローカルグループに追加することもできます。

ローカルグループの一覧はユーザーの時と同様net localgroupでローカルグループの説明はnet localgroup <グループ名>

ローカルグループの追加、ローカルグループにユーザーを追加

ローカルグループの追加はnet localgroup <グループ名> /addで可能です

> net localgroup demo-group /add

コマンドは正常に終了しました

グループにユーザーを追加するにはnet localgropu <グループ名> <ユーザー名> /addとすればよいです。demo-groupdemo-userを追加するのは下記のようになります。ついでにログインできるように`Remote Desktop Users"も追加します。グループ名に空白がある場合はダブルクォーテーションで囲むとよいでしょう。

> net localgroup demo-group demo-user /add

コマンドは正常に終了しました

> net localgroup "Remote Desktop Users" demo-user /add

コマンドは正常に終了しました

ローカルグループからユーザーの削除、ローカルグループの削除

まずはローカルグループからユーザーの削除ですが、/addの時と同様にnet localgroup <グループ名> <ユーザー名> /deleteで削除できます。


>net localgroup demo-group demo-user /delete

コマンドは正常に終了しました

ローカルグループそのものの削除はnet localgroup <グループ名> /deleteで削除可能です。グループにユーザーが所属していてもグループだけを削除できます。


>net localgroup demo-group /delete

コマンドは正常に終了しました

ユーザーアカウント設定(net accounts)

net accountsコマンドではユーザーがパスワードを設定する際の最小文字数やパスワードの変更できるようになるまでの日時設定、ログオン制限等が可能です。

これは全ユーザーアカウントに対しての処理となるので注意です。

使い方はnet accounts オプションとなります。オプションを指定しない場合、パスワードとログオン制限、ドメイン情報の現在の設定が出力されます

オプション書式 説明
\MINPWLEN:長さ パスワードの最小文字数を設定、デフォルトは6
\MAXPWAGE:{日数|UNLIMITED} パスワードが有効な最大日数
\MINPWAGE:日数 パスワードが変更可能になる最小日数を指定する。0を指定するといつでも変更可能となる

このようなオプションがあります。

まとめ

  • ユーザーの作成にはnet userコマンドを使う
  • ローカルグループの作成にはnet localgroupコマンドを使う
  • アカウント全般の設定にはnet accountsコマンドを使う

これらのコマンドには/add/deleteだけでなく、/domainというドメインコントローラーに対する処理も可能ですがそれはActive Directoryにたどり着いたときに書くことにします。