Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Серверные продукты Microsoft » Microsoft Windows NT/2000/2003 » Пропадает доступ к общей папке на съемном диске

Ответить
Настройки темы
Пропадает доступ к общей папке на съемном диске

Новый участник


Сообщения: 21
Благодарности: 3

Профиль | Отправить PM | Цитировать


Server 2003, есть съемный USB винт, на нем зашарена папка. Используется только для чтения. Кэширование отключено (т.е. по идее можно в любое время винт выдергивать - это же для этого настройка?). Если винт выдергивается и вставляется снова, общая папка перестает работать, т.е. она есть, показывается как общая, но при заходе через сеть даже с самого сервера проводник просто показывает пустую папку, т.е. даже ошибку не выдает. Спасает только перешаривание папки. Если делать "безопасное извлечение" винта, то вроде бы все нормально. Но делать это некому (т.е. приходит человек, выдергивает винт, вставляет новый и уходит, консольного логина у него нет). Вот чего бы такое придумать чтобы все работало само? Самозашаривающий авторан на винт не прокатит, его содержимое я не контролирую. Да и не сработает он без залогиненной консоли.

Отправлено: 00:00, 18-01-2008

 

Аватара для madmax24

Ветеран


Сообщения: 1190
Благодарности: 114

Профиль | Отправить PM | Цитировать


Цитата panda34:
Вот чего бы такое придумать »
А много народу проводят такую операцию? Может для облегчения своей жизни стоит просто один раз научить всех и показать как это делать, типа безопасное отключение? Нагнать страху, что мол если так делать не будите, то ОС рано или поздно свалится...

-------
Я закончил, все свободны.


Отправлено: 09:14, 18-01-2008 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.

HLT HLT вне форума

Ветеран


Сообщения: 788
Благодарности: 130

Профиль | Отправить PM | Цитировать


Нашел скрипт по раздаче прав на шару и каталог.
Настроить на сервере запуск (хоть каждую минуту) от имени LocalSystem (например, через АТ) или от администратора .CMD-шника, который будет проверять, работает ли шара:

Код: Выделить весь код
rem предположим, что у нас расшаривается каталог d:\shared с именем shared

rem если шара видна - всё ok, ничего не делаем
if exists \\server\shared\*.* goto end

rem если локально ничего не видно, значит пустой каталог или нет диска, ничего не делаем
if NOT exists d:\shared\*.* goto end

rem пересоздаем шару
net share shared /delete
start ShareSetup.vbs

:end

Вот, собственно, сам скрипт - модифицировать по вкусу

Код: Выделить весь код
'======================================================= 
'======================================================= 
'ShareSetup.vbs 
'Author: Jonathan Warnken - jon.warnken@gmail.com 
'Credits: parts of various other posted scripts used 
'Requirements: Admin Rights 

'Some Addition Lev Shumskii aka WildCat 
'Now You may set SecurityDescriptor for NTFS 
'and this script work properly under Win2k & Win2k3 t00 
'======================================================= 
Option Explicit 

Const FILE_SHARE          = 0 
Const MAXIMUM_CONNECTIONS = 15 
Const strDomain           = "CohoVineYards.com" 
Const PERM_READ           = 1179817 
Const PERM_MODIFY         = 1245631 
Const PERM_FULL           = 2032127 


Dim   strComputer 
Dim   objWMIService 
Dim   objNewShare 

strComputer = "." 

Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
Set objNewShare = objWMIService.Get("Win32_Share") 

'Worked Example 
Call sharesec ("C:\Robot", "Robot", "Only Security Department", "Security Department", Perm_Read, Perm_Modify) 

Sub sharesec(Fname, shr, info, account, Share_Perm, NTFS_Perm) 
Dim FSO 
Dim Services 
Dim SecDescClass 
Dim SecDesc 
Dim Trustee 
Dim ACE 
Dim Share 
Dim InParam 
Dim Network 
Dim FolderName 
Dim AdminServer 
Dim ShareName 
Dim FolderSecurity 
Dim RetVal 
Dim SecurityDescriptor 
Dim User 

FolderName  = Fname 
AdminServer = "\\" & strComputer 
ShareName   = shr 

