Показать полную графическую версию : Настройка принтеров
v.arnautov
03-04-2017, 11:25
Здравствуйте. Ситуация такая, есть терминальный сервер с подключенными к нему несколькими принтерами, можно ли выставить разные принтера по умолчанию для пользователей, т.е. для каждого пользователя свой принтер по умолчанию не входя в уз пользователей?
Angry Demon
03-04-2017, 11:46
Установка принтера по умолчанию (http://forum.oszone.net/post-587610.html)
Также rundll32 printui.dll,PrintUIEntry /y /n<имя принтера> назначает принтер по умолчанию.
v.arnautov
03-04-2017, 13:34
как я понял скрип надо выполнять от каждой учетки, а мне нужно чтобы допустим от уз Администратор я мог назначить принтер каждому сотруднику свой. А то учетных записей далеко не 5 шт и подключаться к каждой и настраивать нужный принтер не хочется.
Angry Demon
03-04-2017, 14:13
v.arnautov, что такое папка Автозагрузка в профиле слыхали? Положить в неё скрипт, думаю, сможете без подключения к учёткам.
Да даже тупо в общую автозагрузку можно, если единый пакетный файл/скрипт в виде:
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
а через реестр этого сделать нельзя?
v.arnautov
03-04-2017, 14:55
сообщите путь где смотреть в реестре
Кто-то тут только что, пару часов назад, писал:
А то учетных записей далеко не 5 шт и подключаться к каждой и настраивать нужный принтер не хочется. »
Что побудило Вас не просто внезапно решиться, но и выбрать ещё более длинный путь («Ты, слышь, Вась, по-моему и до аэродрома не далеко…» ;))?!
Ну, коли семь вёрст не крюк, смотрите:
Registry entries for printing (https://support.microsoft.com/en-us/help/102966/registry-entries-for-printing)
Where in the registry is the default printer set? | Windows Server content from Windows IT Pro (http://windowsitpro.com/windows-server/where-registry-default-printer-set)
shevgenius
03-04-2017, 15:23
Iska, через пакетный файл палим список пользователей, зато удобно в одном файле сразу видно, кому чего назначили.
v.arnautov, готовое решение с rundll32.exe printui.dll,PrintUIEntry в автозагрузку. :ok:
Можно еще с предпочтениями сделать: 2008 R2 - [решено] Назначить принтер по умолчанию GPO
А если пользователи с терминала и со своего компьютера печатает на одни и те же "умолчанные" принтеры, тогда перенаправление принтеров с компьютера пользователя.
v.arnautov
03-04-2017, 15:25
а писать для каждого скрипт и ложить его в автозагрузку это ближе?
этих принтеров на локальных машинах нет
Iska, через пакетный файл палим список пользователей »
shevgenius, попробуйте выполнить под обычным пользователем net.exe user и net.exe user /domain (при наличии домена). Что будет?
а писать для каждого скрипт и ложить его в автозагрузку это ближе? »
Есть множество способов назначения умолчального принтера. Ваш последний выбор (ручками через реестр для каждой из учётных записей пользователей) — наихудший из них.
v.arnautov
03-04-2017, 16:01
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
Хотя в условии не было озвучено, есть ли у вас домен или нет, но через групповые политики на "Вход в систему" оно было бы правильнее.
v.arnautov, пишите один пакетный файл сценария примерно такого содержания, можете взять вариант Iska, чей больше понравится:
@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
Что будет? »
не порядок, надо залатать
v.arnautov
03-04-2017, 16:16
DC есть, на нем дается доступ к принтерам для учеток
if /i "%username%" equ "user2" goto linkPrint2 тут не понятно чутка, %username% - это имя учетки например Petya так? а это что "user2"
shevgenius
03-04-2017, 17:07
v.arnautov, подробно
@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
спасибо!
,но имена компьютеров неизвестны, у них случайные имена, половина пк работают на Маке половина на Убунту. »
Тут ровно одно имя — терминального сервера. Проверяется для того, чтобы работало только на конкретной машине.
DC есть, »
Ну, так и применяйте все возможности, доступные в доменной среде. На кой чёрт тогда лезть в реестр?!
if /i "%username%" equ "user2" goto linkPrint2 тут не понятно чутка, %username% - это имя учетки например Petya так? а это что "user2" »
«%username%» — разворачивается в имя текущего пользователя. «user2» — то, с чем надо сравнить имя текущего пользователя и, при совпадении, выполнить назначение для этого имени.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.