Windows TIPS
[Management]
  Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

wmicコマンドでシステムの構成を設定/変更する

解説をスキップして操作方法を読む

デジタルアドバンテージ 打越 浩幸
2008/05/02
対象OS
Windows 2000
Windows XP
Windows Vista
Windows Server 2003
WMIとwmicコマンドを利用すると、システムに関するさまざまな情報を取得したり、操作したりできる。
wmicコマンドでsetメソッドを利用すると、システムの構成を変更したり、値を設定したりできる。
setで指定できるパラメータの一覧は、「wmic 〜 set /?」で確認できる。

解説

 TIPS「WMIとwmicコマンドを使ってシステムを管理する(基本編)」と「wmicコマンドでイベント・ログを表示する」では、WMI(Windows Management Instrumentation)の基本的な使い方やイベント・ログの表示方法について紹介した。

 wmicでgetメソッドを利用すると、システムの状態を表す各種の値などを取得できるが、逆にsetメソッドを使うと、システムの各種の設定を行うことができる。環境変数の値をセットするといった単純なものだけでなく、ページ・ファイルの設定を変更するといった、通常ならば[マイコンピュータ]の[プロパティ]ダイアログで行うような操作も行える。WMIによるシステムの設定管理作業は、GUIベースのWindows OSではあまり使うことはないだろうが、例えばWindows Server 2008のServer Coreを管理するためには必要となる手法である(Server CoreではGUIでの管理作業がほとんどできなくなっているため。別稿の「Windows Server 2008の基礎知識―シンプルなOSの追求とServer Core」も参照のこと)。本TIPSでは、wmicのsetメソッドを使う方法を紹介する。

操作方法

wmicで環境変数の値をセットする

 wmicで環境変数の値を取得したり、設定したりするには、environmentコマンド(エイリアス)を利用する。まずは「wmic environment」で変数の一覧を表示させてみよう(以下の例ではwmicをコマンド・プロンプト上から直接起動しているが、まずwmicを起動してから、「environment list brief」のように入力して、インタラクティブに使うこともできる)。

C:\>wmic environment list brief ……環境変数の表示
Name                    UserName  VariableValue
ComSpec                 <SYSTEM>  %SystemRoot%\system32\cmd.exe
DISPLAY                 <SYSTEM>  localhost:0.0
EDITOR                  <SYSTEM>  vi
FP_NO_HOST_CHECK        <SYSTEM>  NO
……(以下省略)……

 ここでは全部の変数を取得しているが(list briefなどの意味については前出のTIPS参照)、特定の変数の値だけに注目するには、次のようにwhere句を指定する。

C:\>wmic environment where "(name='TEMP')" list full ……TEMP環境変数の表示

Description=&lt;SYSTEM&gt;\TEMP
InstallDate=
Name=TEMP
Status=OK
SystemVariable=TRUE
UserName=&lt;SYSTEM&gt;
VariableValue=C:\TMP

Description=NT AUTHORITY\SYSTEM\TEMP
InstallDate=
Name=TEMP
Status=OK
SystemVariable=FALSE
UserName=NT AUTHORITY\SYSTEM
VariableValue=%USERPROFILE%\Local Settings\Temp
……(以下省略)……

 結果が複数あるのは、システム環境変数と、ユーザー・プロファイルごとの変数の両方が含まれているからである。

 環境変数の値を変更するには、各変数のプロパティのうち、NameとVariableValueを指定してsetメソッドを実行すればよい。setでどのプロパティを書き換えるべきかは、「wmic 〜 set /?」「wmic 〜 set /?:full」などで表示される。

C:\>wmic environment where "(name='TEMP')" set name='TEMP', variablevalue='D:\TEMP'  ……TEMP変数の値を更新する
'\\PC01\ROOT\CIMV2:Win32_Environment.Name="TEMP",UserName="NT AUTHORITY\\SYSTEM"' のプロパティを更新しています
プロパティは正しく更新されました。
'\\PC01\ROOT\CIMV2:Win32_Environment.Name="TEMP",UserName="NT AUTHORITY\\LOCAL SERVICE"' のプロパティを更新しています
プロパティは正しく更新されました。
'\\PC01\ROOT\CIMV2:Win32_Environment.Name="TEMP",UserName="NT AUTHORITY\\NETWORK SERVICE"' のプロパティを更新していま

プロパティは正しく更新されました。

 ここでは、複数の場所にあるすべてのTEMP環境変数の値が更新しているが、特定のTEMP環境変数だけを更新したければ、createのパラメータとして、例えば「username='<SYSTEM>'」を追加して、対象を限定すればよい(username中で「\」を使う場合は「\\」とすること)。

 なおsetしようとしている変数が存在しない場合はエラーになるので、最初にcreateで作成しておく必要がある(ユーザー名として<SYSTEM>を指定するとシステムの環境変数として、<DEFAULT>とするとデフォルトのユーザー環境変数としてそれぞれセットされる。詳細は「wmic environment create /?:full」を参照)。

C:\>wmic environment create name="MYVAR", username="<SYSTEM>", variablevalue="MYVALUE" ……ヘルプの表示
インスタンスは正しく作成されました。

wmicでページ・ファイルを作成する

 wmicを使ったシステムの設定例として、もう1つページ・ファイル(仮想記憶ファイル)のサイズの変更例を取り上げる。このためには、pagefilesetコマンド(エイリアス)を利用する。まず現在の設定状況を見てみよう。

C:\>wmic pagefileset list full ……現在の設定の表示

Description='pagefile.sys' @ C:\
InitialSize=512
MaximumSize=512
Name=C:\pagefile.sys
SettingID=pagefile.sys @ C:

 ページ・ファイルのサイズを変更するには、初期サイズと最大サイズ、ページ・ファイル名の3つを指定して、setメソッドを呼び出す。

C:\>wmic pagefileset set initialsize=768, maximumsize=768, name="C:\pagefile.sys" ……サイズを768Mbytesに拡大してみる
'\\PC01\ROOT\CIMV2:Win32_PageFileSetting.Name="C:\\pagefile.sys"' のプロパティを更新しています
プロパティは正しく更新されました。

 ここで指定するページ・ファイルはすでに存在している必要がある。2つ以上のページ・ファイルがある場合は、ファイル名が一致するファイルの情報だけが更新される。End of Article

この記事と関連性の高い別の記事

このリストは、デジタルアドバンテージが開発した自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。

generated byJigsaw
「Windows TIPS」


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間