'Write New security descriptor for the FolderName 

Set Services = GetObject("WINMGMTS:{impersonationLevel=impersonate,(Security)}!" & AdminServer & "\ROOT\CIMV2") 
Set SecurityDescriptor = Services.Get("Win32_SecurityDescriptor") 

Set FolderSecurity = GetObject("winmgmts:Win32_LogicalFileSecuritySetting.Path='" & FolderName & "'") 
RetVal = FolderSecurity.GetSecurityDescriptor(SecurityDescriptor) 

Set Trustee = SetGroupTrustee(strDomain, account) 'Use SetGroupTrustee for groups and SetAccountTrustee for users 
Set ACE = Services.Get("Win32_Ace").SpawnInstance_ 
ACE.Properties_.Item("AccessMask") = NTFS_Perm 
ACE.Properties_.Item("AceFlags")   = 3 
ACE.Properties_.Item("AceType")    = 0 
ACE.Properties_.Item("Trustee")    = Trustee 
SecurityDescriptor.Properties_.Item("DACL")   = Array(ACE) 

RetVal = FolderSecurity.SetSecurityDescriptor(SecurityDescriptor) 

'Create new Share 

Set Services     = GetObject("WINMGMTS:{impersonationLevel=impersonate,(Security)}!" & AdminServer & "\ROOT\CIMV2") 
Set SecDescClass = Services.Get("Win32_SecurityDescriptor") 
Set SecDesc      = SecDescClass.SpawnInstance_() 

Set Trustee      = SetGroupTrustee(strDomain, account) 'Use SetGroupTrustee for groups and SetAccountTrustee for users 
Set ACE          = Services.Get("Win32_Ace").SpawnInstance_ 
ACE.Properties_.Item("AccessMask") = Share_Perm 
ACE.Properties_.Item("AceFlags")   = 3 
ACE.Properties_.Item("AceType")    = 0 
ACE.Properties_.Item("Trustee")    = Trustee 
SecDesc.Properties_.Item("DACL")   = Array(ACE) 
Set Share = Services.Get("Win32_Share") 
Set InParam = Share.Methods_("Create").InParameters.SpawnInstance_() 
InParam.Properties_.Item("Access")         = SecDesc 
InParam.Properties_.Item("Description")    = Info 
InParam.Properties_.Item("Name")           = ShareName 
InParam.Properties_.Item("Path")           = FolderName 
InParam.Properties_.Item("MaximumAllowed") = MAXIMUM_CONNECTIONS 
InParam.Properties_.Item("Type")           = 0 
Share.ExecMethod_ "Create", InParam 
End Sub 


Function SetAccountTrustee(strDomain, strName) 
Dim objTrustee 
Dim account 
Dim accountSID 

set objTrustee = getObject("Winmgmts:{impersonationlevel=impersonate}!root/cimv2:Win32_Trustee").Spawninstance_ 
set account    = getObject("Winmgmts:{impersonationlevel=impersonate}!root/cimv2:Win32_Account.Name='" & strName & "',Domain='" & strDomain &"'") 
set accountSID = getObject("Winmgmts:{impersonationlevel=impersonate}!root/cimv2:Win32_SID.SID='" & account.SID &"'") 
objTrustee.Domain = strDomain 
objTrustee.Name   = strName 
objTrustee.Properties_.item("SID") = accountSID.BinaryRepresentation 
set accountSID = nothing 
set account    = nothing 
set SetAccountTrustee = objTrustee 
End Function 


Function SetGroupTrustee(strDomain, strName) 
Dim objTrustee 
Dim account 
Dim accountSID 

set objTrustee = getObject("Winmgmts:{impersonationlevel=impersonate}!root/cimv2:Win32_Trustee").Spawninstance_ 
set account    = getObject("Winmgmts:{impersonationlevel=impersonate}!root/cimv2:Win32_Group.Name='" & strName & "',Domain='" & strDomain &"'") 
set accountSID = getObject("Winmgmts:{impersonationlevel=impersonate}!root/cimv2:Win32_SID.SID='" & account.SID &"'") 
objTrustee.Domain = strDomain 
objTrustee.Name   = strName 
objTrustee.Properties_.item("SID") = accountSID.BinaryRepresentation 
set accountSID = nothing 
set account    = nothing 
set SetGroupTrustee = objTrustee 
End Function

