Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Серверные продукты Microsoft » Microsoft Windows NT/2000/2003 » [решено] Сетевые принтеры.

Ответить
Настройки темы
[решено] Сетевые принтеры.

Пользователь


Сообщения: 73
Благодарности: 2

Профиль | Отправить PM | Цитировать


Здравствуйте. Есть ли простой способ сменить ip-адрес "server" в "\\server\printer" при помощи командной строки?

\\192.168.1.5\hp5505 = \\10.20.1.5\hp5505

Заранее спасибо.

Отправлено: 21:37, 27-04-2015

 


Administrator


Сообщения: 25151
Благодарности: 3803

Профиль | Сайт | Отправить PM | Цитировать


Посмотрите здесь: Добавление принтера без вмешательства пользователя в Windows. Можете попробовать последовательное выполнение команд по удалению существующего принтера и добавлению нового.

-------
FAQ по Windows 10 .::. Настройка Центра обновления в Windows 10 .::. Чистая установка Windows 10 – пошаговая инструкция


Отправлено: 21:43, 27-04-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Пользователь


Сообщения: 73
Благодарности: 2

Профиль | Отправить PM | Цитировать


Blast, смущает необходимость указания и установки драйверов...необходима универсальность. Предположим, получу имя компьютера, наименование принтера...а драйвера...хм, может есть другие варианты? Может в реестре какое-нибудь значение сменить? Хотелось бы каким-нибудь bat-ником производить замену. Если есть такая возможность.

Отправлено: 22:04, 27-04-2015 | #3


Пользователь


Сообщения: 73
Благодарности: 2

Профиль | Отправить PM | Цитировать


Blast, нашёл такой сценарий. Что Вы о нём думаете? как ему можно передавать параметры имени старого и нового сервера для каждого принтера?

код
Цитата:

'Автор - Randy Foster
'Адрес электронной почты - rfoster_2000@excite.com
'MCSE NT4, 2000
'MCSA 2003
'MCDBA SQL7, SQL2000
'CCNA

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

'Примечание: все принтеры должны существовать на новом сервере, прежде чем будет
'запущен этот сценарий. В противном случае принтер будет просто удален из
'профиля пользователя, и сценарий не сможет вновь подключить принтеры.
' "Print Migrator" -- утилита из набора ресурсов Windows 2000 и
' Windows 2003. С ее помощью можно создать все принтеры
' на новом сервере, сохранив все их параметры, в том числе
' настройки безопасности очереди печати. Учтите, что если выполнить поиск
' принтеров, то в течение некоторого времени будут видны дублированные
' принтеры, по одному на каждом сервере.

' Этот метод был использован для перемещения более 100 принтеров с одного сервера на другой
' с последующим запуском сценария как сценария регистрации в групповой политике.
' Он выполнялся несколько дней, чтобы его запустили и пользователи,
' которые не завершают свой сеанс ежедневно. Все профили пользователей
' в компании были обновлены незаметно для сотрудников. Затем все принтеры
' были удалены со старого сервера.
' Примечание: сценарий не выполняется при дистанционном управлении через терминальные службы или SMS.

Option Explicit
Dim from_sv, to_sv, PrinterPath, PrinterName, DefaultPrinterName,
DefaultPrinter
Dim DefaultPrinterServer, SetDefault, key
Dim spoint, Loop_Counter
Dim WshNet, WshShell
Dim WS_Printers
DefaultPrinterName = ""
spoint = 0
SetDefault = 0
set WshShell = CreateObject("WScript.shell")

from_sv = "cosrv" 'Имя старого сервера.
to_sv = "co-data-01" 'Имя нового сервера.

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

On Error Resume Next
key = "HKCUSoftwareMicrosoftWindows NTCurrentVersionWindowsDevice"
DefaultPrinter = LCase(WshShell.RegRead (key))
If Err.Number <> 0 Then
DefaultPrinterName = ""
else

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

spoint = instr(3,DefaultPrinter,"")+1
DefaultPrinterServer = left(DefaultPrinter,spoint-2)
if DefaultPrinterServer = from_sv then
DefaultPrinterName = mid(DefaultPrinter,spoint,len(DefaultPrinter)-spoint+1)
end if
end if
Set WshNet = CreateObject("WScript.Network")
Set WS_Printers = WshNet.EnumPrinterConnections

