Windows TIPS
[Scripting] |
WSHでログオン時に共有フォルダを設定する
|
 |
■ |
複数のユーザーでコンピュータを共有していると、ログオンするユーザーによって異なる共有フォルダに接続したいというケースがある。 |
■ |
WSHとタスク・スケジューラを組み合わせると、ログオン時に自動的に共有フォルダの設定を行うことができる。 |
|
|
現在のオフィスでは、パーソナル・コンピュータの1人1台体制がかなり浸透してきたとはいえ、まだまだ複数のユーザーでコンピュータを共有して使っているというケースは少なくないだろう。
このような環境において、各ユーザー間で異なる共有フォルダを使い分けていたとしたらどうだろう。ファイル・サーバ上の共有フォルダのほかに、ユーザーごとの個人フォルダを設けるのはよく行われることである。しかし、そのたびにいちいち共有フォルダに接続し直しているのでは使い勝手も悪い。そこで、ログオン時にユーザーを判断して、自動的に共有フォルダを設定できたら、便利ではないだろうか。
本TIPSではWSH(Windows Scripting Host)とWindows標準のタスク・スケジューラを利用して、ログオン時に必要な共有フォルダへの接続を確立する仕組みを紹介する。
手順1―テキスト・エディタでスクリプトのコードを入力する
まずはテキスト・エディタ(メモ帳でも何でもよい)を開き、以下のコードを入力してほしい。なお、引用符(')で始まる行はコードの意味を解説するためのコメント部分なので、省略してもよい。
<?xml version="1.0" encoding="Shift_JIS" standalone="yes" ?>
<package>
<job id="netFld">
<?job error="true" debug="true" ?>
<script language="VBScript">
<![CDATA[
Set objNet=CreateObject("WScript.Network")
If objNet.UserName<>"Administrator" Then
objNet.MapNetworkDrive "x:","\\ xpsd300 \" & objNet.UserName
Else
objNet.MapNetworkDrive "x:","\\xpsd300\admin"
End If
' WScript.NetworkオブジェクトのUserNameプロパティは、現在のネットワークログオン名を返す。また、MapNetworkDriveメソッドはネットワーク・ドライブの定義を行うものである。
' つまり、ここではX:ドライブに共有名「\\xpsd300\ユーザ名」を割り当てている。ただし、ログオンユーザがAdministrator(管理者)であった場合には、「\\xpsd300\admin」に接続する。
]]>
</script>
</job>
</package>
|
- サンプル・ファイルのダウンロード
(注:サンプルnetuse.wsfをダウンロードするには、上のリンクを右クリックして、netuse.wsfというファイル名で保存する。ただし赤字で示したドライブ名やサーバ名の部分は環境に応じて変更する必要がある)
WSHの実行ファイルは拡張子「.wsf」(Windows Scripting host File)とする必要がある。ファイル名自体は何でもよいが、ここでは「netuse.wsf」という名前で、ローカルPC上の適当なフォルダ中に保存しておく。なお、スクリプト中のサーバ名やマップするドライブ名(例では「X:」としている)などは、環境に応じて変更していただきたい。
手順2―タスク・スケジューラを設定する
タスク・スケジューラ設定の詳細については、「TIPS―タスクスケジューラとWSHでバッチ処理を実現する」を参照してほしい。ほとんどの項目は前述したTIPSの設定から変更はないが、ただ1点、タスクの実行時間を選択するダイアログでは「ログオン時」を選択する必要がある。
 |
タスクの実行時間の設定 |
「ログオン時」を選択すると、ユーザーがログオンした時点で実行される。 |
|
 |
これを選択する。 |
|
以上で設定は完了である。あとは適当なファイル・サーバ上にスクリプト中で指定されている共有名を設定し(もちろん、共有フォルダに対して該当するユーザーがアクセスできるように、適切なアクセス権を設定しておく必要がある)、適当なユーザーで再ログオンするだけだ。ログオン後、エクスプローラからX:ドライブに接続されていることが確認する。
なお、本稿では共有フォルダの設定のみを行ったが、WshNetworkオブジェクトの各メソッドを利用することで、共有フォルダの切断や共有プリンタの設定/解除もWSHから設定することが可能である。以下にWshNetworkオブジェクトの主要なメソッドを一覧で紹介しておく。
メソッド名 |
概要 |
AddWindowsPrinterConnection(プリンタへのパス[,ドライブ名[,プリンタポート]]) |
プリンタへの接続。必要ならばプリンタ・ドライバのインストールも行われる(Windows 9x/Meでは行われない) |
RemoveNetworkDrive(ドライブ名) |
ネットワーク・ドライブ接続の解除 |
RemovePrinterConnection(プリンタへのパス) |
プリンタ接続の解除 |
SetDefaultPrinter(プリンタへのパス) |
デフォルト・プリンタの設定 |
 |
WshNetworkオブジェクトのメソッド |
これらのメソッドを使い、プリンタへの接続や解除などを行うことができる。なお「ドライブ名」「プリンタ・ポート」はWindows NT/Windows 2000では無視される。 |
本TIPSは、単にPCを共有している場合だけでなく、同一の設定を複数のPCに対して行いたいという場合にも便利である。オフィスで数多くのPCの設定に苦労している管理者は参考にしていただきたい。
Windows Server Insider フォーラム 新着記事