在我的 MS-Access 应用程序(在 Windows 2012R2 服务器上运行)中,我需要在“远程桌面本地设备和资源”选项卡中检查远程用户共享了哪些本地驱动器。
我试过这个:
Dim wql As String, SrvEx As Object, WMIObj As Object, WMIObjEx As Object
wql = "Select * From Win32_LogicalDisk"
Set SrvEx = GetObject("winmgmts:root/CIMV2")
Set WMIObj = SrvEx.ExecQuery(wql)
For Each WMIObjEx In WMIObj
Me.Text1 = Me.Text1 & WMIObjEx.Path_.RelPath & vbCrLf
Next
这列出了远程服务器上的物理驱动器,而不是已共享的驱动器。
我尝试将 SQL 字符串更改为:
wql = "Select * From Win32_MappedLogicalDisk"
这不会产生任何结果。
是要搜索的主持人
\\tsclient
。将通过以下方式到达远程驱动器D
:
\\tsclient\D
因此,非常简单的方法是使用客户端可能的驱动器号循环调用
Dir
,例如:
? Dir("\\tsclient\D\", vbDirectory)
这将在客户端返回一个文件夹,或者如果
D
未共享,则会引发错误。
或者只是提出错误:
Dir "\\tsclient\D\", vbDirectory