Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Windows Server 2008/2008 R2 (http://forum.oszone.net/forumdisplay.php?f=97)
-   -   "Прибить" сеанс (http://forum.oszone.net/showthread.php?t=170432)

ultrakiller 17-03-2010 15:58 1370766

"Прибить" сеанс
 
Есть такая проблема: некоторый файл на сервере постоянно обновляется некоторым пользователям. Этот файл используют очень часто и у некоторых нехорошая привычка оставлять открытым этот файл. Естественно этот сеанс висит, и перезаписать файл невозможно. Каждый раз убивать руками сеанс немного надоело.. Как это можно сделать или батником или как вообще это реализовать

Michael 17-03-2010 21:20 1371006

Посмотрите команду net files - http://support.microsoft.com/kb/290585 (правда прибивает все открытые файлы) и openfiles /disconnect
P.S. Есть еще один вариант, направленные на приучение к закрытию файла, но он довольно таки жесткий - TASKKILL /S комп_забывчивого_сотрудника /IM имя_приложения_открывающего_файл, жесткий потому, что если в
том приложении открыты еще файлы, отредактированны и не сохранены, то сохраненными им уже не быть

Angry Demon 18-03-2010 10:30 1371329

Цитата:

Цитата ultrakiller
Как это можно сделать или батником или как вообще это реализовать

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

ultrakiller 18-03-2010 12:41 1371447

Цитата:

Цитата Angry Demon
unlocker может управляться и снимать блокровку из командной строки. »

А как хорошо это работает в Windows server r2 (x64).
в Faq написано:

Цитата:

Работает ли Unlocker с Windows XP 64 или Vista 64? Нет. Однако автор активно работает над этим вопросом.
Цитата:

Цитата Michael
Посмотрите команду net files »

Команда хороша, но когда открыт файл у нескольких людей (а машина КД), прибить все - это равносильно самоубийству.
Там очень длинные id, у меня получается что почти еже ежесекундно открыто больше 100 сессий :(.

Цитата:

Цитата Michael
openfiles /disconnect »

Это мне понравилось, в принципе удобно:
Код:

openfiles /disconnect /OP "d:\Share\test.pdf" /a *
Код:

for /f "tokens=2,7 delims=," %%a in ('openfiles /query /v /fo csv /nh') do @if /I "%%~b" == "d:\share\test.pdf" net file %%~a /close
Цитата:

Цитата Michael
TASKKILL /S »

Это очень жестоко

Michael 19-03-2010 00:13 1371934

Цитата:

Цитата ultrakiller
Цитата Michael:
TASKKILL /S »
Это очень жестоко »

Не, на самом деле очень жесто было бы использовать
shutdown /r /m \\PC_Name /t 000
:)

Есть еще один вариант.
Убираете файл test.pdf с шары вообще, например в папку d:\NO_share\test.pdf, а вместо него кладете cmd-скрипт с именем"Открыть файл test.pdf", в котором прописываете
Код:

echo off
xcopy /y \\Server\D$\No_share\test.pdf %temp%
start %temp%\test.pdf

В итоге вы получаете файл, который почти всегда свободен

ultrakiller 22-03-2010 12:17 1374362

Есть маленькое но, этот файл обновляю не я, а человек не имеющих админских прав для D$. В его шаре для публикаций...
Но вообще гут...

Michael 22-03-2010 18:53 1374677

Цитата:

Цитата ultrakiller
файл обновляю не я, а человек не имеющих админских прав для D$ »

Хорошо.
Пусть требуемый файл test.pdf лежит в корне сетевого диска Z:\, читать его будет пользователь (или группа пользователей) dostup.
Создаем в корне диска Z:\ папку No_Share, в ней - подпапку File, в папке File будет храниться и обновляться test.pdf.
Пропишем права следующим образом:
- папка No_Share
-- пользователь dostup - явный полный запрет, остальные пользователи (или группы пользователей) - на ваше усмотрение (не забудьте про пользователя, обновляющего файл)
- папка File
-- удаляете явный запрет и прописываете разрешение на чтение для пользователя dostup (вот тут у меня у самого возник вопрос - вроде как у запрета приоритет выше чем у разрешения, но при этом просто добавив полный доступ к папке File, не удаляя полный запрет, у меня почему-то все заработало).
В корень диска Z:\ добавляете cmd-файл
Код:

echo off
copy /y no_share\file\test.pdf %temp%
start %temp%\test.pdf

В итоге пользователи запустив этот батник получат требуемый файл, но при этом не могут войти в папку No_Share и занять файл test.pdf (хотя конечно особо прошаренные это смогут сделать, но зачем им это), а вы получаете практически всегда свободный для обновления файл


Время: 16:31.

Время: 16:31.
© OSzone.net 2001-