|
Компьютерный форум OSzone.net » Серверные продукты Microsoft » Microsoft Windows NT/2000/2003 » Подключение сетевых ресурсов политикой Organizational Unit |
|
|
Подключение сетевых ресурсов политикой Organizational Unit
|
Новый участник Сообщения: 12 |
Профиль | Отправить PM | Цитировать Здравствуйте, Господа.
К сожалению я перерыл половину известных мне поисков и не нашел пошагового руководства по автоматизации подключения сетевых ресурсов. Проблема такая. Есть несколько корневых котологов в DFS. Содержимое каждого соответствует требованиям отделов. Есть Organizational Unit. На кажды отдел свой. Необходимо организовать подключение сетевого каталога в качестве диска с помощью скрипта netlogon и групповой политики. Соответственно в случае если пользователя перенести из одного Organizational Unit в другой то старый диск должен отключиться а на его место подключиться тот который соответствует данному Organizational Unit. На сайте к сожалению не нашел этой информации. Если найдеться тот который знает адрес ссылки где решается моя задача, то я с радостью приму в качестве помощи линк. С уважением, Ламер. |
|
Отправлено: 15:43, 21-03-2007 |
Ветеран Сообщения: 1482
|
Профиль | Отправить PM | Цитировать echo Y|net time /set
net time /setsntp:srv1 net use O: /delete /yes net use W: /delete /yes net use K: /delete /yes net use G: /delete /yes net use y: /delete /yes net use t: /delete /yes net use i: /delete /yes net use n: /delete /yes net use x: /delete /yes net use m: /delete /yes \\srv1\netlogon\sleep.exe 2 net use O: \\srv1\departments\200-Administrative \\srv1\netlogon\sleep.exe 2 net use w: \\srv1\workgroup \\srv1\netlogon\sleep.exe 2 net use k: \\srv05\consultant$ \\srv1\netlogon\sleep.exe 2 net use g: \\srv05\garant.srv$ \\srv1\netlogon\sleep.exe 2 net use p: \\10.0.1.10\personal\%username% \\srv1\netlogon\sleep.exe 2 net use y: \\srv1\yours\%username% \\srv1\netlogon\sleep.exe 2 net use t: \\srv1\temporary \\srv1\netlogon\sleep.exe 2 net use i: \\srv1\information \\srv1\netlogon\sleep.exe 2 net use n: \\srv05\garantclient$ \\srv1\netlogon\sleep.exe 2 net use x: \\srv04\Database \\srv1\netlogon\sleep.exe 2 net use m: \\srv06\F1_TurboClient$ \\srv1\netlogon\sleep.exe 4 |
------- Отправлено: 16:01, 21-03-2007 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать Один из товарищей мне рекомендовал использовать две функции
'========================================================Sub MapDrive(strDrive,strShare) WshShell.Run "NET USE " + strDrive + " " + strShare + " /PERSISTENT:YES", 0, true End Sub '========================================================Sub MapPrinter(strName,bDefault) WSHNetwork.AddWindowsPrinterConnection strName if bDefault then WSHNetwork.SetDefaultPrinter strName end if End Sub Я к сожалению VBA не знаю поэтому затрудняюсь понять что это Вопрос что такое sleep.exe 2 это дополнительная програмка которая у меня должна находиться в каталоге Netlogon? |
Отправлено: 16:10, 21-03-2007 | #3 |
Ветеран Сообщения: 1482
|
Профиль | Отправить PM | Цитировать угу туда можешь в конец этого скиптра вставить строчку
Цитата:
и там же твой скрипт sDrive="K:\" Set oShell = CreateObject("shell.Application") oShell.NameSpace(sDrive).Self.name = "Consultant" sDrive="G:\" Set oShell = CreateObject("shell.Application") oShell.NameSpace(sDrive).Self.name = "Garant" sDrive="N:\" Set oShell = CreateObject("shell.Application") oShell.NameSpace(sDrive).Self.name = "GarantF1" sDrive="T:\" Set oShell = CreateObject("shell.Application") oShell.NameSpace(sDrive).Self.name = "Temporary" sDrive="I:\" Set oShell = CreateObject("shell.Application") oShell.NameSpace(sDrive).Self.name = "Information" sDrive="w:\" Set oShell = CreateObject("shell.Application") oShell.NameSpace(sDrive).Self.name = "Workgroup" sDrive="P:\" Set oShell = CreateObject("shell.Application") oShell.NameSpace(sDrive).Self.name = "Personal" sDrive="Y:\" Set oShell = CreateObject("shell.Application") oShell.NameSpace(sDrive).Self.name = "Yours" sDrive="O:\" Set oShell = CreateObject("shell.Application") oShell.NameSpace(sDrive).Self.name = "Department" sDrive="x:\" Set oShell = CreateObject("shell.Application") oShell.NameSpace(sDrive).Self.name = "Database" sDrive="M:\" Set oShell = CreateObject("shell.Application") oShell.NameSpace(sDrive).Self.name = "GarantF1Turbo" Можешь без этот слипа это просто программка в которой пауза в 1сек |
|
------- Последний раз редактировалось Butunin Klim, 21-03-2007 в 16:31. Отправлено: 16:20, 21-03-2007 | #4 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать А можно еще две вещи?
1) можно целиком листинг на подключение одного диска? (уменя на 9 символе выдает ошибку). 2) Где скачать слип? |
|
Отправлено: 17:03, 21-03-2007 | #5 |
В работе Сообщения: 851
|
Профиль | Сайт | Отправить PM | Цитировать Вот целиком рабочий листинг. Подключаются диски в зависимости от членства в группе.
Комментарии оставил. Изначально скрипт написан Dan Thomson (logon.vbs), я его только немного подправил. Т.о. можно подключать и принтеры ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' On Error Resume Next '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Define Variables and Constants '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Dim objFileSys Dim objIntExplorer Dim objWshNetwork Dim objWshShell Dim strDomain 'Domain of the user Dim strHomePage 'Homepage to be set for user Dim strLogonPath 'Path to location from where the script is running Dim strOSProdType 'OS Product type (WinNT, LanmanNT, ServerNT) Dim strWorkstation 'Local Computer Name Dim strUserGroups 'List of groups the user is a meber of Dim intCounter 'General counter Const UseNTServer = 0 'Sets whether this script runs when logging on locally 'to Windows Servers. 'Values are: 1 (Yes) OR 0 (No) Const FileSrv1 = "\\w2kserver" Const FileSrv2 = "\\calculator2" 'Initialize common scripting objects Set objFileSys = CreateObject( "Scripting.FileSystemObject" ) Set objWshNetwork = CreateObject( "WScript.Network" ) Set objWshShell = CreateObject( "WScript.Shell" ) 'Pause script until user is fully logged on (applicable only to Win 9x or ME) 'This will timeout after 10 seconds strUser = "" intCounter = 0 Do strUserID = objWshNetwork.Username intCounter = intCounter + 1 Wscript.Sleep 500 Loop Until strUserID <> "" OR intCounter > 20 'Check for error getting username If strUserID = "" Then objWshShell.Popup "Logon script failed - Contact the Helpdesk @ x 345", , _ "Logon script", 48 Call Cleanup End If 'Gather some basic system info Call GetSystemInfo If IsTerminalServerSession <> True Then 'Exit if we are logging on locally to a server and the script is set to NOT run on servers IF UseNTServer = 0 AND (strOSProdType = "LanmanNT" OR strOSProdType = "ServerNT") Then objWshShell.Popup "Windows Server - Exiting Logon Script!", 10, _ "Logon to " & strDomain, 16 Call CleanUp End if End If 'Get group memberships strUserGroups = "" Call GetLocalGroupMembership Call GetGlobalGroupMembership ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' ' ' This section performs actions based on group membership ' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' if InGroup("ТАИ") then MapDrv "P:", FileSrv1 & "\tai$","Папка для ТАИ" MapDrv "P:\", FileSrv1 & "\tai$","Папка для ТАИ" End If If InGroup( "ПЭО" ) Then MapDrv "P:", FileSrv1 & "\peo$","Папка для ПЭО" MapDrv "P:\", FileSrv1 & "\peo$","Папка для ПЭО" End If If InGroup( "Бухгалтерия" ) Then MapDrv "P:", FileSrv1 & "\buh$","Папка для бухгалтерии" MapDrv "P:\", FileSrv1 & "\buh$","Папка для бухгалтерии" End If If InGroup( "Администрация" ) Then MapDrv "P:", FileSrv1 & "\ruk$","Папка для администрации" MapDrv "P:\", FileSrv1 & "\ruk$","Папка для администрации" End If If InGroup( "АРС" ) Then MapDrv "P:", FileSrv1 & "\ars$","Папка для АРС" MapDrv "P:\", FileSrv1 & "\ars$","Папка для АРС" End If If InGroup( "Канцелярия" ) Then MapDrv "P:", FileSrv1 & "\zu$","Папка для канцелярии" MapDrv "P:\", FileSrv1 & "\zu$","Папка для канцелярии" End If If InGroup( "КТЦ" ) Then MapDrv "P:", FileSrv1 & "\ktc$","Папка для КТЦ" MapDrv "P:\", FileSrv1 & "\ktc$","Папка для КТЦ" End If If InGroup( "Администрация" ) Then MapDrv "P:", FileSrv1 & "\ruk$","Папка для администрации" MapDrv "P:\", FileSrv1 & "\ruk$","Папка для администрации" End If If InGroup( "НСС" ) Then MapDrv "P:", FileSrv1 & "\nss$","Папка для НСС" MapDrv "P:\", FileSrv1 & "\nss$","Папка для НСС" End If If InGroup( "ОКС" ) Then MapDrv "P:", FileSrv1 & "\oks$","Папка для ОКС" MapDrv "P:\", FileSrv1 & "\oks$","Папка для ОКС" End If If InGroup( "ОМТСиК" ) Then MapDrv "P:", FileSrv1 & "\omts$","Папка для ОМТСиК" MapDrv "P:\", FileSrv1 & "\omts$","Папка для ОМТСиК" End If If InGroup( "ОППР" ) Then MapDrv "P:", FileSrv1 & "\oppr$","Папка для ОППР" MapDrv "P:\", FileSrv1 & "\oppr$","Папка для ОППР" End If If InGroup( "Отдел Кадров" ) Then MapDrv "P:", FileSrv1 & "\ok$","Папка для Отдела кадров" MapDrv "P:\", FileSrv1 & "\ok$","Папка для Отдела кадров" End If If InGroup( "ПТО" ) Then MapDrv "P:", FileSrv1 & "\pto$","Папка для ПТО" MapDrv "P:\", FileSrv1 & "\pto$","Папка для ПТО" End If If InGroup( "Химцех" ) Then MapDrv "P:", FileSrv1 & "\hc$","Папка для Химцеха" MapDrv "P:\", FileSrv1 & "\hc$","Папка для Химцеха" End If If InGroup( "Электроцех" ) Then MapDrv "P:", FileSrv1 & "\ec$","Папка для Электроцеха" MapDrv "P:\", FileSrv1 & "\ec$","Папка для Электроцеха" End If If InGroup( "Мнемосхема" ) Then MapDrv "R:", FileSrv2 & "\mnemo","Мнемосхема" MapDrv "R:\", FileSrv2 & "\mnemo","Мнемосхема" End If If InGroup( "Директор" ) Then MapDrv "Y:", FileSrv1 & "\chief$","Конфиденциально" MapDrv "Y:\", FileSrv1 & "\chief$","Конфиденциально" End If MapDrv "V:", FileSrv1 & "\users\" & objWshNetwork.UserName, "Домашняя папка" MapDrv "V:\", FileSrv1 & "\users\" & objWshNetwork.UserName, "Домашняя папка" MapDrv "K:", FileSrv1 & "\distr", "Дистрибутивы" MapDrv "K:\", FileSrv1 & "\distr", "Дистрибутивы" MapDrv "T:", FileSrv1 & "\ctec","Папка ЦТЭЦ" MapDrv "T:\", FileSrv1 & "\ctec","Папка ЦТЭЦ" ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' End section ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' ' Sub: MapDrive ' ' Purpose: Map a drive to a shared folder ' ' Input: ' strDrive Drive letter to which share is mapped ' strServer Name of server that hosts the share ' strShare Share name ' ' Output: ' ' Usage: ' Call MapDrive ("P:", "w2kserver", "tai$") ' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Function MapDrv(DrvLet, UNCPath, DrvName) Dim objFSO, oShell ' Object variable Set objFSO = CreateObject("Scripting.FileSystemObject") Set objoShell = CreateObject("Shell.Application") On Error Resume Next If objFSO.DriveExists(DrvLet) Then objWshNetwork.RemoveNetworkDrive DrvLet, true, true End If objWshNetwork.MapNetworkDrive DrvLet, UNCPath objoShell.NameSpace(DrvLet).Self.Name = DrvName End Function ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' ' Sub: GetLocalGroupMembership ' ' Purpose: Gather all local groups the current user belongs to ' ' Input: ' ' Output: Local group names are added to strUserGroups ' ' Usage: Call GetLocalGroupMembership ' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Private Sub GetLocalGroupMembership On Error Resume Next Dim colGroups 'Collection of groups on the local system Dim objGroup 'Object reference to individual groups Dim objUser 'Object reference to individual group member 'Verify system is not Windows 9x or ME If objWshShell.ExpandEnvironmentStrings( "%OS%" ) = "Windows_NT" Then 'Connect to local system Set colGroups = GetObject( "WinNT://" & strWorkstation ) colGroups.Filter = Array( "group" ) 'Process each group For Each objGroup In colGroups 'Process each user in group For Each objUser in objGroup.Members 'Check if current user belongs to group being processed If LCase( objUser.Name ) = LCase( strUserID ) Then 'Add group name to list strUserGroups = strUserGroups & objGroup.Name & "," End If Next Next Set colGroups = Nothing End If End Sub ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' ' Sub: GetGlobalGroupMembership ' ' Purpose: Gather all global groups the current user belongs to ' ' Input: ' ' Output: Global group names are added to strUserGroups ' ' Usage: Call GetGlobalGroupMembership ' ' Notes: Use WinNT connection method to be backwards ' compatible with NT 4 domains ' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Private Sub GetGlobalGroupMembership On Error Resume Next Dim objNameSpace Dim objUser Const ADS_READONLY_SERVER = 4 Set objNameSpace = GetObject( "WinNT:" ) 'Use the OpenDSObject method with the ADS_READONLY_SERVER 'value to grab the "closest" domain controller 'Connect to user object in the domain Set objUser = objNameSpace.OpenDSObject( _ "WinNT://" & strDomain & "/" & strUserID, "", "", ADS_READONLY_SERVER) 'Process each group For Each objGroup In objUser.Groups 'Add group name to list strUserGroups = strUserGroups & objGroup.Name & "," Next Set objNameSpace = Nothing End Sub ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' ' Function: InGroup ' ' Purpose: Determine if user belongs to specified group ' ' Input: Name of group to test for membership ' ' Output: True or False ' ' Usage: If InGroup("Domain Admins") Then <do something> ' ' Requirements: ' strUserGroups must have been previously populated via ' GetLocalGroupMembership and/or GetGlobalGroupMembership ' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Private Function InGroup(strGroup) On Error Resume Next InGroup = False 'Search strUserGroups for strGroup If Instr( 1, LCase( strUserGroups ), LCase( strGroup ), 1) Then InGroup = True End Function ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' ' Sub: GetSystemInfo ' ' Purpose: Gather basic info about local system ' ' Input: ' ' Output: strDomain, strOSProdType, strWorkstation, strLogonPath ' ' Usage: Call GetSystemInfo ' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Private Sub GetSystemInfo On Error Resume Next 'Get domain name If objWshShell.ExpandEnvironmentStrings( "%OS%" ) = "Windows_NT" Then strDomain = objWshNetwork.UserDomain Else strDomain = objWshShell.RegRead( "HKLM\System\CurrentControlSet\" & _ "Services\MSNP32\NetWorkProvider\AuthenticatingAgent" ) End If 'Get Product Type from registry (WinNT, LanmanNT, ServerNT) strOSProdType = objWshShell.RegRead( _ "HKLM\System\CurrentControlSet\Control\ProductOptions\ProductType") 'Get computer name If IsTerminalServerSession = True Then 'Set strWorkstation to the real name and not the name of the server strWorkstation = objWshShell.ExpandEnvironmentStrings( "%CLIENTNAME%" ) Else strWorkstation = objWshNetwork.ComputerName End If 'Get the path to the location from where the script is running strLogonPath = Left( Wscript.ScriptFullName, _ ( InstrRev( Wscript.ScriptFullName, "\") -1)) End Sub ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' ' Function: IsTerminalServer ' ' Purpose: Determine if the script is running in a terminal server session ' ' Input: ' ' Output: ' True if running in a terminal server session ' False if not running in a terminal server session ' Usage: ' If IsTerminalServerSession = True Then <Do Something> ' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Private Function IsTerminalServerSession On Error Resume Next Dim strName 'Detect if this is a terminal server session 'If it is, set some names to the terminal server client name strName = objWshShell.ExpandEnvironmentStrings( "%CLIENTNAME%" ) If strName <> "%CLIENTNAME%" AND strName <> "" Then _ IsTerminalServerSession = True End Function ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' ' Sub: Cleanup ' ' Purpose: Release common objects and exit script ' ' Input: ' ' Output: ' ' Usage: Call Cleanup ' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Sub Cleanup On Error Resume Next Set objFileSys = Nothing Set objWshNetwork = Nothing Set objWshShell = Nothing Set objIntExplorer = Nothing 'Exit script Wscript.Quit() End Sub |
------- Отправлено: 17:32, 21-03-2007 | #6 |
Ветеран Сообщения: 4900
|
Профиль | Сайт | Отправить PM | Цитировать Достаточно двух строк.
net use W: /delete /yes net use W: \\server\share Butunin Klim Не стОит копировать содержание Ваших скриптов с названиями Ваших программ, дабы не сбивать человека с толку. dimich22 Приведенный Вами скрипт выполняет слишком много функций, не нужных автору темы. |
------- Отправлено: 17:57, 21-03-2007 | #7 |
Ветеран Сообщения: 1482
|
Профиль | Отправить PM | Цитировать monkkey
Согласен. Еще вчера подумал когда человек ответ дал. |
------- Отправлено: 09:07, 22-03-2007 | #8 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать Сам вопрос задал сам отвечу.
'====================================================================== Set objWshNetwork = CreateObject( "WScript.Network" ) 'Создание объекта WshNetwork Function MapDrv(DrvLet, UNCPath) 'функция подключения сетевого диска Dim objFSO Dim Drive Set objFSO = CreateObject("Scripting.FileSystemObject") 'Создание объекта FileSystemObject If objFSO.DriveExists(DrvLet) Then objWshNetwork.RemoveNetworkDrive DrvLet,true, true 'происходит дисконнект диска Z End If WScript.Sleep 100 'пауза objWshNetwork.MapNetworkDrive DrvLet, UNCPath 'Подсключение указанного диска с именем DrvLet и с сетевым путем UNCPath End Function MapDrv "Z:", "\\Имя сервера\имя шары" 'Вызов функции маппирования с заданными параметрами Теперь вопрос: "Могу я создать несколько скриптов с разными шарами и на каждый Organizational Unit привязать свой?" Если такое возможно то расскажите пожалуйста по подробнее как. С уважением, Lamer-1. |
Отправлено: 10:11, 22-03-2007 | #9 |
Ветеран Сообщения: 1482
|
Профиль | Отправить PM | Цитировать создай политику для каждо OU в свойствах политики укажи выполнение скрипта
|
------- Отправлено: 10:14, 22-03-2007 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - Запуск приложений с сетевых ресурсов | Onmike5 | Microsoft Windows Vista | 3 | 18-02-2009 17:02 | |
Разное - список сетевых ресурсов | Vowan | Microsoft Windows 2000/XP | 1 | 15-05-2008 17:31 | |
Скрытие сетевых ресурсов | IDimon | Сетевые технологии | 3 | 06-12-2005 16:10 | |
Подключение в windows сетевых ресурсов по FTP | Gorych | Microsoft Windows NT/2000/2003 | 5 | 29-11-2005 07:48 | |
Подключение сетевых ресурсов из-под Win'95 | Doubledd | Сетевые технологии | 1 | 17-06-2004 00:34 |
|