オフィスで業務用PCを導入する場合、社員が共通して使用する業務アプリケーションやドキュメントなどへのショートカットを一律に設定しておきたいことがある。このような一連のショートカットを、WSHによってワンクリックでデスクトップ上に自動生成する方法を紹介する。
対象:Windows NT/Windows 2000/Windows XP、Windows Server 2003
オフィスにPCを導入する場合、部内の人間が共通して利用する業務アプリケーションやリソースなどへの「ショートカット」を設定しておきたいという要望は決して少なくない。
オフィス内におけるPCの1人1台体制がかなり浸透してきたとはいえ、いまだに個々人のコンピュータリテラシーに格差があるのは否めない。個人のスキルによっては、アプリケーションの起動/終了すらもおぼつかないというケースもある。
どのPCにも共通の環境(ショートカット)をあらかじめ用意しておくということは、こうしたスキルの人間もストレスなく業務に集中できる環境を提供するということである。また同時に、ユーザーの問い合わせに対するシステム管理者の負荷を軽減するということでもあるのだ。
ただ、たかがショートカットの作成とはいえ、いちどきに何台、何十台もPCを導入、リプレース作業をするような現場では、決してバカにはならない。作業メモに沿って、複数台のPCに同一の環境を整えていくのは、単純なだけに間違いも引き起こしやすい作業であるし、何よりも煩雑である。
そこで本Tech TIPSでは、Windows OS標準装備のスクリプト「WSH」(Windows Scripting Hosts)を利用して、あらかじめ用意された設定情報に従って、デスクトップ上にショートカットを作成するサンプルを紹介する。
WSHそのものについては、連載「Windows管理者のためのWindows Script Host入門」を参照していただきたい。
まずはテキストエディタ(メモ帳でも何でもよい)を開き、以下のコードを入力して[shortcut.wsf]というファイルを作成してほしい。ただし引用符(')で始まる行はコードの意味を解説するためのコメント部分なので、省略してもよい。
<?xml version="1.0" encoding="Shift_JIS" standalone="yes" ?>
<package>
<job id="shortcut">
<?job error="true" debug="true" ?>
<object id="objFs" progid="Scripting.FileSystemObject" />
<script language="VBScript">
<![CDATA[
' ショートカットの情報を記述した設定ファイルの格納場所
' 設定ファイルのパスについては、各自の環境に合わせて変更する必要がある
Const CONFIG="C:\config.dat"
Set objTs=objFs.OpenTextFile(CONFIG,1,False)
' config.datの情報に基づいて、ショートカットを作成する
' config.datにはタブ区切りテキスト形式で、ショートカットのファイル名、コメント、リンク先のパス、ホットキーが定義されているものとする。
Do While Not objTs.AtEndOfStream
aryDat=Split(objTs.readLine,Chr(9))
Set objShl=WScript.CreateObject("WScript.Shell")
Set objCut=objShl.CreateShortcut(objFs.BuildPath(objShl.SpecialFolders("Desktop"),aryDat(0) & ".lnk")) ' デスクトップ上にショートカットを作成
objCut.Description=aryDat(1) ' コメント
objCut.TargetPath=aryDat(2) ' リンク先のパス
objCut.Hotkey=aryDat(3) ' ホットキー(Alt+、Ctrl+、Shift+、Ext+)
' 作業フォルダ(My Documents)
objCut.WorkingDirectory=objShl.SpecialFolders("MyDocuments")
objCut.Save ' 生成したショートカットを保存
Loop
objTs.Close
]]>
</script>
</job>
</package>
WSHの実行ファイルは拡張子「.wsf」(Windows Scripting host File)とする必要がある。ファイル名自体は何でもよい。ここでは[shortcut.wsf]という名前で保存しておく。
[shortcut.wsf]を実行するには、エクスプローラなどから[shortcut.wsf]をダブルクリックするだけでよい。その際、あらかじめスクリプト中の定数「CONFIG」で指定された設定ファイル(デフォルトでは[c:\config.dat])や、設定ファイル内で指定された一連のファイルが実際に存在することを確認しておいてほしい。
実行後、デスクトップ上に指定したファイルへのショートカットが作成されていれば成功である(ユーザーごとに、最初に1回これを実行すればよい)。
[config.dat]の例としては、例えば次のようなものを用意し、これを[c:\config.dat]として保存しておく。ここではExcelファイルへのショートカットと、画面キャプチャ用アプリケーションへのショートカットを作成させている。
仕事分担 仕事割り振り分担表 "\\server1\prj\work\仕事分担表.xls" Ctrl+Alt+J
キャプチャリング 画面キャプチャ用アプリケーション "C:\Program Files\capture\CAPT_ST.EXE" Ctrl+Alt+C
「ホットキー」とは、キーボードから該当のアプリケーションやファイルを起動/オープンするためのショートカットキーのことだ。この値は、作成したショートカットの[プロパティ]で[ショートカット]タブを開くと、[ショートカットキー]欄で確認できる。
例えば上の場合では、[Ctrl]+[Alt]+[J]キーを押下することで「\\server1\prj\work\仕事分担表.xls」を起動できる。
ホットキーとコメントはショートカットの作成では任意の情報なので、不要である場合には空文字列を指定すればよい。ただしタブ文字は省略できない。空の場合でもタブ文字だけは入力しておくこと。つまり各行には必ず3個のタブ文字が入ることになる。
以上の例では、ローカルのハードディスク上にWSHスクリプトファイルやデータファイルを作成している。必要ならばこれらをファイルサーバ上に用意し、直接実行することも可能である。
その場合は、まずスクリプト中の「Const CONFIG="C:\config.dat"」という部分を、例えば「Const CONFIG="\\server1\prj\config.dat"」などと変更する。その上で、[shortcut.wsf][config.dat]の各ファイルを[\\server1\prj]フォルダ中に配置する。後は[\\server1\prj\shortcut.wsf]を実行すればよい。
これならば、各PCにログオンした後、このスクリプトを最初に1回実行するだけで、必要なショートカットが作成される。ログオン時に必要な共有フォルダへの設定を行う方法は、Tech TIPS「WSHでログオン時に共有フォルダを設定する」を参照していただきたい。
以上の例では「WshShell.SpecialFolders」メソッドを介して、デスクトップ("Desktop")へのパスを取得している。他にも以下のような特殊フォルダのパスを取得できる。
指定可能な特殊フォルダ | 意味 |
---|---|
AllUsersDesktop | 全ユーザーのデスクトップ |
AllUsersStartMenu | 全ユーザーの[スタート]メニュー |
AllUsersPrograms | 全ユーザーのプログラムフォルダ |
AllUsersStartup | 全ユーザーの[スタートアップ]メニュー |
Desktop | デスクトップ |
Favorites | [お気に入り]フォルダ |
Fonts | フォントフォルダ |
MyDocuments | [マイ ドキュメント]フォルダ |
NetHood | [マイ ネットワーク]フォルダ |
PrintHood | プリンタフォルダ |
Programs | プログラムフォルダ |
Recent | [最近使ったファイル]フォルダ |
SendTo | [送る]フォルダ |
StartMenu | [スタート]メニュー |
Startup | [スタートアップ]メニュー |
Templates | テンプレートフォルダ |
「WshShell.SpecialFolders」メソッドで指定可能な特殊フォルダ |
本Tech TIPSの例を応用すれば、例えば[スタート]メニュー上に関係する業務アプリケーションのメニューを登録したり、[スタートアップ]メニュー(ログオン時に自動的に実行されるプログラム)の設定を行うことも可能だろう。
ただし、ショートカットの作成に当たっては、作成先のフォルダに対して、現在ログオンしているユーザーが書き込みの権限を持っている必要があるので、注意すること。
■この記事と関連性の高い別の記事
Copyright© Digital Advantage Corp. All Rights Reserved.