Как получить общий доступ к принтеру на сервере печати с помощью Powershell?

Я пытаюсь использовать Powershell для получения общих ресурсов печати с удаленного сервера печати.

Я использую:

Get-WmiObject Win32_Share -computerName "print-server"

Я получаю сообщение об ошибке "Отказано в доступе":

Get-WmiObject : Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
At line:1 char:14
+ Get-WmiObject <<<<  Win32_Share -computerName "print-server"
    + CategoryInfo          : NotSpecified: (:) [Get-WmiObject], UnauthorizedAccessException
    + FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.GetWmiObjectCommand

Я не понимаю, почему я могу видеть общие ресурсы, хотя, как будто я подключаюсь через Мой компьютер (например, \\ принт-сервер \), я могу видеть все общие ресурсы печати нормально.

Есть идеи?

Благодарю.

Бен

2 ответа

Да, вы можете видеть их в проводнике Windows, но вам отказано в доступе с помощью команды Powershell, потому что вы пытаетесь выполнить запрос WMI на удаленном компьютере, для которого вам нужны действительные учетные данные.

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

Read-Host -AsSecureString | ConvertFrom-SecureString | Out-File secret.txt

$pass = Get-Content secret.txt | ConvertTo-Securestring
$creds = New-Object -Typename System.Management.Automation.PSCredential -Argumentlist "domain\admin",$pass

Может быть, попробуйте вообще отказаться от маршрута запроса WMI. Может быть, попробуйте хороший ole' COM-объект, например, так:

$network = New-Object -Com WScript.Network
$network.AddWindowsPrinterConnection($printerShare)

Попробуйте передать учетные данные с Get-WmiObject следующее.

$Credential = Get-Credential

(Вы получите приглашение для ввода учетных данных)

Get-WmiObject Win32_Share -ComputerName 'PRINT-SERVER' -Credential $Credential

Другие вопросы по тегам