Blog of Khlebalin Dmitriy

(Записки из мира IT…)

Скрипт для подключения сетевого диска.


Сегодня решил прикрутить сетевой диск через GPO всем пользователям. Сделать это можно следующим образом.

Сложный вариант — это скрипт на vba. Например создаем файл map_drive.vba и пишем туда следующий код:

‘==========================================================================

‘ 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

Можно использовать наиболее простой вариант например батник. Создаем файл map_drive.bat и пишем туда следующее:

@echo off
net use z: /delete
net use z: \\fs\user_public
exit

Далее заходим и редактируем GPO на серваке:

1

2

Все это сохраняем. Заходим на комп пользователя, в коммандной строке набираем gpupdate /force, видим что политика обновлена успешно. Далее log off-log on. И наблюдаем все прописаные в скрипте сетевые диски. Кстати у меня на ноуте установлена Windows Vista Business, у меня диски примапились после 2х gpupdate /force и 2х перезагрузок компа, хотя при апдейте политики появлялась надпись что все обновлено успешно ( хр все применилось сразу и без проблем). С чем это связано, для меня до сих пор остается загадкой.

Всем удачи!

About these ads

18.09.2009 - Posted by | scripts

Извините, обсуждение на данный момент закрыто.

Отслеживать

Get every new post delivered to your Inbox.

Join 44 other followers

%d bloggers like this: