‎05-06-2010 01:56 AM
‎08-02-2010 02:36 PM
'Define variables, constants and objects
strComputer = Wscript.Arguments.Item(0)
strOutput=""
Const HKEY_USERS = &H80000003
Set objWbem = GetObject("winmgmts:")
Set objRegistry = GetObject("winmgmts://" & strComputer & "/root/default:StdRegProv")
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
'Go and get the currently logged on user by checking the owner of the Explorer.exe process.
Set colProc = objWmiService.ExecQuery("Select Name from Win32_Process" & " Where Name='explorer.exe' and SessionID=0")
If colProc.Count > 0 Then
For Each oProcess In colProc
oProcess.GetOwner sUser, sDomain
Next
End If
'Loop through the HKEY_USERS hive until (ignoring the .DEFAULT and _CLASSES trees) until we find the tree that
'corresponds to the currently logged on user.
lngRtn = objRegistry.EnumKey(HKEY_USERS, "", arrRegKeys)
For Each strKey In arrRegKeys
If UCase(strKey) = ".DEFAULT" Or UCase(Right(strKey, 8)) = "_CLASSES" Then
Else
Set objSID = objWbem.Get("Win32_SID.SID='" & strKey & "'")
'If the account name of the current sid we're checking matches the accountname we're looking for Then
'enumerate the Network subtree
If objSID.accountname = sUser Then
regpath2enumerate = strkey & "\Network" 'strkey is the SID
objRegistry.enumkey hkey_users, regpath2enumerate, arrkeynames
'If the array has elements, go and get the drives info from the registry
If Not (IsEmpty(arrkeynames)) Then
For Each subkey In arrkeynames
regpath = strkey & "\Network\" & subkey
regentry = "RemotePath"
objRegistry.getstringvalue hkey_users, regpath, regentry, dapath
' 'wscript.echo subkey & ":" & vbTab & dapath
stroutput = stroutput & subkey & ":" & vbTab & dapath & vbCr
Next
End If
End If
End If
Next
strOutput="Drives for user " & suser & " using PC "& strComputer & vbCr & vbCr & stroutput
wscript.echo stroutput
‎05-11-2010 01:37 PM
‎12-10-2010 02:55 PM
i.kulgu wrote:
You can do this with a vbscript.
Get the script below and copy it to your actionpath.
Make a computer action like : {actionpath}driver_mapping.vbs
That should do the trick.
Ps. if you can change the script where you can get all the outputs in 1 screen would work better, i couldn't manage to do that.
CompName = wscript.arguments.Item(0)
set wshShell=CreateObject("wscript.shell")
Set objWMI = GetObject("winmgmts:\\" & CompName & "\root\cimv2")
Set oDrives = objWMI.ExecQuery("select * from Win32_MappedLogicalDisk")
strTitle="Network Drive Mappings"
strmsg="Drive Mappings on " & CompName & vbcrlf & vbcrlf
For Each objDrive in oDrives
strMsg=strMsg & ObjDrive.DeviceID & " " & objDrive.ProviderName & vbcrlf
Next
wshShell.Popup strMsg,-1,strTitle,vbinformation
‎05-06-2010 11:27 AM
Experience Lansweeper with your own data. Sign up now for a 14-day free trial.
Try Now