Windows TIPS
[Scripting]
  Windows TIPS TOPへ
Windows TIPS全リストへ

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

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

山田 祥寛
2004/06/05
 
対象OS
Windows NT
Windows 2000
Windows XP
Windows Server 2003
オフィスで業務用PCを導入する場合、社員が共通して使用する業務アプリケーションやドキュメントなどへのショートカットを一律に設定しておきたいことがある。
WSHを用いれば、ショートカットの生成に必要な情報をあらかじめ用意しておくだけで、ワンクリックで一連のショートカットを作成することができる。
 
解説

 オフィスにPCを導入する場合、部内の人間が共通して利用する業務アプリケーションやリソースなどへのショートカットを設定しておきたいという要望は決して少なくない。オフィス内におけるPCの1人1台体制がかなり浸透してきたとはいえ、いまだに個々人のコンピュータ・リテラシーに格差があるのは否めない。個人のスキルによっては、アプリケーションの起動・終了すらもおぼつかないというケースもある。どのPCにも共通の環境(ショートカット)をあらかじめ用意しておくということは、こうしたスキルの人間もストレスなく業務に集中できる環境を提供するということであり、同時に、ユーザーの問い合わせに対するシステム管理者の負荷を軽減するということでもあるのだ。

Windows Script Host入門
WSH基礎講座

 ただ、たかがショートカットの作成とはいえ、いちどきに何台、何十台もPCを導入、リプレース作業をするような現場では、決してバカにはならない。作業メモに沿って、複数台のPCに同一の環境を整えていくのは、単純なだけに間違いも引き起こしやすい作業であるし、何よりも煩雑である。そこで本稿では、WSH(Windows Scripting Hosts)を利用して、あらかじめ用意された設定情報に従って、デスクトップ上にショートカットを作成するサンプルを紹介する。


操作方法

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

 まずはテキスト・エディタ(メモ帳でも何でもよい)を開き、以下のコードを入力してshortcut.wsfというファイルを作成してほしい。ただし引用符(')で始まる行はコードの意味を解説するためのコメント部分なので、省略してもよい。

※ファイル名: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>
  • サンプル・ファイルのダウンロード
    注:サンプルshortcut.wsfを実行するには、上のサンプル・ファイルを右クリックしてshortcut.wsfというファイル名で保存し、さらにC:ドライブのルートにデータ・ファイルを\config.datというファイル名で保存する。実行する前には、スクリプト中のデータ・ファイルのフォルダ名をユーザーの環境に合わせて変更する必要がある。)

 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ファイルへのショートカットと、画面キャプチャ用アプリケーションへのショートカットを作成させている。

※ファイル名:c:\config.dat(ファイル名はshortcut.wsf中の設定に合わせること)

仕事分担 仕事割り振り分担表 "\\server1\prj\work\仕事分担表.xls" Ctrl+Alt+J
キャプチャリング 画面キャプチャ用アプリケーション "C:\Program Files\capture\CAPT_ST.EXE" Ctrl+Alt+C
  • サンプル・ファイルのダウンロード
    注:shortcut.wsfサンプルを実行するには、上のリンクを右クリックしてc:\config.datとして保存しておくこと。ファイルの各行には、タブ区切りテキスト形式で、「ショートカットのファイル名」「コメント」「リンク先のパス」「ホット・キー」の4つを入力する。「コメント」と「ホット・キー」は任意なので、省略してもよいが、空のタブ文字は入力しておくこと。パス文字列中に空白文字が含まれる場合は、(")記号で囲んでおく。)

 ホット・キーとは、キーボードから該当のアプリケーションやファイルを起動・オープンするためのショートカット・キーのことだ(この値は、作成したショートカットの[プロパティ]で[ショートカット]タブを開くと、[ショートカットキー]の所で確認できる)。例えば上の場合では、[Ctrl]+[Alt]+[J]キーを押下することで「仕事分担表.xls」を起動することができる。ホット・キーとコメントはショートカットの作成では任意の情報なので、不要である場合には空文字列を指定すればよい(ただしタブ文字は省略不可。空の場合でもタブ文字だけは入力しておくこと。つまり各行には必ず3個のタブ文字が入ることになる)。

 なお、以上の例ではローカルのハードディスク上にWSHスクリプト・ファイルやデータ・ファイルを作成したが、必要ならばこれらをファイル・サーバ上に用意し、直接実行することも可能である。その場合は、スクリプト中の「Const CONFIG="C:\config.dat"」という部分を、例えば「Const CONFIG="\\server1\prj\config.dat"」などと変更し、shortcut.wsfやconfig.datファイルを「\\server1\prj」フォルダ中に置いてから、\\server1\prj\shortcut.wsfを実行すればよい。これならば、各マシンにログオンした後、このスクリプトを最初に1回実行するだけで、必要なショートカットが作成される。ログオン時に必要な共有フォルダへの設定を行う方法は、Windows TIPS「WSHでログオン時に共有フォルダを設定する」で紹介しているので、併せて参照してほしい。

デスクトップ以外のオブジェクトへのショートカット

 以上の例ではWshShell.SpecialFoldersメソッドを介して、デスクトップ("Desktop")へのパスを取得しているが、ほかにも以下のような特殊フォルダのパスを取得することができる。

指定可能な特殊フォルダ 意味
AllUsersDesktop 全ユーザーのデスクトップ
AllUsersStartMenu 全ユーザーの[スタート]メニュー
AllUsersPrograms 全ユーザーのプログラム・フォルダ
AllUsersStartup 全ユーザーの[スタートアップ]メニュー
Desktop デスクトップ
Favorites [お気に入り]フォルダ
Fonts フォント・フォルダ
MyDocuments [マイ ドキュメント]フォルダ
NetHood [マイ ネットワーク]フォルダ
PrintHood プリンタ・フォルダ
Programs プログラム・フォルダ
Recent [最近使ったファイル]フォルダ
SendTo [送る]フォルダ
StartMenu [スタート]メニュー
Startup [スタートアップ]メニュー
Templates テンプレート・フォルダ
WshShell.SpecialFoldersメソッドで指定可能な特殊フォルダ

 本TIPSの例を応用すれば、例えば[スタート]メニュー上に関係する業務アプリケーションのメニューを登録したり、[スタートアップ]メニュー(ログオン時に自動的に実行されるプログラム)の設定を行うことも可能だろう。ただし、ショートカットの作成に当たっては、作成先のフォルダに対して、現在ログオンしているユーザーが書き込みの権限を持っている必要があるので、注意すること。End of Article

関連記事
Windows TIPS:WSHでログオン時に共有フォルダを設定する(Windows Server Insider)
 
「Windows TIPS」

@IT Special

- PR -

TechTargetジャパン

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

イベントカレンダー

PickUpイベント

- PR -

アクセスランキング

もっと見る

ホワイトペーパーTechTargetジャパン

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間
ソリューションFLASH