デスクトップ上に必要なショートカットを自動生成する【Windows OS】Tech TIPS

オフィスで業務用PCを導入する場合、社員が共通して使用する業務アプリケーションやドキュメントなどへのショートカットを一律に設定しておきたいことがある。このような一連のショートカットを、WSHによってワンクリックでデスクトップ上に自動生成する方法を紹介する。

» 2004年06月05日 05時00分 公開
[山田祥寛]
「Tech TIPS」のインデックス

連載目次

デスクトップ上に必要なショートカットを自動生成する【Windows OS】

対象:Windows NT/Windows 2000/Windows XP、Windows Server 2003


業務アプリケーションなどのショートカットを複数PCへ一律に設定したい!

 オフィスにPCを導入する場合、部内の人間が共通して利用する業務アプリケーションやリソースなどへの「ショートカット」を設定しておきたいという要望は決して少なくない。

 オフィス内におけるPCの1人1台体制がかなり浸透してきたとはいえ、いまだに個々人のコンピュータリテラシーに格差があるのは否めない。個人のスキルによっては、アプリケーションの起動/終了すらもおぼつかないというケースもある。

 どのPCにも共通の環境(ショートカット)をあらかじめ用意しておくということは、こうしたスキルの人間もストレスなく業務に集中できる環境を提供するということである。また同時に、ユーザーの問い合わせに対するシステム管理者の負荷を軽減するということでもあるのだ。

 ただ、たかがショートカットの作成とはいえ、いちどきに何台、何十台もPCを導入、リプレース作業をするような現場では、決してバカにはならない。作業メモに沿って、複数台のPCに同一の環境を整えていくのは、単純なだけに間違いも引き起こしやすい作業であるし、何よりも煩雑である。

 そこで本Tech TIPSでは、Windows OS標準装備のスクリプト「WSH」(Windows Scripting Hosts)を利用して、あらかじめ用意された設定情報に従って、デスクトップ上にショートカットを作成するサンプルを紹介する。

 WSHそのものについては、連載「Windows管理者のためのWindows Script Host入門」を参照していただきたい。

手順1――テキストエディタでスクリプトのコードを入力する

 まずはテキストエディタ(メモ帳でも何でもよい)を開き、以下のコードを入力して[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のスクリプトファイル[shortcut.wsf]の内容
このサンプルファイルを実行するには、上述のZIPファイルをダウンロードし、そこから[shortcut.wsf]と[config.dat]というファイルを解凍する。このうち[config.dat]はC:ドライブのルートにコピーする。実行する前には、スクリプト(shortcut.wsf)中のデータファイルのフォルダ名をユーザーの環境に合わせて変更する必要がある。

 WSHの実行ファイルは拡張子「.wsf」(Windows Scripting host File)とする必要がある。ファイル名自体は何でもよい。ここでは[shortcut.wsf]という名前で保存しておく。

手順2――WSHのコードを実行する

 [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

データファイル[config.dat]の例
ファイルの各行には、タブ区切りテキスト形式で、「ショートカットのファイル名」「コメント」「リンク先のパス」「ホットキー」の4つを入力する。「コメント」と「ホットキー」は任意なので、省略してもよい。ただし、空のタブ文字は入力しておくこと。パス文字列中に空白文字が含まれる場合は、ダブルクオート記号(")で囲んでおく。このサンプルファイルは前出のZIPファイルに収録している。

 「ホットキー」とは、キーボードから該当のアプリケーションやファイルを起動/オープンするためのショートカットキーのことだ。この値は、作成したショートカットの[プロパティ]で[ショートカット]タブを開くと、[ショートカットキー]欄で確認できる。

 例えば上の場合では、[Ctrl]+[Alt]+[J]キーを押下することで「\\server1\prj\work\仕事分担表.xls」を起動できる。

 ホットキーとコメントはショートカットの作成では任意の情報なので、不要である場合には空文字列を指定すればよい。ただしタブ文字は省略できない。空の場合でもタブ文字だけは入力しておくこと。つまり各行には必ず3個のタブ文字が入ることになる。

●WSHファイルやデータファイルをファイルサーバ上に配置する

 以上の例では、ローカルのハードディスク上に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の例を応用すれば、例えば[スタート]メニュー上に関係する業務アプリケーションのメニューを登録したり、[スタートアップ]メニュー(ログオン時に自動的に実行されるプログラム)の設定を行うことも可能だろう。

 ただし、ショートカットの作成に当たっては、作成先のフォルダに対して、現在ログオンしているユーザーが書き込みの権限を持っている必要があるので、注意すること。

「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。