Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » vbs logon скрипт для подключения сетевых дисков

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7

Открыть новую тему     Написать ответ в эту тему

alfira

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите пожалуйста как написать *.vbs logon скрипт который бы подключал несколько сетевых дисков несмотря на то что они раньше уже были назначены на другой путь  
 
потому как если использовать команду:
Set objNetwork = Wscript.CreateObject("WScript.Network")
objNetwork.MapNetworkDrive "z:", "\\test\basa"
а этот диск к примеру уже существует и подключен к другому пути то выдается сообщение "имя локального устройства уже используется"
 
И еще вопрос существует ли способ подключать те или иные диски в зависимости от того в какой доменной групе находится пользователь? Под Novell Netware скриптом можно так сделать

Всего записей: 81 | Зарегистр. 11-09-2004 | Отправлено: 03:26 16-12-2005
finderknowledge

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alfira
Сначала нужно проверить какие сетевые диски подключены:
objNetwork.EnumNetworkDrives()
потом отключить если на нужной букве что-то висит:
objNetwork.RemoveNetworkDrive("диск")
 

Цитата:
И еще вопрос существует ли способ подключать те или иные диски в зависимости от того в какой доменной групе находится пользователь?

можно с помощью обращений к ADSI:
 
var $strDomain = "SameDomen"
var $strUser = "SameUser";
 
function ingroup($strGroup) {        
    var $objUser=GetObject ("WinNT://"+$strDomain+"/"+$strUser+",user");    
    var $objGroup = GetObject("WinNT://"+$strDomain+"/"+$strGroup+",group");
    if ($objGroup.IsMember($objUser.ADsPath))
    return true;
     else
    return false;
}

Всего записей: 26 | Зарегистр. 03-11-2005 | Отправлено: 10:15 16-12-2005 | Исправлено: finderknowledge, 10:18 16-12-2005
SergeyCVS



winextreme team
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вот два скрипта, первый проверяет принадлежнойть юзера к опред. группе, второй мапит сетевые диски с обработкой ошибок и занесением инфы в EventLog. на их основе написать скрипт мапящий диски на основе групп думаю не так сложно

Код:
ON ERROR RESUME NEXT  
Dim strUserDN, objSysInfo  
 
set WshShell = CreateObject("WScript.Shell")  
Set WshNetwork = WScript.CreateObject("WScript.Network")  
Set objSysInfo = CreateObject("ADSystemInfo")  
 
LogonServer=WshShell.ExpandEnvironmentStrings("%LogonServer%")  
MsgBox "Logon server: " & LogonServer  
 
strUserDN = objSysInfo.userName  
MsgBox strUserDN  
 
Set UserObj = GetObject("LDAP://" & strUserDN)  
 
MsgBox "User '" & WshNetwork.username & "' connect to " & WshNetwork.computername  
 
'Init Groups  
Dim UserGroups  
Dim GroupObj  
UserGroups=""  
 
For Each GroupObj In UserObj.Groups  
        UserGroups=UserGroups & "[" & GroupObj.Name & "]"  
Next  
 
MsgBox "Member of "& UserGroups  
 
if InGroup("CN=Administrators") then  
        MsgBox "This user - Admin"  
end if  
 
Function InGroup(strGroup)  
        InGroup=False  
        If InStr(UserGroups,"[" & strGroup & "]") Then  
                InGroup=True  
        End If  
End Function

 

Код:
'==========================================================================
'
' VBScript Source File
'
' NAME: MapDrives.vbs
'
' AUTHOR: SergeyCVS
'
' COMMENT: Подключение сетевых дисков с записью ошибок в EventLog
'
'==========================================================================
 
Option Explicit
On Error Resume Next
 
Dim WshShell, WshNetwork
 
Set WshShell = WScript.CreateObject("WScript.Shell")
 
 MapDrv "L:", "\\SRV\Users\" & WshShell.ExpandEnvironmentStrings("%USERNAME%")
 MapDrv "R:", "\\SRV\Archive"
 MapDrv "W:", "\\SRV\Work"
 MapDrv "P:", "\\SRV\SUPPORT$"
 
