I'm trying to use Powershell to get the print shares from a remote print server.
Get-WmiObject Win32_Share -computerName "print-server"
I'm getting an "access denied" error:
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
I don't get why I can's see the shares, though, as if I connect through My Computer (e.g. \\print-server\) I can see all the print shares fine.
Yeah you can see them in Windows Explorer but get an access denied with your Powershell command because you're trying to execute a WMI query on the remote machine, for which you need valid credentials.
If you wanted to store the credentials so that you could run that command non-interactively, you could convert the password and store it as a securestring in a file, but that's just obfuscation and any intelligent snoop would be able to decode it.
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
Maybe try abandoning the WMI query route altogether. Maybe try a good ole' COM object like so:
$network = New-Object -Com WScript.Network $network.AddWindowsPrinterConnection($printerShare)
User contributions licensed under CC BY-SA 3.0