Печатаем по сети на любом Windows-принтере. Использование XP режима для печати на старом принтере

Привет!
Повторяю вопрос, только на русском, а то что-то задал на английском:)

Есть принтер Canon LBP-810, который работает только на 32 бит ОС.
У меня Win 7-64bit.
Пробую поставить принтер в режиме XP mode. Вот что выходит:
Установил драйвера в XP mode в виртуальном десктопе. Все поставилось, принтер работает и печатает из виртуального десктопа. В диспетчере задач хоста (Win 7) в устройствах появляется неопознанное устройство Canon LBP 810, в свойствах которого вижу USB Virtualization Stub driver. Далее в виртуальном десктопе делаю USB Device / Canon... Release. На хосте смотрю в диспетчере и вижу опять неопзнанное устройство CanonLBP-810, в свойствах которого указано что тип устройства неизвестен и ниже строка USB support for printer - universal usb controller...

Как сделать, чтобы принтер распознался как принтер, ну или чтобы можно было печатать с хоста в seamless mode, а не с виртуального десктопа? Буду очень признателен за помощь. Остальные приложение в seamless XP mode запускаются просто шикарно! Вообще винда отличная, если "побидю" принтер, то цены винде не будет:)

В мануале написано следущее:
If a USB device is not compatible with Win 7, you can still use it in Seamless Mode. To do this, simply attache the device in Desktop Mode. Then when you run your application in Seamless Mode, you will have acess to the device.

Так, тут написано что если мы принтер аттачим к виртуальной машине, и потом запускаем в сайлент режиме ПРИЛОЖЕНИЕ (те имеется ввиду приложение тоже должно стоять в виртуалке?), то типа это приложение будет видеть USB устройство. Но если мне нужно напечатать из приложений ХОСТА на принтере виртуальной машине, драйвер которого не установлен в хосте, то как быть? Нафига мне еще один офис, акробат ридер и тп ставить на виртуалку если все стоит на хост? Легче тогда печатать сначала на хосте на Adobe PDF принтер, а потом уже этот пдф печатать на принтере с виртуалки, поставив туда Acrobat reader. Может конечно я что-то не так понял...

РЕШЕНИЕ
М-да, быстрее самому разобраться, чем дождаться ответа. Отписываюсь по проблеме, может кому-то поможет.
В общем так, сделать так чтобы принтер попал из неопознанных устройств в принтеры невозможно - для этого нужно установить драйвера, а их нет. Т.е. чтобы принтер работал расшареным на обоих машинах - гостевой и хосте, необходимо чтобы под каждую операционку был установлен драйвер, т.к. под Win 7-64 его нет, то это, к сожалению, невозможно. Существует альтернативный вариант, который я выбрал для себя.
Чтобы не ставить приложения в гостевую машину, мы с хоста печатаем на виртуальный принтер в файл, например через PDF Disitiller (Print to PDF), за считанные секунды получаем PDF файл того что мы хотим распечатать. На гостевой машине ставим Adobe Reader, помещаем его ярлык на хост машине на рабочий стол. Открываем файл с помощью этого приложения в seamless mode и печатаем из под этого виртуального приложения на наш принтер. Но, тут есть один ньюанс. Для того чтобы это сделать, в десктопе виртуального приложения необходимо аттачить этот принтер (USB/Printer....Shared/Attach). Только если принтер приаттачен к гостевой системе можно будет печатать в seamless mode с хоста через виртуальное приложение (Adobe Reader). Но проблема в том, что в XP mode нет функции автоматического аттача. По этому поводу уже на фидбеке куча отзывов о необходимости включения этой функции. А т.к. при печате в seamless mode виртуальный десктоп закрывается, то устройство опять теряется, т.е. расшаривается, соответственно приложение не видит принтера (он в списке есть, но напечатать на него нельзя). Получается это противоречит тому что написано в инструкции: "If a USB device is not compatible with Win 7, you can still use it in Seamless Mode. To do this, simply attach the device in Desktop Mode. Then when you run your application in Seamless Mode, you will have acess to the device". Однако баг!
Получается вывод - либо ждать исправление этого бага (добавление функции автоаттача), либо печатать не в seamless mode а с виртуального десктопа (в принципе не сильно это отличается от seamless - просто на один клик больше сделать надо). В общем такие вот дела, надеюсь кому-то мои "мытарства" помогут.

