|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Как получить список расшаренных принтеров? |
|
PowerShell - [решено] Как получить список расшаренных принтеров?
|
Новый участник Сообщения: 44 |
Здравствуйте!
Настраиваю сервер печати в домене на windows server 2008r2. Стоял вопрос, как подключать принтеры, расшаренные на сервере, пользователям. Изучив множество решений, пришел к такому: 1. На каждый принтер назначил группу безопасности. Если пользователь не состоит в группе, то он не сможет подключить принтер, и печатать на него. 2. Политикой разрешить пользователю устанавливать драйвера для принтеров. 3. установку/удаление принтером производить logon скриптом: алгоритм скрипта: 1. получить список установленных (подключенных) принтеров. 2. Все принтеры подключенные с сервера печати, но без доступа ( если ранее пользователь имел доступ к принтеру, состоял в группе, а потом пользователя удалили из группы безопасности) отключить. 3. получить список всех принтеров с сервера (список можно отфильтровать по доступности), подключить все принтеры из списка ( с подавлением ошибки о отсутствие доступа) ( наверно, нужна будет проверка на уже подключенные). Все этапы, вроде как понятны, и широко описаны в интернете, за исключением, получения списка расшаренных на сервере принтеров. Все решения которые я находил (Win32_Printer), требовали прав администратора на сервере, а скрипт планируется запускать с правами пользователя. Конечно, можно сформировать список и сохранить его в ТХТ, и потом подключать принтеры ссылаясь на этот список. Но это план Б) И вопрос: Как получить список расшаренных принтеров с сервера печати, без прав администратора? Подскажите пожалуйста. |
|
Отправлено: 19:37, 17-07-2015 |
Новый участник Сообщения: 44
|
Профиль | Отправить PM | Цитировать Вот такая конструкция получилась, с использованием net view
net view \\W2K8R2-PS-TEST | foreach -process {if ($_ -Like "*Печать*") {(($_).Remove(($_).IndexOf("Печать"))).Trim()}} за место: Общие ресурсы на \\W2K8R2-PS-TEST Имя общего ресурса Тип Используется как Комментарий ------------------------------------------------------------------------------- 1 этаж ИТ отдел (M1214) черно-белый Печать 1 этаж ИТ отдел (M1214) черно-белый 1 этаж-рецепция (M1536) черно-белый Печать 1 этаж-рецепция (M1536) черно-белый принтер-чб(ID670) Печать принтер-чб(ID670) Команда выполнена успешно. |
Отправлено: 09:32, 18-07-2015 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата yanus74:
Option Explicit
Dim strComputer
Dim objSWbemObjectEx
strComputer = "W2K8R2-PS-TEST"
With WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(strComputer, "root\cimv2")
For Each objSWbemObjectEx In .ExecQuery("SELECT * FROM Win32_Share WHERE Type = 1")
With objSWbemObjectEx
WScript.Echo .Name, .Path, .Description, .Type
End With
Next
End With
WScript.Quit 0
![]() |
|
Отправлено: 14:37, 18-07-2015 | #12 |
Ветеран Сообщения: 1758
|
|
Отправлено: 16:21, 18-07-2015 | #13 |
Новый участник Сообщения: 44
|
Профиль | Отправить PM | Цитировать Цитата Foreigner:
|
|
Отправлено: 16:46, 18-07-2015 | #14 |
Новый участник Сообщения: 44
|
Профиль | Отправить PM | Цитировать Вообщем скрипт я себе написал, оставлю его здесь, вдруг компу пригодится.
Напомню, принтеры расшарены на сервере-печати, на каждый принтер назначена группа доступа. Так же есть группа доступа для политики, которая добавляет logon скрипт для пользователя. Что бы пользователь мог ставить драйвера на принтер, через политику разрешается установка: Конфигурация пользователя - Политика- Административные шаблоны - Панель управления - принтеры Ограничения указания и печати - Включено При установке драйверов для нового подключения: Не показывать предупреждение или запрос на повышение прав При обновлении драйверов для нового подключения: Не показывать предупреждение или запрос на повышение прав #Удаление принтера к которому утрачен доступ Get-WmiObject -Class Win32_Printer | foreach { if ($_.PrinterState -eq $null) {$_.delete()}} #Подключить все доступные принтеры на сервере \\W2K8R2-PS-TEST net view \\W2K8R2-PS-TEST | foreach -process { if ($_ -Like "*Печать*") { $path = "\\W2K8R2-PS-TEST\" + (($_).Remove(($_).IndexOf("Печать"))).Trim() ([WMICLASS]'Win32_Printer').AddPrinterConnection($path) } } Всем спасибо за помощь) |
Последний раз редактировалось yanus74, 18-07-2015 в 20:12. Отправлено: 19:49, 18-07-2015 | #15 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - [решено] Как получить список файлов находящихся в каталоге? | Kocuk | Microsoft Windows 2000/XP | 8 | 27-02-2012 23:25 | |
[решено] Как распечатать(получить) список пользователей домена. | RedX | Microsoft Windows NT/2000/2003 | 4 | 22-04-2010 09:03 | |
[решено] Как получить список пользователей | Vagac | AutoIt | 2 | 06-11-2009 12:24 | |
Разное - [решено] Как получить список локальных пользователей | ZlojMyX | Microsoft Windows 2000/XP | 1 | 16-03-2009 11:16 | |
Как получить список пользователей AD? | Evgeniy15 | Microsoft Windows NT/2000/2003 | 10 | 09-04-2007 18:03 |
|