Как перемапить диск, с помощью VBS?

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
ser
проходил мимо

Как перемапить диск, с помощью VBS?

Непрочитанное сообщение ser » 2005-05-16 12:21:45

Имеется около 500 компьютеров, на которых подсоединён сетевой диск (скажем X), с восстановлением при входе в систему.
С помощью каких средств VBS можно отсоединить текущий подключить другой зашаренный ресурс на эту же букву X?
Может это проще сделать с помощью реестра?

Гость
проходил мимо

Непрочитанное сообщение Гость » 2005-05-16 13:48:07

Э... А домен есть? Наверное есть, на 500 компов-то.
Можно батник простой настругать, команда
net use /?
тебе поможет....

ser
проходил мимо

Спасибо!

Непрочитанное сообщение ser » 2005-05-17 7:52:01

Да, всё классно, помогло....
всё как надо работает....

slim
рядовой
Сообщения: 33
Зарегистрирован: 2007-11-16 3:27:13
Откуда: Украина Киев
Контактная информация:

Re: Как перемапить диск, с помощью VBS?

Непрочитанное сообщение slim » 2008-10-18 0:50:45

Так прикольней :smile:
Не помню уже где взяли образец скрипта, но автору сенкс :drinks:

Код: Выделить всё

'==========================================================================
'
' VBScript Source File
'
' NAME: MapDrivesInGroup.vbs
'
' VERSION: v1.1
'
' AUTHOR: SergeyCVS
'
' COMMENT: Подключение сетевых дисков на основе групп с записью ошибок в EventLog
'
'==========================================================================

Option Explicit
'On Error Resume Next

Dim WshShell, WshNetwork
Dim strUserDN, objSysInfo, GroupObj, UserGroups, UserObj

' Задаем имя файлового сервера, при использовании нескольких серверов
' создаем несколько констант и используем их при вызове MapDrv
Const FileSrv1 = "\\MAIN"
'Const FileSrv2 = "\\SRV2"

UserGroups=""


Set WshShell = WScript.CreateObject("WScript.Shell")
Set WshNetwork = WScript.CreateObject("WScript.Network")
Set objSysInfo = CreateObject("ADSystemInfo")

strUserDN = objSysInfo.userName

Set UserObj = GetObject("LDAP://" & strUserDN)

For Each GroupObj In UserObj.Groups
UserGroups=UserGroups & "[" & GroupObj.Name & "]"
Next

'MsgBox "Member of "& UserGroups

'
if InGroup("admin_g") then
MapDrv "G:", "\\main\admin_g$"," "
end if

if InGroup("admin_i") then
MapDrv "I:", "\\main\admin_i$"," "
end if




'

'==========================================================================
Function MapDrv(DrvLet, UNCPath, DrvName)

Dim objFSO, oShell ' Object variable
Dim Msg

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set oShell = CreateObject("Shell.Application")

On Error Resume Next

If objFSO.DriveExists(DrvLet) Then
WshNetwork.RemoveNetworkDrive DrvLet, true, true
End If

WshNetwork.MapNetworkDrive DrvLet, UNCPath
oShell.NameSpace(DrvLet).Self.Name = DrvName

Select Case Err.Number
Case 0 ' No error

Case -2147023694
WshNetwork.RemoveNetworkDrive DrvLet, true, true
WshNetwork.MapNetworkDrive DrvLet, UNCPath
oShell.NameSpace(DrvLet).Self.Name = DrvName

Case -2147024811
WshNetwork.RemoveNetworkDrive DrvLet, true, true
WshNetwork.MapNetworkDrive DrvLet, UNCPath
oShell.NameSpace(DrvLet).Self.Name = DrvName

Case Else

Msg = "Mapping network drive error: " & _
CStr(Err.Number) & " 0x" & Hex(Err.Number) & vbCrLf & _
"Error description: " & Err.Description & vbCrLf
Msg = Msg & "Domain: " & WshNetwork.UserDomain & vbCrLf
Msg = Msg & "Computer Name: " & WshNetwork.ComputerName & vbCrLf
Msg = Msg & "User Name: " & WshNetwork.UserName & vbCrLf & vbCrLf
Msg = Msg & "Device name: " & DrvLet & vbCrLf
Msg = Msg & "Map path: " & UNCPath

WshShell.LogEvent 1, Msg, FileSrv1
End Select
End Function

'
'
'
Function InGroup(strGroup)
InGroup=False
If InStr(UserGroups,"[CN=" & strGroup & "]") Then
InGroup=True
End If
End Function
Что нас не убивает, делает нас сильнее


Вернуться в «Visual Basic»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость