# Get-Printer only shows local printers

**URL:** <https://forums.powershell.org/t/get-printer-only-shows-local-printers/3323>\
**Category:** PowerShell Help\
**Created:** [October 27, 2014, 4:41pm UTC](https://forums.powershell.org/t/get-printer-only-shows-local-printers/3323 "2014-10-27T16:41:16Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![avi-arditi](https://avatars.discourse-cdn.com/v4/letter/a/9fc29f/32.png) [@avi-arditi](https://forums.powershell.org/u/avi-arditi)\
**Post date:** [October 27, 2014, 4:41pm UTC](https://forums.powershell.org/t/get-printer-only-shows-local-printers/3323/1 "2014-10-27T16:41:16Z")

</div>

hi all,

on our network on a windows 8.1 PC I am running: Get-Printer -ComputerName xxxxx

I only get the local printers it doesn’t return the network printers.  
I have done lots of searching and couldn’t find anything about this or more to the point about this problem.

Any ideas ?

---

<div class="post-metadata">

**Author:** ![alexander-johansson](https://avatars.discourse-cdn.com/v4/letter/a/f05b48/32.png) [@alexander-johansson](https://forums.powershell.org/u/alexander-johansson)\
**Post date:** [October 27, 2014, 7:17pm UTC](https://forums.powershell.org/t/get-printer-only-shows-local-printers/3323/2 "2014-10-27T19:17:23Z")

</div>

If you run “Get-Printer” on your localhost as the logged in user you will also see your network printers.  
But if you run it as an administrator you won’t see them.

Why?  
Because network printers that are shared from another server are per user, when you log in as a user which has the network printer mapped on a computer  
it will be created in that users session.

The same thing happens when you try to use “Get-Printer” on a remote computer, thats why you only see the local printers.

/Alexander

---

<div class="post-metadata">

**Author:** ![avi-arditi](https://avatars.discourse-cdn.com/v4/letter/a/9fc29f/32.png) [@avi-arditi](https://forums.powershell.org/u/avi-arditi)\
**Post date:** [October 28, 2014, 1:03pm UTC](https://forums.powershell.org/t/get-printer-only-shows-local-printers/3323/3 "2014-10-28T13:03:35Z")

</div>

Hi Alexander,

Thanks for your reply.  
I was wondering what is going on. 🙂

ok is there away, if you can direct me the right way, to use the Get-printer for a specific user?

---

<div class="post-metadata">

**Author:** ![deiandrei](https://avatars.discourse-cdn.com/v4/letter/d/7ab992/32.png) [@deiandrei](https://forums.powershell.org/u/deiandrei)\
**Post date:** [October 28, 2014, 11:20pm UTC](https://forums.powershell.org/t/get-printer-only-shows-local-printers/3323/4 "2014-10-28T23:20:26Z")

</div>

Well, one option would be to read the registry entries of the current user. The network printers are listed under HKCU\Printers\Connections

---

<div class="post-metadata">

**Author:** ![alexander-johansson](https://avatars.discourse-cdn.com/v4/letter/a/f05b48/32.png) [@alexander-johansson](https://forums.powershell.org/u/alexander-johansson)\
**Post date:** [October 28, 2014, 11:45pm UTC](https://forums.powershell.org/t/get-printer-only-shows-local-printers/3323/5 "2014-10-28T23:45:28Z")

</div>

I suggest that you take a look at this thread:  
[http://stackoverflow.com/questions/20639541/get-default-printer-remotely](http://stackoverflow.com/questions/20639541/get-default-printer-remotely)

/Alexander

---

<div class="post-metadata">

**Author:** ![avi-arditi](https://avatars.discourse-cdn.com/v4/letter/a/9fc29f/32.png) [@avi-arditi](https://forums.powershell.org/u/avi-arditi)\
**Post date:** [October 29, 2014, 9:21am UTC](https://forums.powershell.org/t/get-printer-only-shows-local-printers/3323/6 "2014-10-29T09:21:52Z")

</div>

hi Deiandrel and Alexander

again just a big thank you for taking the time and helping much appreciated.

I saw a few version of this script that I wrote yesterday (at home I found that someone already wrote this and did a better job 🙂 )

I am testing to see if this will delete the printers regarding of the user logged to the PC if this will work then I’ll be very happy and will let you know.

Function Delete-networkPrinters {

$netprinters = Get-WmiObject -Class win32\_Printer | where-object{$\_.network}  
If ($netprinters -ne $null)

```
{ 
    Foreach($netprinter in $netprinters)
    
    {
       $netprinter.Delete()
        Write-Host "the following printers were removed" + $netprinter.name
    }
 }

 Else{read-host "no printers found"}   

```

}

Delete-networkPrinters

---

<div class="post-metadata">

**Author:** ![avi-arditi1](https://avatars.discourse-cdn.com/v4/letter/a/c77e96/32.png) [@avi-arditi1](https://forums.powershell.org/u/avi-arditi1)\
**Post date:** [November 3, 2014, 3:13pm UTC](https://forums.powershell.org/t/get-printer-only-shows-local-printers/3323/7 "2014-11-03T15:13:52Z")

</div>

this scripts is now working well and its simple ( I am new to powershell and like simple :))

---

<div class="post-metadata">

**Author:** ![dotnVo](https://avatars.discourse-cdn.com/v4/letter/d/4af34b/32.png) [@dotnVo](https://forums.powershell.org/u/dotnVo)\
**Post date:** [May 16, 2024, 8:46pm UTC](https://forums.powershell.org/t/get-printer-only-shows-local-printers/3323/8 "2024-05-16T20:46:45Z")

</div>