'==========================================================================
'
' Function MapDrv(DrvLet, UNCPath)
'
' DrvLet -  Буква устройства
' UNCPath - Сетевой путь
'
' COMMENT: Подключение сетевых дисков с записью ошибок в EventLog
'
'==========================================================================
 
 
Function MapDrv(DrvLet, UNCPath)
 
    Dim WshNetwork         ' Object variable
    Dim Msg
 
    Set WshNetwork = WScript.CreateObject("WScript.Network")
 
    On Error Resume Next
    WshNetwork.RemoveNetworkDrive DrvLet
    WshNetwork.MapNetworkDrive DrvLet, UNCPath
     
    Select Case Err.Number
        Case 0            ' No error
 
        Case -2147023694  
            WshNetwork.RemoveNetworkDrive DrvLet
            WshNetwork.MapNetworkDrive DrvLet, UNCPath
             
        Case -2147024811  
            WshNetwork.RemoveNetworkDrive DrvLet
            WshNetwork.MapNetworkDrive DrvLet, UNCPath
 
        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, "\\SRV"
    End Select
 
End Function
 


----------
xxx: если цыплят зовут - цыпа, цыпа, цыпа
xxx: а утят - утя, утя, утя..
xxx: то пингвинов надо подзывать - пинг, пинг, пинг

Всего записей: 2445 | Зарегистр. 04-01-2002 | Отправлено: 12:20 16-12-2005
alfira

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
дааа спасибо, но для меня к сожалению пока сложно самостоятельно написать скрипт мапящий диски на основе групп, потому как то, что вы для меня написали темный лес.
   Чесно скажу, хотелось передрав код из справочной литературы быстро все сделать ан нет вижу не так-то все просто. Может подскажите с чего начать изучение vbs скриптов?  

Всего записей: 81 | Зарегистр. 11-09-2004 | Отправлено: 06:30 20-12-2005
AlexSSS

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
если скрипты тебе нужны только для логонскриптов, могу посоветовать использовать KIX
http://forum.ru-board.com/topic.cgi?forum=8&topic=10659#1
 
это мощный коммандный процессор, ориентированный именно на логон скрипты
скажем, твоя задачка там решается примерно так
 
Use K: /DELETE /PERSISTENT
Use J: /DELETE /PERSISTENT
 
IF @UserID='_alex'
    use k: '\\server\alex$'
ENDIF
 
IF INGROUP("Project9350")
    Use J: "\\server\projects"
ENDIF

Всего записей: 747 | Зарегистр. 26-06-2004 | Отправлено: 11:22 20-12-2005 | Исправлено: AlexSSS, 11:23 20-12-2005
Jovanotti



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alfira
В   шапку  Автоматизации   загляни    ....

Всего записей: 718 | Зарегистр. 22-12-2002 | Отправлено: 19:10 20-12-2005
hamet2000

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SergeyCVS
Мне вот тоже хотелось бы иметь vbs скрипт мапящий диски на основе групп. и чтоб старые диски если таковые были подключены менялись на новые. Может уважаемый SergeyCVS извините за наглость  выложит готовый  скрипт мапящий  несколько дисков на основе групп.

Всего записей: 57 | Зарегистр. 21-12-2005 | Отправлено: 05:56 21-12-2005
SergeyCVS



winextreme team
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
hamet2000
ну что-то вроде этого

Код:
'==========================================================================  
'  
' VBScript Source File  
'  
' NAME: MapDrivesInGroup.vbs
'  
' AUTHOR: SergeyCVS  
'  
' COMMENT: Подключение сетевых дисков на основе групп с записью ошибок в EventLog  
'  
'==========================================================================  
 
Option Explicit  
'On Error Resume Next  
 
Dim WshShell, WshNetwork  
Dim strUserDN, objSysInfo, GroupObj, UserGroups, UserObj
 
UserGroups=""    
 
 
Set WshShell = WScript.CreateObject("WScript.Shell")  
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("Supports Admins") then    
        MapDrv "Z:", "\\SRV\SUPPORT$"  
end if  
 
if InGroup("1C Users") then    
        MapDrv "W:", "\\SRV\Base"
