Назад | Перейти на главную страницу

Server 2008 R2 - применение новых разрешений ко всем принтерам на сервере

Мы установили новый 64-битный сервер печати (Server 2008 R2), а на нашем предыдущем сервере печати у нас была служба поддержки в качестве члена группы опытных пользователей, и мы предоставили им «Диспетчер принтеров», чтобы они могли менять порты принтера при выходе из строя принтеров.

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

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

в любом случае, чтобы эти разрешения распространялись на существующие принтеры?

они настроены как локальные принтеры, привязанные к стандартным портам TCP / IP.

Я столкнулся с этим вопросом, понимая, что я никогда не публиковал то, что делал, в конечном итоге я нашел способ использовать SUBINACL.exe (должен находиться в каталоге пути, таком как System32)

и пропустил его через цикл PowerShell всех принтеров

вот код, запустите его из консоли PS от имени администратора на сервере печати

$Logpath = "c:\temp\logs"


Stop-Transcript -ErrorAction "SilentlyContinue"
Start-Transcript $Logpath -Append

$PRINTERS = (Get-WmiObject Win32_Printer)

foreach($PRINTER in $PRINTERS)
{$Server = $PRINTER.SystemName
 $PrinterName = $PRINTER.name
Write-Host \\$Server\$PrinterName 
Invoke-Command -AllowRedirection {subinacl.exe /printer \\$Server\$PrinterName /Grant=domain\username=F}
}
Stop-Transcript

Я там больше не работаю, но надеюсь, что кому-то это пригодится.

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

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

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

Примечание. Я не использовал ранее acl «Свойства сервера печати», поэтому не могу сказать, работает ли он так, как вы хотите.

Когда я запускаю это, кажется, что он вытаскивает имя сервера и имена принтеров, но при запуске команды возникает ошибка -

\ [имя сервера печати] [имя принтера] Invoke-Command: Невозможно оценить параметр 'ConnectionUri', потому что его аргумент указан как блок сценария, а входные данные отсутствуют. Блок сценария не может быть оценен без ввода. В C: \ ntutils \ utils \ Subinacl7.ps1: 13 символов: 15 + Invoke-Command <<<< -AllowRedirection {c: \ ntutils \ utils \ subinacl.exe / printer http: // $ Server / $ PrinterName / Grant = ter minalserver \ ManagePrintQueues = M} + CategoryInfo: MetadataError: (:) [Invoke-Command], ParameterBindingException + FullyQualifiedErrorId: ScriptBlockArgumentNoInput, Microsoft.PowerShell.Commands.InvokeCommandCommand

Это меня какое-то время беспокоило, и с помощью этой ветки я попал туда, где мне было нужно. как заметил Майк, сценарий дал мне ошибки, я попытался изменить его, но ничего не сделал. Наконец, я напрямую использовал good'ol CMD.

Во-первых, я получил список принтеров.

Get-WmiObject Win32_Printer | Select-Object -Property Name

Во-вторых, я вставил результаты, чтобы отличиться вместе с командой.

См. Изображение макета Excel

В-третьих, я скопировал это в Notepad ++ и очистил места.

Наконец, вставил в CMD и запустил.

Вроде много, но у меня ушло всего 10 минут. Извините не чисто! Надеюсь, поможет!