adding printer in remote machine is not working: invalid printer name

Welcome Forums General PowerShell Q&A adding printer in remote machine is not working: invalid printer name

This topic contains 6 replies, has 2 voices, and was last updated by

2 years, 5 months ago.

  • Author
  • #51712

    Points: 0
    Rank: Member

    I have gone through many blogs for finding solution for this issue, but never find a solution.

    $CompName = ""
    $Printer = "\\\PRINTER-NAME-1"
    Invoke-Command -ComputerName $CompName -Scriptblock {
    (New-Object -Com Wscript.Network).AddWindowsPrinterConnection($p)
    } -ArgumentList $Printer
    I have even tried PSRemoting and tried to execute the ps1 file from remote machine. the same script is working in local and not working remote.

    Enter-PSSession -ComputerName "" -Authentication Credssp -Credential Get-Credential

    Exception calling "AddWindowsPrinterConnection" with "1" argument(s): "The printer name is invalid. (Exception from HRESULT: 0x80070709)"

  • #51718

    Points: 0
    Rank: Member

    It sounds as though you are having a issue with the second hop to the printer. Even though your pssession example is using Credssp there are several steps to ensure it is working. I would recommend reviewing the Second Hop section of "Secrets of PowerShell Remoting" (available for free from the eBooks section of this site)

    A quick test to verify the second hop is working is to connect to the remote system and do a dir against another system.

    Get-ChildItem \\SomeSystem\SomeShare
    • #51729

      Points: 0
      Rank: Member

      Hi, I have already tested WinRM connectivity and access to remote server etc.
      I can even run other powershell or batch file in remote machine. Issue is only with adding printer.

    • #51821

      Points: 0
      Rank: Member

      The issue is not connectivity to the remote server it is passing authenticating on the next hop. In this case the print server.

      For example this should work for you

      Invoke-Command -ComputerName Server1 -ScriptBlock {Get-ChildItem c:\}

      But this will fail

      Invoke-Command -ComputerName Server1 -ScriptBlock {Get-ChildItem \\Server2\admin`$}

      If credssp is configured on all systems correctly then this would work

      Invoke-Command -ComputerName Server1 -ScriptBlock {Get-ChildItem \\Server2\admin`$} -Authentication Credssp

      If it fails then at least one system is not setup for Credssp delegation. Both the system initiating the connection and the intermediary server must be configured.

    • #51851

      Points: 0
      Rank: Member

      #Working without Credssp
      Invoke-Command -ComputerName -ScriptBlock {Get-ChildItem C:\Users\myusername\Desktop}
      #Working with CredSSP
      Invoke-Command -ComputerName -ScriptBlock {Get-ChildItem \\sharedmac\sharef} -Authentication Credssp -Credential mydomain\myusername
      #script is working, but not showing network printers
      Invoke-Command -ComputerName -ScriptBlock {(New-Object -ComObject WScript.Network).EnumPrinterConnections()} -Authentication Credssp -Credential mydomain\myusername
      #Script gives error: Invalid Printer name
      $Printer = "\\\SDB1-FLOOR1-B2" # i have tried this input in single, double, with and without escape character
      Invoke-Command -ComputerName -ScriptBlock {Param($p)(New-Object -Com Wscript.Network).AddWindowsPrinterConnection("$p")} -ArgumentList $Printer -Authentication Credssp -Credential mydomain\myusername

      I'm totally stuck.
      I heard we can use Group Policy, is there anyway we can automate this using group policy?
      please suggest.

  • #51912

    Points: 0
    Rank: Member

    you can deploy the script via Group Policy as a logon script

    • #52037

      Points: 0
      Rank: Member

      Can you give any samples or url having samples

The topic ‘adding printer in remote machine is not working: invalid printer name’ is closed to new replies.

denizli escort samsun escort muğla escort ataşehir escort kuşadası escort