end if  
 
 
 MapDrv "L:", "\\SRV\Users\" & WshShell.ExpandEnvironmentStrings("%USERNAME%")  
 
 
'==========================================================================  
'  
' Function MapDrv(DrvLet, UNCPath)  
'  
' DrvLet -  Буква устройства  
' UNCPath - Сетевой путь  
'  
' COMMENT: Подключение сетевых дисков с записью ошибок в EventLog  
'  
'==========================================================================  
 
 
Function MapDrv(DrvLet, UNCPath)  
 
    Dim WshNetwork         ' Object variable  
    Dim Msg  
 
    Set WshNetwork = WScript.CreateObject("WScript.Network")  
 
    On Error Resume Next  
    WshNetwork.RemoveNetworkDrive DrvLet  
    WshNetwork.MapNetworkDrive DrvLet, UNCPath  
     
    Select Case Err.Number  
        Case 0            ' No error  
 
        Case -2147023694  
            WshNetwork.RemoveNetworkDrive DrvLet  
            WshNetwork.MapNetworkDrive DrvLet, UNCPath  
               
        Case -2147024811  
            WshNetwork.RemoveNetworkDrive DrvLet  
            WshNetwork.MapNetworkDrive DrvLet, UNCPath  
 
        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, "\\SRV"  
    End Select  
End Function
 
 
'==========================================================================  
'  
' Function InGroup(strGroup)
'  
' strGroup - группа, принадлежность к которой проверяем
'  
' COMMENT: проверка принадлежности пользователя к группе
'  
'==========================================================================  
 
Function InGroup(strGroup)    
        InGroup=False    
        If InStr(UserGroups,"[CN=" & strGroup & "]") Then    
                InGroup=True    
        End If    
End Function


----------
xxx: если цыплят зовут - цыпа, цыпа, цыпа
xxx: а утят - утя, утя, утя..
xxx: то пингвинов надо подзывать - пинг, пинг, пинг

Всего записей: 2445 | Зарегистр. 04-01-2002 | Отправлено: 13:13 21-12-2005
hamet2000

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SergeyCVS
Спасибо огромное! Диски подключаются, только есть проблемы.
Если пользователь вручную назначил диск то скрипт такой диск не переназначает на тот путь который я назначил в скрипте, а оставляет его таким каким его сделал пользователь.
и вот еще о тех дисках которые успешно подключились почему-то в логах пишутся сообщения например:
 
Тип события:    Ошибка
Источник события:    WSH
Категория события:    Отсутствует
Код события:    1
Дата:        23.12.2005
Время:        11:37:45
Пользователь:        Н/Д
Компьютер:    Hamet
Описание:
Mapping network drive error: -2147022646 0x800708CA
Error description: Сетевое подключение не существует.
 
Domain: STAA
Computer Name: hamet
User Name: admin
 
Device name: H:
Map path: \\server\basa
 
Дополнительные сведения можно найти в центре справки и поддержки, в "http://go.microsoft.com/fwlink/events.asp".
Хотя диски и этот в часности подключен.

Всего записей: 57 | Зарегистр. 21-12-2005 | Отправлено: 06:00 23-12-2005
SergeyCVS



winextreme team
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
hamet2000
какая версия wsh у тя?

----------
xxx: если цыплят зовут - цыпа, цыпа, цыпа
xxx: а утят - утя, утя, утя..
xxx: то пингвинов надо подзывать - пинг, пинг, пинг

Всего записей: 2445 | Зарегистр. 04-01-2002 | Отправлено: 11:22 23-12-2005
hamet2000

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SergeyCVS
а где это посмотреть?

Всего записей: 57 | Зарегистр. 21-12-2005 | Отправлено: 02:12 26-12-2005
SergeyCVS



winextreme team
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
hamet2000
cscript /?

----------
xxx: если цыплят зовут - цыпа, цыпа, цыпа
xxx: а утят - утя, утя, утя..
xxx: то пингвинов надо подзывать - пинг, пинг, пинг

Всего записей: 2445 | Зарегистр. 04-01-2002 | Отправлено: 11:21 26-12-2005
hamet2000

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SergeyCVS
Версия 5.6

Всего записей: 57 | Зарегистр. 21-12-2005 | Отправлено: 12:17 26-12-2005
SergeyCVS



