Windows > WSH > ネットワーク共有してドライブのボリューム名を変更する

目的

接続先のネットワークフォルダが常設でない場合(通常のワークステーションの共有などの場合など)に、スクリプトで存在の有無を確認し、存在する場合だけネットワーク共有を行い、かつネットワークドライブのボリューム名を適切に変更するスクリプト。

内容

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<package>
    <job id="MountNetFolder">
        <object id="objNetWork" progid="WScript.Network" />
        <object id="objFS" progid="Scripting.FileSystemObject" />
        
        <script language="VBScript">
        <![CDATA[
            '[[ネットワーク]]フォルダ共有のプレフィクス
            Const USER_DRIVES_PREFIX    = "\\WHITEBASE\UserDrives"
            
            '接続したネットワークフォルダの表示名を変更するAPI
            Dim objShellApp
            Set objShellApp = CreateObject("Shell.Application")        ...(1)
            Dim objDriveNS
            
            Dim vUDriveUNC
            vUDriveUNC = USER_DRIVES_PREFIX & "\" & objNetWork.ComputerName & "." & objNetWork.UserName
            
            If (objFS.FolderExists(vUDriveUNC) And Not objFS.FolderExists("U:\")) Then
                Call objNetWork.MapNetworkDrive("U:", vUDriveUNC, False)        ...(2)
                
                Set objDriveNS = objShellApp.NameSpace("U:\")         ...(3)
                objDriveNS.Items().Item.Name = "UserDrive on WHITEBASE"
                Set objDriveNS = Nothing
            End If
            
            Set objDriveNS = Nothing
            Set objShellApp = Nothing
        ]]>
        </script>
    </job>
</package>

(1)シェルアプリケーション(Explorer)インスタンスを作成します。
詳細なメンバの情報は MSDN Shell.Application Methods で参照可能です。

(2)ネットワーク共有を行います。

(3)エクスプローラ上のフォルダオブジェクトを作成します。
起動したExplorerに関連づいたフォルダオブジェクトを作成します。
従って実行しているユーザプロファイルに依存したオブジェクトを返します。
Folderオブジェクトの詳細は MSDN Folder object




最終更新日 : [2008-11-22]
最終更新:2008年11月22日 19:05