2010/02/17(Wed) 20:33:25 編集(投稿者)
2010/02/17(Wed) 15:46:27 編集(投稿者)
> ネットワーク上に隠す事を試してみます
> ローカルじゃ隠しても検索されちゃいますね
実際に使うときだけ、クライアントからリモート(サーバ)に
対して WMI など使い共有設定を行う。終了時に共有を削除。
なんて、フォームの開始時にでも行えば、たとえファイルの
場所がバレタとしても、ユーザがサーバに対して共有の設定
を行い、クライアントからアクセスできるようにしない限り
テーブルは読み取ることもできないなんてね。
もちろんスキルあるユーザーに対しては、桐を実行中に探ら
れたり、何も意味はなさないだろうけど。
リモート コンピュータ上のフォルダを共有する方法はありますか
http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/jan05/hey0107.mspx
※追加
※一部変更 コメントでは隠し*とか言いながらスクリプトでは
共有名が隠しになっていなかった。--> 共有名を隠し設定
当然、フォルダを隠し設定にするとかはするとかして。
クライアントからサーバの別資格で共有を設定する例
--------------------------------------------------------------------------------
Const WbemAuthenticationLevelPktPrivacy = 6
Const FILE_SHARE = 0
Const MAXIMUM_CONNECTIONS = 25
strComputer = "server_name"
strNamespace = "root\cimv2"
strUser = "hoge"
strPassword = "passwd"
Set objWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = objwbemLocator.ConnectServer _
(strComputer, strNamespace, strUser, strPassword)
objWMIService.Security_.authenticationLevel = WbemAuthenticationLevelPktPrivacy
Set objNewShare = objWMIService.Get("Win32_Share")
errReturn = objNewShare.Create _
("x:\DATA", "HiddenShare$", FILE_SHARE, _
MAXIMUM_CONNECTIONS, "Public share for Hoge.")
--------------------------------------------------------------------------------
クライアントからサーバの別資格で共有を削除する例
--------------------------------------------------------------------------------
Const WbemAuthenticationLevelPktPrivacy = 6
strComputer = "server_name"
strNamespace = "root\cimv2"
strUser = "hoge"
strPassword = "passwd"
Set objWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = objwbemLocator.ConnectServer _
(strComputer, strNamespace, strUser, strPassword)
objWMIService.Security_.authenticationLevel = WbemAuthenticationLevelPktPrivacy
Set colShares = objWMIService.ExecQuery _
("Select * from Win32_Share Where Name = 'HiddenShare$'")
For Each objShare in colShares
objShare.Delete
Next
--------------------------------------------------------------------------------
# ローカルで別資格で実行するには RunAs を使えばよい。