Inhibitor
15-07-2009, 11:47
На терминальном сервере часто виснет печать, причина вроде как ясна: кривые драйвера принтеров, но новых нет, стандартные не подходят, а принтера заменить нечем.
Во время зависания спулер остается в состоянии "Работает" и не перезапускается стандартным способом.
В данный момент использую такую схему:
В систему добавляется Generic/Text принтер (печать в файл). Принтер расшаривается (т.к. print /Dимя_принтера не всегда работает корректно).
Для принтера добавляется порт прямой печати в файл:
- "Добавить порт" (Add Port).
- "Порты принтера" (Printer Ports) выделите значение "Локальный порт" (Local Port) и нажмите кнопку "Новый порт" (New Port).
- В окне "Имя порта" (Port Name) введите полное имя файла, в который будет производиться печать, например, "c:\test.print" (без кавычек).
Затем создается cmd файл с проверкой каждые 10 минут по планировщику:
@echo off
print c:\test.txt /D:\\имя_компа\имя_принтера
ping -n 10 127.0.0.1
if not exist c:\test.print net stop spooler & ping -n 30 127.0.0.1 & net start spooler
if exist c:\test.print del /Q c:\test.print
Где test.txt - любой текстовый файл (пара символов внутри).
ping - используется вместо sleep.exe (который есть не у всех).
Вроде как работает. Но хочется что-то покрасивее, кто как решает эту проблему? (screwdrivers и citrix не предлагать :)
Во время зависания спулер остается в состоянии "Работает" и не перезапускается стандартным способом.
В данный момент использую такую схему:
В систему добавляется Generic/Text принтер (печать в файл). Принтер расшаривается (т.к. print /Dимя_принтера не всегда работает корректно).
Для принтера добавляется порт прямой печати в файл:
- "Добавить порт" (Add Port).
- "Порты принтера" (Printer Ports) выделите значение "Локальный порт" (Local Port) и нажмите кнопку "Новый порт" (New Port).
- В окне "Имя порта" (Port Name) введите полное имя файла, в который будет производиться печать, например, "c:\test.print" (без кавычек).
Затем создается cmd файл с проверкой каждые 10 минут по планировщику:
@echo off
print c:\test.txt /D:\\имя_компа\имя_принтера
ping -n 10 127.0.0.1
if not exist c:\test.print net stop spooler & ping -n 30 127.0.0.1 & net start spooler
if exist c:\test.print del /Q c:\test.print
Где test.txt - любой текстовый файл (пара символов внутри).
ping - используется вместо sleep.exe (который есть не у всех).
Вроде как работает. Но хочется что-то покрасивее, кто как решает эту проблему? (screwdrivers и citrix не предлагать :)