'Шаг должен быть 2, так как только четные числа являются именем сервера и общего ресурса
' очереди печати. Нечетные числа -- имена принтеров.

For Loop_Counter = 0 To WS_Printers.Count - 1 Step 2

'Не забудьте + 1, чтобы получить полный путь, то есть .. ваш_серверваш_принтер.

PrinterPath = lcase(WS_Printers(Loop_Counter + 1))

'Нужно работать столько с сетевыми принтерами, сопоставленными с исходным
' сервером, поэтому проверяем "ваш_сервер".

if LEFT(PrinterPath,len(from_sv)) = from_sv then

'Теперь нужно выполнить разбор пути принтера, чтобы получить имя принтера.
spoint = instr(3,PrinterPath,"")+1
PrinterName = mid(PrinterPath,spoint,len(PrinterPath)-spoint+1)

'Удаляем старое соединение с принтером,

WshNet.RemovePrinterConnection from_sv+""+PrinterName

'а затем создаем новое.
WshNet.AddWindowsPrinterConnection to_sv+""+PrinterName

'Если этот принтер совпадает с принтером по умолчанию, полученным из реестра, то
' назначаем его принтером по умолчанию.

if DefaultPrinterName = PrinterName then
WshNet.SetDefaultPrinter to_sv+""+PrinterName
end if
end if
Next
Set WS_Printers = Nothing
Set WshNet = Nothing
Set WshShell = Nothing

Отправлено: 15:24, 28-04-2015 | #4


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата KatAst:
нашёл такой сценарий. Что Вы о нём думаете? »
Думаю, Вы потеряли часть содержимого из кода при его копировании из источника. Либо же, он был в таком виде и там, где Вы его брали.

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

Последний раз редактировалось Iska, 28-04-2015 в 15:39.


Отправлено: 15:34, 28-04-2015 | #5


Пользователь


Сообщения: 73
Благодарности: 2

Профиль | Отправить PM | Цитировать


Iska, сегодня решил что-нибудь состряпать в свободное время...как получится...просьба сильно не ругаться и указать на ошибки:

bat

for /f "Skip=1 tokens=4 delims=. " %%i In ('WMIC Printer Where default^=TRUE Get ServerName^') do set ipprint=%%i

if %ipprint% lss 1 exit

for /f "Skip=1 delims=" %%i In ('WMIC Printer Where default^=TRUE Get ShareName^') do set nprint=\\10.20.1.%ipprint%\%%i && goto 1

:1

%windir%\system32\cscript.exe instpr.vbs //nologo //b %nprint%


vbs

if wscript.Arguments.Count=0 then
WScript.Quit

else
Set WshNetwork = WScript.CreateObject("WScript.Network")
PrinterPath = wscript.Arguments(0)
WshNetwork.AddWindowsPrinterConnection PrinterPath
WshNetwork.SetDefaultPrinter PrinterPath

End if

WScript.Quit


P.S.: Наверно, бессмысленно было добавлять в vbs оператор ЕСЛИ...но так,на всякий...

Последний раз редактировалось KatAst, 30-04-2015 в 00:00.


Отправлено: 17:31, 29-04-2015 | #6


Пользователь


Сообщения: 73
Благодарности: 2

Профиль | Отправить PM | Цитировать


Сработает ли через групповую политику?

upd: C некоторыми исправлениями, работает.

Последний раз редактировалось KatAst, 06-05-2015 в 17:00.


Отправлено: 02:47, 02-05-2015 | #7



Компьютерный форум OSzone.net » Серверные продукты Microsoft » Microsoft Windows NT/2000/2003 » [решено] Сетевые принтеры.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2008 R2 - Пропадают сетевые принтеры GooTTaLiN Windows Server 2008/2008 R2 7 03-03-2013 16:00
Принтер - Помогите выбрать сетевые принтеры pipezzz Прочее железо 5 27-11-2009 08:53
сетевые принтеры и линюкс Altaranenco Общий по Linux 1 23-05-2007 16:07
сетевые принтеры TCrash Microsoft Windows NT/2000/2003 6 24-11-2006 21:43
сетевые и несетевые принтеры ptt Хочу все знать 9 11-01-2004 20:48




 
Переход