-------
Сообщение помогло? Нажмите внизу ссылку "Полезное сообщение".


Отправлено: 11:38, 18-01-2008 | #3


Старожил


Сообщения: 426
Благодарности: 108

Профиль | Отправить PM | Цитировать


Цитата panda34:
Если делать "безопасное извлечение" винта, то вроде бы все нормально »
Насколько помню, если сделать "Safely remove hardware", то шара(ы) автоматически удаляются и заново не появляются (кроме системных, типа Q$), так что проблемка та еще. Сделать запуск проверки по виндовому планировщику - идея интересная и возможно, что единственно разумная, тем более что я сразу после установки винды убиваю все автозапуски.

В настоящий момент практикую смену 2х бэкапных хардов несколько раз в неделю, шару восстанавливаю батником, правда запускаю ручками. Единственное - бывает, что валятся точки монтирования хардов, поэтому временами приходится перезагружать комп, чтобы коректно подцеплялся хард.

Для пояснения: 1й хард монтируется в папку D:\Mount\BackUp0, а 2й - в D:\Mount\BackUp1, сама шара - "BackUp", права - только доменным админам.


@Echo Off
net share BackUp /delete
set N=~
for %%n in (0 1) do if exist "D:\Mount\BackUp%%n\System Volume Information" Set N=%%n
If %N%==~ GoTo Nothing
net share BackUp=D:\Mount\BackUp%N%
Echo Y | cacls BackUp%N% /T /C /G "domain admins":F
GoTo End
:Nothing
Echo NOTHING TO SHARE!!!
pause>nul
:End

Отправлено: 17:24, 25-01-2008 | #4


Новый участник


Сообщения: 21
Благодарности: 3

Профиль | Отправить PM | Цитировать


Цитата NiOl:
Насколько помню, если сделать "Safely remove hardware", то шара(ы) автоматически удаляются и заново не появляются (кроме системных, типа Q$), так что проблемка та еще. »
Да нет, все нормально появляется. Только пока к шаре подключены пользователи винт не отключается (причем без комментариев, жмешь "Безопасное отключение" - никакого эффекта).

Тогда другой вопрос: как дать пользователю право на перезашаривание папки? В XP я делаю задание планировщика с сохраненным паролем админа и пользователь запускает его батником через schtasks. В сервере на schtasks у пользователей прав нету

Отправлено: 13:48, 24-02-2008 | #5


Старожил


Сообщения: 426
Благодарности: 108

Профиль | Отправить PM | Цитировать


Цитата panda34:
Тогда другой вопрос: как дать пользователю право на перезашаривание папки? В XP я делаю задание планировщика с сохраненным паролем админа и пользователь запускает его батником через schtasks. В сервере на schtasks у пользователей прав нету »
Уточнения:
1. USB-Диск подключается именно на сервер и посторонним челом, которому админские права неположены.
2. Диск всегда один, требуется для работы какой-то проги на серваке и изменить точку монтирования нельзя! Или можно?!! т.е. допустим он всегда монтируется как "E:", но можно и поменять букву, т.к. диск служит только для расшаривания данных группе пользователей, к примеру "\\OurSvr\UpDatedBase\"
3. Диск должен быть доступен в сети практически мгновенно после его физического подключения.

Главный вопрос - жесткая привязка точки монтирования - буква диска. Если на серваке нет никакой проги, у которой стоит привязка к конкретному каталогу на этом съемном диске, или же прогу МОЖНО настроить на другой путь к данным, то рекомендую сделать так:

