Спасибо, ясно. В примере по ссылке «runLoginScript()» — некая гипотетическая функция, возвращающая булево значение. В зазависимости от этого в журнал пишется сообщение об успехе или ошибке.
В Вашем случае:
Цитата:
Цитата Matr_os_kin
1) Диска у пользователя нет, удалить скрипт не может. »
|
Это не есть ошибка. Нет подключенного сетевого диска на данной букве? Ну и что?! Мы-то как раз пробуем освободить это подключение. Надо просто перебрать все существующие подключения. А вообще я отрицательно отношусь к назначению постоянными сетевых подключений к общим ресурсам, назначаемых из групповой политики.
Цитата:
Цитата Matr_os_kin
2) в поле заметки написано вот так 7,\\server1\shara1. Скрипт не примапит диск, потому как некорректная буква диска. Ну или путь. Если будет наоборот. »
|
Тут да, надо обрабатывать. Сделать сие можно, например, так:
Код:
Option Explicit
Const EventTypeSuccess = 0
Const EventTypeError = 1
Dim objWshShell
Dim objWshNetwork
Dim collWshCollection
Dim i
Dim elem
Dim strDrive
Dim strNetworkPath
Dim strObjGroup_Info
' Пусть strObjGroup_Info — уже извлечённое описание из поля Заметки группы пользователя, например:
strObjGroup_Info = _
"R:,\\Server1\shara1" & vbCrLf & _
"S:,\\server2\shara2" & vbCrLf & _
"E:,\\Server3\shara1" & vbCrLf & _
"7,\\server1\shara1" & vbCrLf & _
"\\Server3\shara3,Q:"
Set objWshShell = WScript.CreateObject("WScript.Shell")
Set objWshNetwork = WScript.CreateObject("WScript.Network")
Set collWshCollection = objWshNetwork.EnumNetworkDrives()
' Перебираем все пары элементов, извлечённые из описания
For Each elem In Split(strObjGroup_Info, vbCrLf)
' Разбиваем пару «Имя локального устройства/Имя сетевого устройства» на составляющие
strDrive = Split(elem, ",")(0)
strNetworkPath = Split(elem, ",")(1)
' Перебираем коллекцию существующих сетевых подключений к общим сетевым ресурсам
For i = 1 To collWshCollection.Count Step 2
' Если находим существующее сетевое подключение к планируемому сетевому ресурсу…
If collWshCollection.Item(i) = strNetworkPath Then
' … отключаем его
objWshNetwork.RemoveNetworkDrive collWshCollection.Item(i - 1)
End If
Next
' Включаем собственную обработку ошибок
On Error Resume Next
' Пытаемся создать новое не постоянное (!) сетевое подключение к общему сетевому ресурсу
objWshNetwork.MapNetworkDrive strDrive, strNetworkPath, False
' При какой-либо ошибке…
If Err.Number <> 0 Then
' … пишем соответствующее сообщение:
'WScript.Echo "Logon script [" & WScript.ScriptFullName & "] event " & _
' "for [" & objWshNetwork.UserDomain & "\" & objWshNetwork.UserName & "]" & _
' " on [" & objWshNetwork.ComputerName & "]" & vbCrLf & _
' vbTab & "Error Source: " & vbTab & vbTab & Err.Source & vbCrLf & _
' vbTab & "Error Number: " & vbTab & vbTab & "0x" & Hex(Err.Number) & vbCrLf & _
' vbTab & "Error Description: " & vbTab & Err.Description & vbCrLf & _
' "Additional information" & vbCrLf & _
' vbTab & "Local drive name: " & vbTab & strDrive & vbCrLf & _
' vbTab & "Remote UNC path: " & vbTab & strNetworkPath
objWshShell.LogEvent EventTypeError, "Logon script [" & WScript.ScriptFullName & "] event " & _
"for [" & objWshNetwork.UserDomain & "\" & objWshNetwork.UserName & "]" & _
" on [" & objWshNetwork.ComputerName & "]" & vbCrLf & _
vbTab & "Error Source: " & vbTab & Err.Source & vbCrLf & _
vbTab & "Error Number: " & vbTab & "0x" & Hex(Err.Number) & vbCrLf & _
vbTab & "Error Description: " & vbTab & Err.Description & vbCrLf & _
"Additional information" & vbCrLf & _
vbTab & "Local drive name: " & vbTab & strDrive & vbCrLf & _
vbTab & "Remote UNC path: " & vbTab & strNetworkPath
End If
' Включаем системную обработку ошибок
On Error Goto 0
Next
Set collWshCollection = Nothing
Set objWshNetwork = Nothing
Set objWshShell = Nothing
WScript.Quit 0
Возможный результат
Цитата:
Код:
Logon script [\\Server\<Path to GPO Script Object>\Logon.vbs] event for [Domain\User] on [Machine]
Error Source: WSHNetwork.MapNetworkDrive
Error Number: 0x800704B2
Error Description: Локальное имя устройства уже используется для подключения к другому сетевому ресурсу.
Additional information
Local drive name: R:
Remote UNC path: \\Server1\shara1
Logon script [\\Server\<Path to GPO Script Object>\Logon.vbs] event for [Domain\User] on [Machine]
Error Source: WSHNetwork.MapNetworkDrive
Error Number: 0x80070035
Error Description: Не найден сетевой путь.
Additional information
Local drive name: S:
Remote UNC path: \\server2\shara2
Logon script [\\Server\<Path to GPO Script Object>\Logon.vbs] event for [Domain\User] on [Machine]
Error Source: WSHNetwork.MapNetworkDrive
Error Number: 0x80070055
Error Description: Имя локального устройства уже используется.
Additional information
Local drive name: E:
Remote UNC path: \\Server3\shara1
Logon script [\\Server\<Path to GPO Script Object>\Logon.vbs] event for [Domain\User] on [Machine]
Error Source: WSHNetwork.MapNetworkDrive
Error Number: 0x800704B0
Error Description: Указано неверное имя устройства.
Additional information
Local drive name: 7
Remote UNC path: \\server1\shara1
Logon script [\\Server\<Path to GPO Script Object>\Logon.vbs] event for [Domain\User] on [Machine]
Error Source: WSHNetwork.MapNetworkDrive
Error Number: 0x800704B0
Error Description: Указано неверное имя устройства.
Additional information
Local drive name: \\Server3\shara3
Remote UNC path: Q:
|
|