Компьютерный форум 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=325518)

v.arnautov 03-04-2017 11:25 2725726

Настройка принтеров
 
Здравствуйте. Ситуация такая, есть терминальный сервер с подключенными к нему несколькими принтерами, можно ли выставить разные принтера по умолчанию для пользователей, т.е. для каждого пользователя свой принтер по умолчанию не входя в уз пользователей?

Angry Demon 03-04-2017 11:46 2725738

Установка принтера по умолчанию

Также rundll32 printui.dll,PrintUIEntry /y /n<имя принтера> назначает принтер по умолчанию.

v.arnautov 03-04-2017 13:34 2725773

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

Angry Demon 03-04-2017 14:13 2725790

v.arnautov, что такое папка Автозагрузка в профиле слыхали? Положить в неё скрипт, думаю, сможете без подключения к учёткам.

Iska 03-04-2017 14:39 2725800

Да даже тупо в общую автозагрузку можно, если единый пакетный файл/скрипт в виде:
Скрытый текст
Код:

if "%ComputerName%" equ "TerminalServer" (
    call :Label%UserName%
)

exit /b 0

:LabelVasya
    rundll32.exe printui.dll,PrintUIEntry /y /nHPLaserJet5
    exit /b

:LabelPetya
    rundll32.exe printui.dll,PrintUIEntry /y /nHPLaserJet5
    exit /b

:LabelKolya
    rundll32.exe printui.dll,PrintUIEntry /y /nHPLaserJet6
    exit /b


хоть и не комильфо.

v.arnautov 03-04-2017 14:48 2725806

а через реестр этого сделать нельзя?

Iska 03-04-2017 14:50 2725807

Делайте.

v.arnautov 03-04-2017 14:55 2725810

сообщите путь где смотреть в реестре

Iska 03-04-2017 15:13 2725820

Кто-то тут только что, пару часов назад, писал:
Цитата:

Цитата v.arnautov
А то учетных записей далеко не 5 шт и подключаться к каждой и настраивать нужный принтер не хочется. »

Что побудило Вас не просто внезапно решиться, но и выбрать ещё более длинный путь («Ты, слышь, Вась, по-моему и до аэродрома не далеко…» ;))?!

Ну, коли семь вёрст не крюк, смотрите:
Registry entries for printing
Where in the registry is the default printer set? | Windows Server content from Windows IT Pro

shevgenius 03-04-2017 15:23 2725827

Iska, через пакетный файл палим список пользователей, зато удобно в одном файле сразу видно, кому чего назначили.

v.arnautov, готовое решение с rundll32.exe printui.dll,PrintUIEntry в автозагрузку. :ok:

Можно еще с предпочтениями сделать: 2008 R2 - [решено] Назначить принтер по умолчанию GPO

А если пользователи с терминала и со своего компьютера печатает на одни и те же "умолчанные" принтеры, тогда перенаправление принтеров с компьютера пользователя.

v.arnautov 03-04-2017 15:25 2725828

а писать для каждого скрипт и ложить его в автозагрузку это ближе?

этих принтеров на локальных машинах нет

Iska 03-04-2017 15:31 2725832

Цитата:

Цитата shevgenius
Iska, через пакетный файл палим список пользователей »

shevgenius, попробуйте выполнить под обычным пользователем net.exe user и net.exe user /domain (при наличии домена). Что будет?


Цитата:

Цитата v.arnautov
а писать для каждого скрипт и ложить его в автозагрузку это ближе? »

Есть множество способов назначения умолчального принтера. Ваш последний выбор (ручками через реестр для каждой из учётных записей пользователей) — наихудший из них.

v.arnautov 03-04-2017 16:01 2725843

if "%ComputerName%" equ "TerminalServer" (
call :Label%UserName%
)

exit /b 0

:LabelVasya
rundll32.exe printui.dll,PrintUIEntry /y /nHPLaserJet5
exit /b

:LabelPetya
rundll32.exe printui.dll,PrintUIEntry /y /nHPLaserJet5
exit /b

:LabelKolya
rundll32.exe printui.dll,PrintUIEntry /y /nHPLaserJet6
exit /b

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

shevgenius 03-04-2017 16:13 2725846

Хотя в условии не было озвучено, есть ли у вас домен или нет, но через групповые политики на "Вход в систему" оно было бы правильнее.
v.arnautov, пишите один пакетный файл сценария примерно такого содержания, можете взять вариант Iska, чей больше понравится:

DefPrint.cmd

Код:

@echo off

rem перебираем пользователей
if /i "%username%" equ "user1" goto linkPrint1
if /i "%username%" equ "user2" goto linkPrint2
goto allend

:linkPrint1
rundll32 printui.dll,PrintUIEntry /y /n "SharePrinterName"
goto allend

:linkPrint1
rundll32 printui.dll,PrintUIEntry /y /n "SharePrinterName"
goto allend

:allend



Добавляете на терминальном сервере в C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup

Цитата:

Цитата Iska
Что будет? »

не порядок, надо залатать

v.arnautov 03-04-2017 16:16 2725848

DC есть, на нем дается доступ к принтерам для учеток

if /i "%username%" equ "user2" goto linkPrint2 тут не понятно чутка, %username% - это имя учетки например Petya так? а это что "user2"

shevgenius 03-04-2017 17:07 2725866

v.arnautov, подробно
DefPrint.cmd

Код:

@echo off

rem перебираем пользователей
if /i "%username%" equ "user1" goto linkPrint1        ; если %username% равно user1 перейти на linkPrint1
if /i "%username%" equ "user2" goto linkPrint2        ; если %username% равно user2 перейти на linkPrint2
if /i "%username%" equ "user3" goto linkPrint1        ; если %username% равно user3 перейти на linkPrint1 - так тоже можно
goto allend

:linkPrint1        ; просто метка
rundll32 printui.dll,PrintUIEntry /y /n "SharePrinterName1"        ; поставить по умолчанию принтер SharePrinterName1
goto allend

:linkPrint2
rundll32 printui.dll,PrintUIEntry /y /n "SharePrinterName2"        ; поставить по умолчанию принтер SharePrinterName2
goto allend

:allend

Код:

менять эти параметры:
user1 - имя пользователя, это Masha, Vasya
SharePrinterName1 - имя принтера, это, например "Kyocera Classic Universaldriver KPDL (A4 models)" и т.д.
linkPrint1 - это ссылка и метка внутри файла

p.s. чтобы работало к себе в файл копируйте без комментариев

v.arnautov 03-04-2017 17:52 2725876

спасибо!

Iska 04-04-2017 00:45 2725988

Цитата:

Цитата v.arnautov
,но имена компьютеров неизвестны, у них случайные имена, половина пк работают на Маке половина на Убунту. »

Тут ровно одно имя — терминального сервера. Проверяется для того, чтобы работало только на конкретной машине.

Цитата:

Цитата v.arnautov
DC есть, »

Ну, так и применяйте все возможности, доступные в доменной среде. На кой чёрт тогда лезть в реестр?!

Цитата:

Цитата v.arnautov
if /i "%username%" equ "user2" goto linkPrint2 тут не понятно чутка, %username% - это имя учетки например Petya так? а это что "user2" »

«%username%» — разворачивается в имя текущего пользователя. «user2» — то, с чем надо сравнить имя текущего пользователя и, при совпадении, выполнить назначение для этого имени.


Время: 18:17.

Время: 18:17.
© OSzone.net 2001-