Данная статья является заключительной в серии статей, связанных с развертыванием виртуальных машин в среде Windows 7. В этой статье описываются возможные методы печати из виртуальной машины. Существует несколько способов для того, чтобы сделать принтер доступным на виртуальной машине. На способы, которые можно использовать, воздействуют некоторые факторы: доступен ли драйвер принтера на Windows 7 и подключен ли принтер локально или через сеть. Также можно использовать формат XPS в том случае, если ваш компьютер поддерживает этот метод печати.

Использование локального USB принтера

Внимание!

Этот способ подходит в том случае, если доступны драйвера на обе системы - хостовую систему Windows 7 и гостевую операционную систему. Необходимо только пройти несколько шагов для установки принтера на виртуальную машину. Следующие действия предполагают, что вы уже печатали на принтере, используя хостовую операционную систему.



Убедитесь, что принтер включен и доступен для установки драйверов. Например, можно устанавливать на него драйвера используя CD диск.

  1. Подключите принтер к виртуальной машине. Для этого в окне виртуальной машины нажмите на «USB» , а затем на «Имя_устройства Совместный доступ» .
  2. Установите драйвер принтера на гостевую операционную систему. Вы можете воспользоваться установкой драйвера через Интернет или использовать CD диск.
  3. Отключите принтер от виртуальной машины. Для этого из окна виртуальной машины нажмите на «USB» , а затем на «Имя_устройства Освободить» .
  4. Перезагрузите виртуальную машину. Для этого, из окна виртуальной машины нажмите на «Действие» , а затем на «Перезагрузить» .
  5. Принтер будет доступен на обеих системах, как на хостовой, так и на гостевой.

Настройка сетевого принтера на виртуальной машине

Если вы используете гостевую систему Windows XP, то необходимо вручную установить драйвер для принтера, который будет использоваться.

Установка драйвера для принтера в Windows XP


Печать из виртуальной машины

  1. Перейдите в виртуальную машину и зайдите в учетную запись, если это необходимо (вы авторизируетесь автоматически, если установлена опция, связанная с сохранением пароля).
  2. Сделайте следующее:
    • На рабочем столе в виртуальной машине нажимаем правой кнопкой на файле и выбираем из контекстного меню опцию «Печать»
    • Открываем приложение, у которого доступна опция печати и используем команду печать.
  3. Все принтеры, которые доступны в виртуальной машине есть в списке принтеров. Выбираем нужный принтер и нажимаем на кнопку ОК

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

  • Microsoft XPS Essentials Pack установленный на гостевой операционной системе. Microsoft XPS Essentials Pack можно загрузить по следующей ссылке: Windows Hardware Developer Central site .

  • Виртуальная машина настроена и имеет доступ к дискам и разделам на хостовом компьютере, так что можно просто сохранить файл (По умолчанию, когда устанавливается Windows XP Mode система настроена так, что открыт доступ к дискам и разделам хостовой системы. Для остальных виртуальных машин необходимо устанавливать компоненты интеграции).
  • На хостовой операционной системе должен быть установлен работающий принтер.

Печать с использованием XPS формата


Заключение

В этой заключающей статье серии статей о развертовании Windows Virtual PC и Windows XP Mode в операционной системе Windows 7 я рассказал о средствах печати из виртуальной машины. Рассмотрена установка локального и сетевого принтера, печать из виртуальной машины, а также печать документа в XPS файл.

Очень часто возникают проблемы при сетевой печати на принтеры, подключенные
например, к компьютеру с Windows XP на компьютере с установленной ОС Window 7, нена Vista,2003,2008

Суть проблемы часто заключается в том, что под эти «современные» системы производители
«устаревших» моделей принтеров не удосуживаются выпускать драйверы.

Вот и у меня сложилась такая ситуация:

Знакомый попросил настроить печать в офисе со свежекупленного ноутбука.

1. Конечно же - ноутбук был с операционной Windows 7
2. Конечно же - Home (см. ниже в чем проблема)
3. Конечно же - она (система) была 64-х разрядной.
4. Конечно же - принтеры в оффисе были не новые: HP1320 и Canon MFxxxx
5. Конечно же - принтеры были подключены и «расшарены» на машинках с WinXP.
6. И никто не будет менять структуру сети ради одного ноутбука
Как же я решил проблему?

Сначала я пошел по неправильному пути:
Скачивал и пытался установить драйверы с официальных сайтов - не тут-то было:
Компания Canon вообще мало для каких моделей поставляет драйверы под 64-х разрядные системы.
Про МФУ вообще молчу.
Для серии MFxxxx рекомендовали костыль - использовать драйверы от серии MF57xx. Попробовал - система
показывает что драйвер подписан, но отказыватеся устанавливать, ссылаясь на то что он не подписан.
Брр, бред. Установку неподписанных дров на Home разрешит нельзя (нет gpedit.msc). Тьфу.

Компания HP вроде бы и предоставила драйвер PCL5 для модели HP1320 - но - не заработало.
При попытке установки выдавались невразумительные ошибки, гуглёж которых находил
таких же бедолаг как и я.

Особенно улыбнул один комментарий на форуме (не помню точно где, но по-моему на сайте HP):
«HP1320 - бизнес-модель, поэтому мы не предоставляем поддержки по телефону в выходные дни»

Кстати, мошенники лезут во все щели как тараканы: вы всегда можете «нагуглить» и скачать ЛЮБОЙ
драйвер любого принтера под любую систему. Но результат будет конечно же, не тот, что ожидается.

Также «гуглёж» открыл мне еще один страшный факт: ДО СИХ ПОР в серверных операционках известной
компании ЕСТЬ проблемы с подсистемой печати в терминальном режиме. И даже сторонние
решения не решают проблем окончательно.

«Хватит заниматья ерундой» - подумал я и сделал так:

1. Скачал виртуальный Free PDF Printer с сайта www.bullzip.com . Их (PDF-принтеров) вообще много, просто мой выбор пал на него по следующим причинам:
а) данный работает под 64х разрядными системами
б) бесплатный (в принципе не жалко было бы отдать и ~20 баксов, НО не отдавать же их
за КАЖДЫЙ компьютер с Windows 7 64x!)
в) он нашелся первым:)
2. Установил виртуальный PDF-принтер и настроил его (C:\Program Files\Bullzip\PDF Printer\gui.exe) так, чтобы пользователю не выдавалось никаких диалоговых окон, а в папке \\compxp\printer1\ создавался файл.pdf
3. На компьютере compxp установил Foxit Reader «расшарил» папочку printer1 и поместил в автозагрузку простенький vbs-скрипт:

Copy Source | Copy HTML
  1. "On Error Resume Next
  2. "Автоматическая печать PDF-файлов, появляющихся в определенной папке
  3. "Глобальные переменные
  4. Set gFSO = CreateObject("Scripting.FileSystemObject" )
  5. Set gShell = CreateObject("WScript.Shell" )
  6. "Папка, в которой скрипт ждет PDF-файлы (к этой папке (папкам) д.б. дан доступ по сети)
  7. gWatchFolder = "E:\master\printer\"
  8. "Основной цикл
  9. While true
  10. Set lFolder = gFSO.GetFolder(gWatchFolder)
  11. Set lFiles = lFolder.Files
  12. For Each lFile In lFiles
  13. PrintFile(gWatchFolder & lFile.Name)
  14. Next
  15. WScript.Sleep(1)
  16. WEnd
  17. "Функция печати конкретного pdf-файла
  18. Sub PrintFile(pFileName)
  19. "Ждем некоторе время (пока файл до конца запишется)
  20. WScript.Sleep(3)
  21. "msgbox(pFileName)
  22. "Мы (больше) не боимся пробелов:Р
  23. s = """E:\master\foxit\Foxit Reader.exe"" /p """ & pFileName & """"
  24. "msgbox (s)
  25. Call gShell.Run(s,0,true )
  26. gFSO.DeleteFile(pFileName)
  27. If gFSO.FileExists(pFileName) Then
  28. "Мало ли чего может случиться, лучше пусть у Иван Иваныча перестанет печатать, чем один файл много раз уйдет на принтер
  29. "msgbox("Не удалось удалить файл " & pFileName & "! Позвоните Василию по т. 123-456)
  30. WScript.Quit
  31. "Else
  32. "Пока не реализовано
  33. "ToLog("Файл " & lFileName & " удален.")
  34. End If
  35. End sub

За скрипт прошу не пинать - писался быстро и чтоб заработало.

Вуаля:
Пользователь просто нажимает в программе кнопку «Печать» - и через минуту забирает из принтера документ.
Виртуальных принтеров можно установить несколько и обозвать их произвольно. Главное - при переименовании принтера настройки нужно производить заново.

Дополнительный профит от такого решения:
Для особо параноидальных начальников хитрый админ может наваять целую систему протоколирования
печати со складыванием в архив всего, что распечатали работники.

P.S. Те, кто ненавидит adobe могут сделать связку bullzip->BMP(JPG)->irfan - но возникнут проблемы с ландшафтной ориентацией (надо будет в скрипте определять ориентацию).

Данная статья является заключительной в серии статей, связанных с развертыванием виртуальных машин в среде Windows 7. В этой статье описываются возможные методы печати из виртуальной машины. Существует несколько способов для того, чтобы сделать принтер доступным на виртуальной машине. На способы, которые можно использовать, воздействуют некоторые факторы: доступен ли драйвер принтера на Windows 7 и подключен ли принтер локально или через сеть. Также можно использовать формат XPS в том случае, если ваш компьютер поддерживает этот метод печати.

Использование локального USB принтера

Внимание!

Этот способ подходит в том случае, если доступны драйвера на обе системы - хостовую систему Windows 7 и гостевую операционную систему. Необходимо только пройти несколько шагов для установки принтера на виртуальную машину. Следующие действия предполагают, что вы уже печатали на принтере, используя хостовую операционную систему.

Убедитесь, что принтер включен и доступен для установки драйверов. Например, можно устанавливать на него драйвера используя CD диск.

  1. Подключите принтер к виртуальной машине. Для этого в окне виртуальной машины нажмите на «USB» , а затем на «Имя_устройства Совместный доступ» .
  2. Установите драйвер принтера на гостевую операционную систему. Вы можете воспользоваться установкой драйвера через Интернет или использовать CD диск.
  3. Отключите принтер от виртуальной машины. Для этого из окна виртуальной машины нажмите на «USB» , а затем на «Имя_устройства Освободить» .
  4. Перезагрузите виртуальную машину. Для этого, из окна виртуальной машины нажмите на «Действие» , а затем на «Перезагрузить» .
  5. Принтер будет доступен на обеих системах, как на хостовой, так и на гостевой.

Настройка сетевого принтера на виртуальной машине

Если вы используете гостевую систему Windows XP, то необходимо вручную установить драйвер для принтера, который будет использоваться.

Установка драйвера для принтера в Windows XP


Печать из виртуальной машины

  1. Перейдите в виртуальную машину и зайдите в учетную запись, если это необходимо (вы авторизируетесь автоматически, если установлена опция, связанная с сохранением пароля).
  2. Сделайте следующее:
    • На рабочем столе в виртуальной машине нажимаем правой кнопкой на файле и выбираем из контекстного меню опцию «Печать»
    • Открываем приложение, у которого доступна опция печати и используем команду печать.
  3. Все принтеры, которые доступны в виртуальной машине есть в списке принтеров. Выбираем нужный принтер и нажимаем на кнопку ОК

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

  • Microsoft XPS Essentials Pack установленный на гостевой операционной системе. Microsoft XPS Essentials Pack можно загрузить по следующей ссылке: Windows Hardware Developer Central site.
  • Виртуальная машина настроена и имеет доступ к дискам и разделам на хостовом компьютере, так что можно просто сохранить файл (По умолчанию, когда устанавливается Windows XP Mode система настроена так, что открыт доступ к дискам и разделам хостовой системы. Для остальных виртуальных машин необходимо устанавливать компоненты интеграции).
  • На хостовой операционной системе должен быть установлен работающий принтер.

Печать с использованием XPS формата


Заключение

В этой заключающей статье серии статей о развертывании Windows Virtual PC и Windows XP Mode в операционной системе Windows 7 я рассказал о средствах печати из виртуальной машины. Рассмотрена установка локального и сетевого принтера, печать из виртуальной машины, а также печать документа в XPS файл.