Como posso obter os compartilhamentos de impressora em um servidor de impressão usando o Powershell?

1

Estou tentando usar o Powershell para obter os compartilhamentos de impressão de um servidor de impressão remoto.

Estou usando:

Get-WmiObject Win32_Share -computerName "print-server"

Estou recebendo um erro de "acesso negado":

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

Não entendo por que consigo ver os compartilhamentos, como se eu me conectasse por meio do Meu computador (por exemplo, \\ servidor de impressão \), posso ver todos os compartilhamentos de impressão bem.

Alguma idéia?

Obrigado.

Ben

    
por Ben 18.07.2010 / 22:35

2 respostas

1

Sim, você pode vê-los no Windows Explorer, mas obtém um acesso negado com o comando Powershell porque está tentando executar uma consulta WMI na máquina remota, para a qual precisa de credenciais válidas.

Se você quisesse armazenar as credenciais para poder executar esse comando de forma não interativa, você poderia converter a senha e armazená-la como um agente de segurança em um arquivo, mas isso seria apenas ofuscação e qualquer espião inteligente poderia decodificá-la .

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

Talvez tente abandonar completamente a rota de consulta WMI. Talvez tente um bom objeto COM como:

$network = New-Object -Com WScript.Network
$network.AddWindowsPrinterConnection($printerShare)
    
por 06.05.2012 / 17:27
0

Tente passar as credenciais com Get-WmiObject da seguinte forma.

$Credential = Get-Credential

(Você receberá uma solicitação de credenciais)

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

    
por 18.07.2010 / 22:50