winextreme team
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
hamet2000

Цитата:
и вот еще о тех дисках которые успешно подключились почему-то в логах пишутся сообщения например:  
 
Тип события:    Ошибка  
Источник события:    WSH  
Категория события:    Отсутствует  
Код события:    1  
Дата:        23.12.2005  
Время:        11:37:45  
Пользователь:        Н/Д  
Компьютер:    Hamet  
Описание:  
Mapping network drive error: -2147022646 0x800708CA  
Error description: Сетевое подключение не существует.

fixed
 
MapDrivesInGroup.vbs

----------
xxx: если цыплят зовут - цыпа, цыпа, цыпа
xxx: а утят - утя, утя, утя..
xxx: то пингвинов надо подзывать - пинг, пинг, пинг

Всего записей: 2445 | Зарегистр. 04-01-2002 | Отправлено: 19:24 26-12-2005 | Исправлено: SergeyCVS, 19:24 26-12-2005
alfira

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ух ты да тут вовсю уже эту тему продолжают.
скрипт класный!
последний fixed скрипт почему-то не отключает старые сетевые диски которые пользователи сами подключали с галкой "восстанавливать сетевые подключения".
 
помоему hamet тоже про это? писал?  
SergeyCVS
спасибо !!!

Всего записей: 81 | Зарегистр. 11-09-2004 | Отправлено: 16:59 27-12-2005
SergeyCVS



winextreme team
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alfira

Цитата:
последний fixed скрипт почему-то не отключает старые сетевые диски которые пользователи сами подключали с галкой "восстанавливать сетевые подключения".

скрипт откл. только те диски, литеры которых планеруется использовать. все сетевые диски скрипт не откл.

----------
xxx: если цыплят зовут - цыпа, цыпа, цыпа
xxx: а утят - утя, утя, утя..
xxx: то пингвинов надо подзывать - пинг, пинг, пинг

Всего записей: 2445 | Зарегистр. 04-01-2002 | Отправлено: 17:13 27-12-2005
hamet2000

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SergeyCVS
скрипт не во всех случаях отключает "те диски, литеры которых планируется использовать".
проверял так:
прописываю в скрипте mapdisk.vbs что диск Z: нужно подключить группе managers сетевой путь \\server\basa
далее, допустим пользователь член группы managers самостоятельно когда-то подключил диск Z: допустим к \\OldServer\oldbasa с галкой "восстанавливать сетевые подключения", запускаю mapdisk.vbs на компе этого пользователя и вижу что скрипт к сожалению такой диск не может отключить и подключить на верный путь который в скрипте прописан.
пробовал уже по всякому. а вот если подключить диск Z: вручную но без галки "восстанавливать сетевые подключения". и запустить mapdisk.vbs то все нормально проходит, диск подключается согласно прописанному в скрипте пути.

Всего записей: 57 | Зарегистр. 21-12-2005 | Отправлено: 06:21 28-12-2005
SergeyCVS



winextreme team
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
hamet2000
сегодня попробую похожую ситуацию
 
Добавлено:
 
пробуем

----------
xxx: если цыплят зовут - цыпа, цыпа, цыпа
xxx: а утят - утя, утя, утя..
xxx: то пингвинов надо подзывать - пинг, пинг, пинг

Всего записей: 2445 | Зарегистр. 04-01-2002 | Отправлено: 11:35 28-12-2005
hamet2000

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Все отлично работает!!!

Всего записей: 57 | Зарегистр. 21-12-2005 | Отправлено: 05:57 29-12-2005
sVx



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
переименовать диск:

Код:
mDrive = "W:\"
Set oShell = CreateObject("Shell.Application")
oShell.NameSpace(mDrive).Self.Name = "Base"
 
mDrive = "L:\"
Set oShell = CreateObject("Shell.Application")
oShell.NameSpace(mDrive).Self.Name = WshNetwork.UserName & "'s disk"

подскажите как добавить в етот скрипт?

Всего записей: 157 | Зарегистр. 17-06-2004 | Отправлено: 10:52 25-01-2006
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » vbs logon скрипт для подключения сетевых дисков


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru