Windows TIPS
[Management]
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=<SYSTEM>\TEMP
InstallDate=
Name=TEMP
Status=OK
SystemVariable=TRUE
UserName=<SYSTEM>
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つ以上のページ・ファイルがある場合は、ファイル名が一致するファイルの情報だけが更新される。
この記事と関連性の高い別のWindows TIPS
generated by
TechTargetジャパン
Windows Server Insider フォーラム 新着記事
キャリアアップ
**先週の人気講座ランキング**
〜 Android編 〜