|
Компьютерный форум OSzone.net » Серверные продукты Microsoft » Microsoft Windows NT/2000/2003 » Folder Redirection VS Roaming Profiles |
|
Folder Redirection VS Roaming Profiles
|
Новый участник Сообщения: 11 |
Какую технологию для централизованного хранения данных пользователей Вы используете?
Сам на данный момент использую только Folder Redirection, но с толкнулся с проблематикой при перенаправлении почты пользователей на сервер. Централизованно групповыми политиками сделать это нельзя, скриптами тоже проблематично (клиенты у всех разные), даже настраивая каждый клиент отдельно, ручками, не все они корректно воспринимают хранение почтовой базы на сетевом ресурсе. Поэтому начал думать о перемещаемых профилях, которые "потянут" эту базу за собой. Но на вскидку есть как минимум одна проблема: большой объём почты, а значит на том же Outlook Express, где сообщения хранятся в едином файле *.dbx, он может достигать до 2ГБ только для входящих, а есть ещё и sent + удаленные. То есть, если пользователь вовремя своей сессии, скажем получил письмо, то при logoff 2-ух гигобайтный файл будет по новой "лететь" на сервер. Собственно хотелось бы знать как у других и почему именно так? |
|
Отправлено: 11:52, 23-12-2010 |
Пользователь Сообщения: 92
|
Профиль | Отправить PM | Цитировать Redirection + домашний каталог, подключаемый диском.
Цитата LinkIn:
Цитата LinkIn:
Цитата LinkIn:
Цитата LinkIn:
Веть помимо рабочих станций, есть большое количество терминальных серверов, при чем на некоторых пользователи ограничены лишь запуском, какого-то приложения и "тянуть" за собой профиль нет смысла. Кроме того бывает профили блокируются и пользователи получают мерзкие окошки с сообщением об использовании дефолтного. Была еще проблема подключения принтеров. Нет желания настраивать их в 125 местах ... логон скрипты, читают из домашнего каталога конфигурационный файл, где написано какие принтеры подключать, какой будет дефолтным, какие сетевые ресурсы подключать и т.д. Фактически в профиле не остается ни какой полезной информации, которая может понадобиться на другом сервере или рабочей станции. |
||||
Отправлено: 14:50, 23-12-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать Цитата:
|
|
Отправлено: 22:14, 24-12-2010 | #3 |
Пользователь Сообщения: 92
|
Профиль | Отправить PM | Цитировать Цитата LinkIn:
В плане почты у нас нет корп стандарта. Более того, аутлук, у нас считается не обслуживаемым. Например, при умирании, от слишком большого количества почты (бывает и по 5-7К писем, при чем часто все реально полезное) мы лишь пожимаем плечами и советует зэ бат, если отказываются, ни делаем ни чего )) Не правильно конечно, но за 6 лет что я здесь работаю, проблем с мышкой не было ни разу, а аутлук, порядочно поднадоел. Особенно не понятно что делать с секретарями, которые обязаны хранить входящую почту 10 лет. Аутлук такого извращения не вытягивает, а хранить архивы отдельно они не желают. Ну и соответственно, для аутлуков ни чего нет, все руки не доходят сделать автоматом, ребята (аникейщики) перенаправляют руками. Сама мышка устанавливается сразу настроенной так, как нужно, в том числе с дэфолтным путем к почтовой базе на диск U:\mail\TheBat, но без подключения ящиков. Они подключаются логон скриптами, у каждого пользователя в домашнем каталоге лежит конфигурационный файл, где в секции mail указаны ящики, которые нужно подключать. Если такого еще не было, не важно по каким причинам, то делается вручную, но поскольку место хранение почты уже "перенаправлено", то работает обычный мастер далее-далее-далее... По идее ребята должны в конфиг написать ящик для подключения, но бывает забывают.. или забивают. Вот пример. У меня дома, к сожалению, есть только старые версии, почты здесь нет, но сделано точно также, есть дополнительная секция для подключения почты....+ для всего этого написана вэб-морда, таким образом не надо скакать по каталогам и менять конфиг, все делается через нее, и логи ошибок смотрится и параметры задаются... хотя некоторые ребята предпочитают в ручную конфиг править, но это кому как удобно...: Logon.cfg #Каминтарием считаются строчки начинающиеся с (Space # =) #Если секция не используется нужно удалить или закомментировать #в ней все параметры или удалить секцию полностью. ==[Log]=========================================== #Отключение ведения лога LogLevel=Off #Ведение лога ошибок LogLevel=Error #Ведение полного лога LogLevel=Full #------------------------------------------------- #Перезапись лога при каждом выполнении скрипта LogReWrite = On #Перезапись лога каждый день LogReWrite = 1 #Перезапись лога каждые ХХ дней LogReWrite = ХХ #Перезапись лога запрещена LogReWrite = Off #------------------------------------------------- LogLevel=ERROR LogPath=U:\Logon.log LogReWrite=7 ==[Network Printers]============================== #Подключение сетевых принтеров: Printer=\\Server\Printer #------------------------------------------------- #Установка принтера по умолчанию: DefaultPrinter=\\Server\Printer #Оставитьт принтер без изменени: DefaultPrinter= #------------------------------------------------- Printer=\\PS\ZUK311-HPLJ2300 DefaultPrinter=\\PS\ZUK311-HPLJ2300 ==[Map Network Drive]============================= #Подключение сетевых дисков #Имя диска: NetworkDriveName=X: #Сетевой путь: NetworkDrivePath=\\Server\Folder #------------------------------------------------- ==[Run External Script]============================= #Запуск внешних скриптов #Путь: ExternalScript=X:\Script.bat #Сетевой путь: ExternalScript=\\Server\Folder\Script.vbs #------------------------------------------------- LogonMAIN.vbs '=============================================================== ' Имя : LogonMAIN.vbs ' Язык : VBScript ' Создан : 05.03.2008г ' Изменен : 07.10.2009г ' Описание: Логон скрипт для подключение сетевых принтеров, ' установки принтеров по умолчанию, сетевых дисков ' и запуска дополнительных внешних скриптов. ' OS Ver : Win98, Win2k, WinXP, Win2k3 '=============================================================== Option Explicit ' Объявляем переменные Public WshNetwork Public NetPrinter Public WshShell Public FSO Public File Public i Public LoadAllFile Public LoadAllFile_Line Public Conf_Split, Conf_Total Public Printer(), TotalPrinters Public DefaultPrinter Public NetworkDriveName(), TotalNetworkDriveName Public NetworkDrivePath(), TotalNetworkDrivePath Public PathExternalScript(), TotalPathExternalScript Public LogPath, LogReWrite, LogLevel Public LogMessage() Public Const ForReading = 1, ForWriting = 2, ForAppending = 8 Public SpaceLogMessage Public SpaceNow Public SpaceLogLevel Public SpaceLogReWrite '==[MAIN]======================================================= 'Первоначальное определение переменных Init() 'Проверяем подключен ли Диск на котором находится конфиг и лог файлы If (FSO.DriveExists(FSO.GetDriveName(LogPath))) Then 'Проверяем наличие файла настроек If (FSO.FileExists("U:\Logon.cfg")) Then If LoadConfig() = "Ok" Then 'Открываем лог файл OpenLogFile() 'Мапируем принтеры AddPrinters() 'Устанавливаем принтер по умолчанию SetDefaultPrinters() 'Мапируем сетевые диски If TotalNetworkDriveName = TotalNetworkDrivePath Then MapNetworkDrives() Else File.WriteLine(LogMessage(22)) File.WriteLine(LogMessage(23)) End if 'Запуск внешних скриптов RunExternalScripts() 'Закрываем лог файл CloseLogFile() Else 'Открываем лог файл OpenLogFile() File.WriteLine(LogMessage(8)) 'Закрываем лог файл CloseLogFile() End if Else 'Открываем лог файл OpenLogFile() File.WriteLine(LogMessage(7)) 'Закрываем лог файл CloseLogFile() End if End if '==[END MAIN]=================================================== '========================================================================== '========================================================================== '========================================================================== '============================== Ф У Н К Ц И И ============================= Function Init() 'Первоначальное определение переменных 'Создание Объектов Set FSO = CreateObject("Scripting.FileSystemObject") ' Создаем объект SFO Set WshNetwork = CreateObject("WScript.Network") ' Создаем объект WshNetwork Set WshShell = CreateObject("WScript.Shell") ' Создаем объект WshShell Conf_Total = 0 TotalPrinters = 0 TotalNetworkDriveName = 0 TotalNetworkDrivePath = 0 TotalPathExternalScript = 0 LogPath = "U:\Logon.log" LogReWrite = "ON" LogLevel = "ERROR" ReDim LogMessage(28) LogMessage(0) = " inf Регистрация произведена на: " LogMessage(1) = " inf Версия ОС: " LogMessage(2) = " Подключен принтер: " LogMessage(3) = "[ERROR] Не удалось подключить принтер: " LogMessage(4) = " Установлен принтер по умолчанию: " LogMessage(5) = "Неизменен" LogMessage(6) = "[ERROR] Не удалось установить принтер по умолчанию: " LogMessage(7) = "[ERROR] Файл настроек не найден" LogMessage(8) = "[ERROR] Ошибка чтения конфигурационного файла" LogMessage(9) = "Завершение работы: " LogMessage(10) = "===================================================================================================" LogMessage(11) = " ====> Имя принтера задано неверно или он не доступен." LogMessage(12) = " ====> Неизвестная ошибка." LogMessage(13) = " ====> Принтер с таким именем отсутсвует." LogMessage(14) = " ====> Automation error. The remote procedure call failed." LogMessage(15) = " ====> Удаленная машина не существует или не доступна." LogMessage(16) = " Подключен сетевой диск: " LogMessage(17) = "[ERROR] Не удалось подключить сетевой диск: " LogMessage(18) = " Подключение сетевого диска прервано: " LogMessage(19) = " ====> Такой сетевой диск уже существует." LogMessage(20) = " ====> Локальное имя устройства уже используется для подключения к другому сетевому ресурсу." LogMessage(21) = " ====> Сетевой путь не существует или не доступен." LogMessage(22) = " ====> Сетевой путь не указан." LogMessage(23) = " ====> Указано неверное имя устройства." LogMessage(24) = "[ERROR] Подключение сетевых дисков не возможно из-за ошибок в настройках. Файл Logon.cfg раздел [Map Network Drive]." LogMessage(25) = " ====> Количество имен сетевых дисков отличается от количества сетевых путей." LogMessage(26) = " Запушен внешний скрипт: " LogMessage(27) = "[ERROR] Не удалось запустить внешний скрипт: " LogMessage(28) = " ====> Не удалось найти указанный файл." End function '========================================================================== '========================================================================== Function OSVersion() 'Функция для получения версии ОС Dim OStype Dim OSver Dim OSsp On Error Resume Next OStype = WshShell.RegRead("HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions\ProductType") If Err.Number<>0 Then ' OS 9x OSver = WshShell.RegRead("HKLM\Software\Microsoft\Windows\CurrentVersion\ProductName") OSsp = WshShell.RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\VersionNumber") Else ' OS NT OSver = WshShell.RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName") OSsp = WshShell.RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\CSDVersion") If Err.Number<>0 Then GetOsVersion = "Unknown NTx" Exit Function End If End If OSVersion = OSver & " (" & OSsp & ")" End function '========================================================================== '========================================================================== Function LoadConfig() 'Функция для загрузки конфигурации On Error Resume Next Err.Clear 'Читаем настройки принтеров Set File = FSO.OpenTextFile("U:\Logon.cfg", ForReading, false) LoadAllFile = File.ReadAll File.Close LoadAllFile_Line = Split(LoadAllFile, chr(13) & chr(10), -1, 1) 'Обработка загруженной конфигурации For i = 0 to Ubound(LoadAllFile_Line) If Left(LoadAllFile_Line(i), 1) <> Empty Then If Left(LoadAllFile_Line(i), 1) <> "#" Then If Left(LoadAllFile_Line(i), 1) <> "=" Then If Left(LoadAllFile_Line(i), 1) <> " " Then Conf_Split = Split(Replace(LoadAllFile_Line(i), chr(9), ""), "=", -1, 1) Conf_Split(0) = Trim(Conf_Split(0)) Conf_Split(1) = Trim(Conf_Split(1)) If Conf_Split(0) = "LogPath" Then LogPath = Conf_Split(1) If Conf_Split(0) = "LogReWrite" Then LogReWrite = UCase(Conf_Split(1)) If Conf_Split(0) = "LogLevel" Then LogLevel = UCase(Conf_Split(1)) If Conf_Split(0) = "Printer" Then ReDim Preserve Printer(TotalPrinters) Printer(TotalPrinters) = Conf_Split(1) TotalPrinters = TotalPrinters + 1 End If If Conf_Split(0) = "DefaultPrinter" Then DefaultPrinter = Conf_Split(1) If Conf_Split(0) = "NetworkDriveName" Then ReDim Preserve NetworkDriveName(TotalNetworkDriveName) NetworkDriveName(TotalNetworkDriveName) = Conf_Split(1) TotalNetworkDriveName = TotalNetworkDriveName + 1 End If If Conf_Split(0) = "NetworkDrivePath" Then ReDim Preserve NetworkDrivePath(TotalNetworkDrivePath) NetworkDrivePath(TotalNetworkDrivePath) = Conf_Split(1) TotalNetworkDrivePath = TotalNetworkDrivePath + 1 End If If Conf_Split(0) = "ExternalScript" Then ReDim Preserve PathExternalScript(TotalPathExternalScript) PathExternalScript(TotalPathExternalScript) = Conf_Split(1) TotalPathExternalScript = TotalPathExternalScript + 1 End If End If End If End If End If Next LoadConfig = "Ok" If Err.Number <> 0 Then LoadConfig = "Error" End function '========================================================================== '========================================================================== Function OpenLogFile() 'Функция для открытия лог файла On Error Resume Next If LogPath = Empty Then LogLevel = "OFF" If LogLevel <> "OFF" Then Select Case LogReWrite Case "ON" 'Ведение лога включенно и необходима перезапись лога при каздом выполнении скрипта Set File = FSO.OpenTextFile(LogPath, ForWriting, true) If Err.Number <> 0 Then MsgBox ("Источник: Logon Script" & chr(13) & chr(13) & _ "Ошибка: Ошибка создания LOG файла." & chr(13) & _ "Причина: Отсутствует доступ к домашнему каталогу пользователя" & chr(13) & _ " или у него нет прав на запись.") Err.Clear End If Case "OFF" 'Ведение лога включенно и перезапись лога запрешена Set File = FSO.OpenTextFile(LogPath, ForAppending, true) If Err.Number <> 0 Then MsgBox ("Источник: Logon Script" & chr(13) & chr(13) & _ "Ошибка: Ошибка открытия LOG файла." & chr(13) & _ "Причина: Отсутствует доступ к домашнему каталогу пользователя" & chr(13) & _ " или у него нет прав на запись.") Err.Clear End If Case Else 'Ведение лога включенно и необходима перезапись через каждые ХХ дней 'Считываем весь лог файл Dim LogFile Dim SplitLogFile Dim LogData Dim SearchData Dim LogFile_Size If (FSO.FileExists(LogPath)) Then Set File = FSO.GetFile(LogPath) LogFile_Size = File.Size Set File = Nothing LogFile = "" If LogFile_Size > 0 Then Set File = FSO.OpenTextFile(LogPath, ForReading, false) LogFile = File.ReadAll File.Close End If Set File = Nothing End if 'Создаем пустой лог файл Set File = FSO.OpenTextFile(LogPath, ForWriting, true) 'Разбираем все сообщения лога SplitLogFile = Split(LogFile, "===============::: ", -1, 1) 'Пересобираем лог удаляя устаревшие записи For SearchData = 1 to Ubound(SplitLogFile) LogData = cDate(Left(SplitLogFile(SearchData),10)) if LogData >= Date - LogReWrite Then File.WriteLine("===============::: " & Left(SplitLogFile(SearchData), len(SplitLogFile(SearchData))-2)) End if Next End Select SpaceNow = 19-Len(Now): If SpaceNow < 0 Then SpaceNow = 0 SpaceLogLevel = 5-Len(LogLevel): If SpaceLogLevel < 0 Then SpaceLogLevel = 0 SpaceLogReWrite = 3-Len(LogReWrite): If SpaceLogReWrite < 0 Then SpaceLogReWrite = 0 File.WriteLine("===============::: " & Now & Space(SpaceNow) & " ::: Log " & Space(SpaceLogLevel) & "[" & LogLevel & "] ::: Перезапись лога " & Space(SpaceLogReWrite) & "[" & LogReWrite & "] :::===============" & chr(13) & chr(10)) File.WriteLine(LogMessage(0) & WshNetwork.ComputerName) File.WriteLine(LogMessage(1) & OSVersion()) End if If Err.Number <> 0 Then MsgBox ("Источник: Logon Script" & chr(13) & chr(13) & _ "Ошибка: Неизвестная ошибка работы с LOG файлом." & chr(13) & _ "Причина: Отсутствует доступ к домашнему каталогу пользователя" & chr(13) & _ " или у него нет прав на запись.") Err.Clear End If End function '========================================================================== '========================================================================== Function CloseLogFile() 'Функция для закрытия лог файла 'Закрываем лог If LogLevel <> "OFF" Then File.WriteLine(chr(13) & chr(10) & LogMessage(9) & Now) File.WriteLine(LogMessage(10)) File.close Set File = Nothing End If End function '========================================================================== '========================================================================== Function AddPrinters() 'Функция для мапирования сетевых принтеров 'Подключаем сетевой принтер For i = 0 to TotalPrinters -1 AddPrinter (Printer(i)) If LogLevel <> "OFF" Then If Err.Number = 0 and LogLevel = "FULL" Then File.WriteLine(LogMessage(2) & Printer(i)) Else If Err.Number <> 0 Then File.WriteLine(LogMessage(3) & Printer(i)) Select Case Err.Number Case "-2147023095" File.WriteLine(LogMessage(11)) 'Имя принтера задано неверно Case "-2147023170" File.WriteLine(LogMessage(14)) Case "462" File.WriteLine(LogMessage(15)) Case Else SpaceLogMessage = 81-Len(LogMessage(12)): If SpaceLogMessage < 0 Then SpaceLogMessage = 0 File.WriteLine(LogMessage(12)) & Space(SpaceLogMessage) & "[Err: " & Err.Number & "]" End Select End if End if End if Err.Clear Next End function '========================================================================== '========================================================================== Function AddPrinter(Printer) On Error Resume Next Err.Clear WshNetwork.AddWindowsPrinterConnection Printer End function '========================================================================== '========================================================================== Function SetDefaultPrinters() 'Функция для установки принтера по умолчанию 'Назначаем принтер по умолчанию If DefaultPrinter <> Empty Then SetDefaultPrinter(DefaultPrinter) If LogLevel <> "OFF" Then If Err.Number = 0 and LogLevel = "FULL" Then File.WriteLine(LogMessage(4) & DefaultPrinter) Else If Err.Number <> 0 Then File.WriteLine(LogMessage(6) & DefaultPrinter) Select Case Err.Number Case "-2147352567" File.WriteLine(LogMessage(13)) 'Принтер с таким именем отсутсвует Case Else SpaceLogMessage = 81-Len(LogMessage(12)): If SpaceLogMessage < 0 Then SpaceLogMessage = 0 File.WriteLine(LogMessage(12)) & Space(SpaceLogMessage) & "[Err: " & Err.Number & "]" End Select End if End if End if Err.Clear Else If LogLevel = "FULL" Then File.WriteLine(LogMessage(4) & LogMessage(5)) End If End function '========================================================================== '========================================================================== Function SetDefaultPrinter(Printer) On Error Resume Next Err.Clear WshNetwork.SetDefaultPrinter Printer End function '========================================================================== '========================================================================== Function MapNetworkDrives() 'Функция для мапирования сетевых дисков 'Подключаем сетевые диски For i = 0 to TotalNetworkDriveName -1 If NetworkDriveName(i) = Empty Then NetworkDriveName(i) = " " MapNetworkDrive(i) If LogLevel <> "OFF" Then If Err.Number = 0 and LogLevel = "FULL" Then File.WriteLine(LogMessage(16) & NetworkDriveName(i) & " на " & NetworkDrivePath(i)) Else If Err.Number <> 0 Then Select Case Err.Number Case "-2147024811" If LogLevel = "FULL" Then File.WriteLine(LogMessage(18) & NetworkDriveName(i) & " на " & NetworkDrivePath(i)) File.WriteLine(LogMessage(19)) 'Такой сетевой диск уже существует End if Case "-2147023694" File.WriteLine(LogMessage(17) & NetworkDriveName(i) & " на " & NetworkDrivePath(i)) File.WriteLine(LogMessage(20)) 'Локальное имя устройства уже используется для подключения к другому сетевому ресурсу Case "-2147023693" File.WriteLine(LogMessage(17) & NetworkDriveName(i) & " на " & NetworkDrivePath(i)) File.WriteLine(LogMessage(21)) 'Сетевой путь не существует или не доступен Case "-2147024829" File.WriteLine(LogMessage(17) & NetworkDriveName(i) & " на " & NetworkDrivePath(i)) File.WriteLine(LogMessage(22)) 'Сетевой путь не указан Case "-2147023696" File.WriteLine(LogMessage(17) & NetworkDriveName(i) & " на " & NetworkDrivePath(i)) File.WriteLine(LogMessage(23)) 'Указано неверное имя устройства Case Else SpaceLogMessage = 81-Len(LogMessage(12)): If SpaceLogMessage < 0 Then SpaceLogMessage = 0 File.WriteLine(LogMessage(12)) & Space(SpaceLogMessage) & "[Err: " & Err.Number & "]" End Select End if End if End if Err.Clear Next End function '========================================================================== '========================================================================== Function MapNetworkDrive(Number) On Error Resume Next Err.Clear WshNetwork.MapNetworkDrive NetworkDriveName(Number), NetworkDrivePath(Number), "true" End function '========================================================================== '========================================================================== Function RunExternalScripts() 'Запускаем внешнии скрипты For i = 0 to TotalPathExternalScript -1 RunExternalScript(i) If LogLevel <> "OFF" Then If Err.Number = 0 and LogLevel = "FULL" Then File.WriteLine(LogMessage(26) & PathExternalScript(i)) Else If Err.Number <> 0 Then File.WriteLine(LogMessage(27) & PathExternalScript(i)) Select Case Err.Number Case "-2147024894" File.WriteLine(LogMessage(28)) 'Не удалось найти указанный файл. Case Else SpaceLogMessage = 81-Len(LogMessage(12)): If SpaceLogMessage < 0 Then SpaceLogMessage = 0 File.WriteLine(LogMessage(12)) & Space(SpaceLogMessage) & "[Err: " & Err.Number & "]" End Select End if End if End if Err.Clear Next End function '========================================================================== '========================================================================== Function RunExternalScript(Number) On Error Resume Next Err.Clear WshShell.Run PathExternalScript(Number), 0, False End function '========================================================================== '========================================================================== если доберусь до работы и в суете не забуду, то вставлю код с обработкой подключения ящиков. но там все просто, фактически нужно просто загнать в реестр немного буковок... |
|
Последний раз редактировалось AkP, 27-12-2010 в 05:59. Отправлено: 05:52, 27-12-2010 | #4 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Вопрос по folder redirection | XXXandr | Microsoft Windows NT/2000/2003 | 7 | 26-04-2010 09:23 | |
Прочее - Ethernet Realtek & roaming profiles. | DIMOND | Сетевое оборудование | 10 | 07-11-2009 00:30 | |
2008 - Перенаправление папок (Folder redirection) | Diver1 | Windows Server 2008/2008 R2 | 4 | 01-09-2009 13:47 | |
GP в домене 2003 (нюанс с folder redirection) | RA_Dragun | Microsoft Windows NT/2000/2003 | 1 | 10-12-2007 09:40 | |
Samba + roaming profiles | EndErr | Общий по Linux | 2 | 02-03-2007 10:30 |
|