人気ブログランキング |
(WSH)ユーザの特殊フォルダに共有フォルダへのショートカットを作成する

今回したかったのは、ユーザのデスクトップやお気に入りに共有フォルダへのリンク(ショートカット)を作成するということです。

当初 Windows Server 2003 のグループポリシーでIEM(Internet Explorer メンテナンス)を使ってお気に入りに file://fileserver/foldername/%username% という書式で追加しようと思ったんですが、ダメでした。
(%usernmae% があるのは、個人毎に共有フォルダを持つような運用にしたかったからです。)
(また、Windows Server 2008 以降のドメインコントローラならグループポリシーがかなり拡張できてるため、グループポリシー内で設定できるようですね。)

結局、ログインスクリプトを使って共有フォルダへのショートカットを作成することにしました。

ショートカットの作成は Shell.CreateShortcut でできるようです。
また、特殊フォルダのパスの取得は Shell.SpecialFolders(特殊フォルダ) とすると取得できるようです。

とりあえず下記のようにしてみました。(VBScript)

Option Explicit
 
Dim objSh,scDesktop,scFavorites,scNetHood,strTrget
 
'共有フォルダ内の個人フォルダのパス
strTrget = "\\fileserver\user\%username%"
 
Set objSh=CreateObject("WScript.Shell")
 
'共有フォルダ内の個人フォルダへのショートカットを作成(デスクトップ)
Set scDesktop = objSh.CreateShortcut(objSh.SpecialFolders("Desktop") & "\個人フォルダ.lnk")
scDesktop.TargetPath = strTrget
scDesktop.save
 
'共有フォルダ内の個人フォルダへのショートカットを作成(お気に入り)
Set scFavorites = objSh.CreateShortcut(objSh.SpecialFolders("Favorites") & "\個人フォルダ.lnk")
scFavorites.TargetPath = strTrget
scFavorites.save
 
'共有フォルダ内の人フォルダへのショートカットを作成(マイネットワーク)
Set scNetHood = objSh.CreateShortcut(objSh.SpecialFolders("NetHood") & "\個人フォルダ.lnk")
scNetHood.TargetPath = strTrget
scNetHood.save


なお、Shell.SpecialFolders の引数となる特殊フォルダの文字列には下記のように指定するようです。

┌─────────┬──────────────────────────┐
│AllUsersDesktop │デスクトップ(共通) │
├─────────┼──────────────────────────┤
│AllUsersStartMenu │スタートメニュー(共通) │
├─────────┼──────────────────────────┤
│AllUsersPrograms │スタートメニュー内の「プログラム」フォルダ(共通) │
├─────────┼──────────────────────────┤
│AllUsersStartUp │スタートメニュー内の「スタートアップ」フォルダ(共通)│
├─────────┼──────────────────────────┤
│Desktop │デスクトップ │
├─────────┼──────────────────────────┤
│Favorites │お気に入り │
├─────────┼──────────────────────────┤
│Fonts │フォント │
├─────────┼──────────────────────────┤
│MyDocuments │マイドキュメント │
├─────────┼──────────────────────────┤
│NetHood │マイネットワーク │
├─────────┼──────────────────────────┤
│PrintHood │プリンタ │
├─────────┼──────────────────────────┤
│Programs │スタートメニュー内の「プログラム」フォルダ │
├─────────┼──────────────────────────┤
│Recent │最近使ったファイル │
├─────────┼──────────────────────────┤
│SendTo │送るメニュー │
├─────────┼──────────────────────────┤
│StartMenu │スタートメニュー │
├─────────┼──────────────────────────┤
│Startup │スタートメニュー内の「スタートアップ」フォルダ │
├─────────┼──────────────────────────┤
│Templates │テンプレート │
├─────────┼──────────────────────────┤
│0 │WINDOWSディレクトリ │
├─────────┼──────────────────────────┤
│1 │システムディレクトリ │
├─────────┼──────────────────────────┤
│2 │テンポラリディレクトリ │
└─────────┴──────────────────────────┘



参考:
ショートカットを作成する|VBScript Tips
@IT:Windows TIPS -- Tips:デスクトップ上に必要なショートカットを自動生成する
特殊フォルダのパスを取得する@VBS - http://pnpk.net
強化されたグループ・ポリシー機能 - @IT 2008 だとグループポリシーで設定可能です。
by jehoshaphat | 2010-10-07 19:47 | 豆知識


<< NTFSアクセス権の変更と削除の違い (WSH)現在ログオンしている... >>