Windows NT を研究室で共有使用
するときに起こる問題についてのメモ

最終更新 1998.11.22

Windows NT 4.0 Workstation を Pragma Systems の InterAccess TelnetD を使用して研究室の計算機として共有使用していたときに作成したメモです。


プロセス関係

コマンドラインからプロセスを監視・管理 [1998/10/28]

Windows NT リソースキット中に、 UNIX のプロセス監視・管理コマンド (ps, kill, top 等) と似たようなものがあります。 それぞれのコマンドの詳しい解説は Windows NT のヘルプを見て下さい (「スタートメニュー」→「ヘルプ」→「キーワード」→コマンド名を入力、 が早い)。 また、コマンドの後に /? というオプションを付けると 簡単な説明が出るコマンドもあります(基本)。
PMON.EXE
プロセス統計情報、CPU、メモリ使用状況をとることができます。 タスクマネージャの「プロセス」の部分の、コマンドライン版といえます。 Q を押すとストップします。 そのほかのキーを押すと画面を更新します。 telnet 経由で使うときには WRAP PMON.EXE としないとうまく動作しません。
PULIST.EXE
PID (Process ID)、プロセス、それを動かしているユーザを表示する (ユーザの権利によっては全てのプロセスに対して ユーザが表示されるとは限らない)。 リモートマシン上のプロセスも表示できる (ただし、ユーザ情報は得られない)。
TLIST.EXE
現在実行中のタスクおよびプロセスの一覧を表示する。 タスクに関してはウィンドウタイトルも表示される。
KILL.EXE
タスクやプロセスを終了させる。文法は
         kill [/f] { process_id | pattern }
である。 スイッチ /f は強制終了。 プロセス ID だけでなく、pattern でプロセスの完全名 あるいはワイルドカードを含むパターンを指定できる。
PERFMTR.EXE
タスクマネージャーのコマンドライン版らしい。 CPU 使用率、キャッシュファイル使用状況等が分かる。 (何だか使いにくい。)
だいたい PULIST.EXE, TLIST.EXE を使って UNIX の ps と同じようなことができ、 PMON.EXEPERFMTR.EXE を使って top あるいは uptime と同じようなことができ、 KILL.EXE を使って kill と同じようなことができると いったところでしょうか。

InterAccess TelnetD で、現在誰がログインしているのかコマンドラインから知りたい。

TelnetD 付属の TELMC.EXE というコマンドがあります。 管理者(Administrators)グループに入っているユーザしかちゃんと実行できません (任意のログインしているユーザを切断できたりするため)。 単に UNIX の who コマンドと同じことをしたいだけなら
TELMC.EXE /who
でOKです。詳しい使用法は TELMC.EXE /? とすれば出ます。

コマンドプロンプトで UNIX のシェルのように TAB で コマンドやファイル名の補完をしたい。

レジストリを変更する必要があります。 レジストリを変更するときには絶対に間違えないよう注意して下さい。

レジストリエディタを開いて (「スタートメニュー」→「ファイル名を指定して実行」→ "regedit" と入力)、その中の DWORD
  • HKEY_CURRENT_USER
  • Software
  • Microsoft
  • Command Processor
  • CompletionChar
  • の値を "9" にしてください(デフォルトでは 0 になっているはず)。 "9" は TAB キーのコードです。

    何だかちょっと変な補完ですが、無いよりずっとましです。

    コマンドプロンプトでネットワーク上のディレクトリに cd したい。

    コマンドプロンプトではネットワーク上のディレクトリを UNC 名 (\\servername\sharename のような形式) で指定して cd することはできません。 そのためには、共有フォルダにドライブ名を割り当てなければなりません。 一時的に共有フォルダに cd したいだけなら pushd コマンドが便利です。
             pushd \\servername\sharename\some\dir\name
    とすれば \\servername\sharename に 空いているドライブネームを一時的に割り当てた上で、 指定フォルダに cd します。
             popd
    でドライブネームを解放し、 初めにいたフォルダに戻ります。

    pushd, popd コマンドは基本的には UNIX の 同名コマンドと同じです。ただ、ディレクトリスタックを見るときには dirs コマンドではなく、 引数無しの pushd コマンドを使います。

    ちなみに、Mule for Win32 および Meadow では UNC 名を使って cd (chdir "pathname") できます。

    リモートの NT マシンのパスワードを変更したい。

    パスワード変更のウィンドウに「ドメイン」という欄がありますから、 そこにマシン名を入力してやれば変更できます (ドメインに参加していない Windows NT はマシン名がドメイン名と して扱われるということです)。

    ちなみに UNIX 上の Samba suite のコマンド smbpasswd でも、 リモートの NT マシンのパスワードを変更できます (ただし Samba が暗号化パスワードに対応している必要があります)。

    リンク

    Pragma Systems
    Windows NT、特にリソースキット(「リソキ」)に関して