На каком-нить несъемном диске сервака (но желательно не на "С:") создать каталог, к примеру "D:\USB_Disk" и расшарить его под старым именем, в него смонтировать этот самый диск (правой "My Computer" => "Manage" => "Disk Management" => выбираем USB устройство, правой кнопкой "Change Drive Letter & Paths" => "Change" => "Mount in the following empty NTFS folder" => выбираем тот самый каталог.

Теперь при подключении диска к серваку (если он автоматически найдется) диск мгновенно окажется доступен по сети. Без подключенного диска шара также останется доступна, но! Обращение к ней будет давать ошибку! Это в принципе не страшно - достаточно один раз объяснить пользователям, что такая ошибка означает, что диск не подключен.

И вся проблема.

Отправлено: 21:11, 24-02-2008 | #6


Новый участник


Сообщения: 21
Благодарности: 3

Профиль | Отправить PM | Цитировать


NiOl, Да, про монтирование в папку я уже думал, проблема в том что винт не один, т.е. просто меняется один на другой. Надо выяснить, если их всего два то смонтировать оба в одну папку.
И еще, зашаривать нужно не диск целиком, а папку в корне диска, т.е. "монтировочную" папку на стационарном диске зашарить не получится, а с вложенной папкой, подключаемой на ходу, есть подозрения что будет точно такая же история. Экспериментировать не могу, т.к. сервером управляю через RDP, а команды "выдернуть USB шнур и вставить обратно" там нету

Отправлено: 12:03, 25-02-2008 | #7


Старожил


Сообщения: 426
Благодарности: 108

Профиль | Отправить PM | Цитировать


Тогда только батник, запускаемый на серваке по заданию (твоему) хоть каждые 5 минут. Батник должен проверять доступность шары, и если ее нет, то пытаться подключить. Для Win`03 calcs.exe выполнять нет нужды, права прекрасно прописываются прямо в net share ключем "grand" (кажется). Если будет проблема написать батник - пиши, поможем.
зы: за исходник можешь взять мой батник, но в нем критичный минус для твоей системы - он не проверяет наличия уже созданной шары, а убивает ее и пытается создать заново. Для моего случая это нормально - доступ к шаре осуществляется только ночью, а запуск батника - мной, в ручном режиме.

-------
Как сказало Дерево Дровосеку: "я - пень".


Отправлено: 12:43, 26-02-2008 | #8


Новый участник


Сообщения: 21
Благодарности: 3

Профиль | Отправить PM | Цитировать


Пробовал монтировать в папку, зашаривать диск целиком, зашаривать "монтировочную" папку на локальном диске - пофигу. Если открыты файлы на шаре при отключении диска - после подключения шара не работает. Чего-то там служба сервера все-таки кэширует, зараза.
Короче, написал батник:
Код: Выделить весь код
:m1
if exist \\server\sharedfolder\somefile (
	timeout 60 /nobreak
	goto m1
)
net share sharedfolder /delete /y
:m2
if not exist g:\sharedfolder\somefile (
	timeout 5 /nobreak
	goto m2
)
net share sharedfolder=g:\sharedfolder
timeout 10 /nobreak
goto m1
и запускаю его планировщиком по будним дням с 9 до 17.
Изврат, конечно...

Отправлено: 13:17, 28-02-2008 | #9


Ветеран


Сообщения: 4904
Благодарности: 496

Профиль | Сайт | Отправить PM | Цитировать


panda34,
net stop server
net start server
Будет достаточно после подключения винта заново. Пользователю можно дать права на рестарт службы "Сервер".

-------
Если сообщение оказалось полезным, нажмите, пожалуйста, соответствующую кнопку.


Отправлено: 13:34, 28-02-2008 | #10



Компьютерный форум OSzone.net » Серверные продукты Microsoft » Microsoft Windows NT/2000/2003 » Пропадает доступ к общей папке на съемном диске

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Доступ - [решено] доступ к общей папке ejik_off Microsoft Windows 7 2 11-10-2009 17:50
Доступ - Доступ через сеть к указанной общей папке Makcermakcer Microsoft Windows Vista 0 29-08-2009 23:06
[решено] На съемном USB жестком диске Обнаружено: Net-Worm.Win32.Kido.ih uhuh Лечение систем от вредоносных программ 24 22-04-2009 08:39
Прочее - [решено] Доступ под паролем к общей папке в одноранговой сети sergant138 Microsoft Windows 2000/XP 2 11-01-2008 14:41
Пропадает общий доступ к папке (Win98 SE). Что делать? ramzes80 Microsoft Windows 95/98/Me (архив) 3 13-12-2004 09:15




 
Переход