Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I programmatically convert a DFS path to UNC using VBS?

I have several scripts that must use UNC paths - not DFS - and would like to be able to determine the UNC path programmatically from the DFS path. For example, we have something like:

\\domain\fs\Home\HomeFolder\MyUserID

and I would like to get from it the UNC path like this:

\\Server1\HomeFolder\MyUserID

I cannot count on a utility like DFSUtil.exe to be available. It will need to be in VBScript.

I found the following code in NET which uses WMI but I can't tease out what's happening to convert it to a usable VBS: http://www.codeproject.com/Tips/158829/Convert-a-file-path-to-a-UNC-Path

Can anyone lend a hand? I'm lost in translation (don't speak NET)...

like image 498
Lizz Avatar asked Jun 06 '26 01:06

Lizz


1 Answers

This is a minimal VBScript translation of what you linked to:

Option Explicit

Dim wmi
Dim col
DIm itm

Set wmi = GetObject("winmgmts:\\.\root\cimv2")
Set col = wmi.ExecQuery("Select DeviceID,ProviderName From Win32_LogicalDisk where DriveType=4")

With WScript
  For Each itm in col
    .Echo "========="
    .Echo "DeviceID:" & vbTab & itm.DeviceID
    .Echo "ProviderName:" & vbTab & itm.ProviderName
  Next
End With

Set wmi = Nothing
Set col = Nothing
WScript.Quit

In short, I don't think it is quite what you want... I think you would have to map drives first before running this.

The tidier way to do it would be to run a query against Active Directory to find the DFS share definitions, but where to actually look within AD can be difficult to identify

like image 157
Jobbo Avatar answered Jun 07 '26 22:06

Jobbo