Thursday, 15 December 2016

POWERSHELL TO CONNECT AND CONFIGURE PRINTER


$computerName = "192.168.*.**"
$username = "**\Administrator"
$pw = "**"


$PrinterName
# Creating Credentials
$securepw = ConvertTo-SecureString $pw -asplaintext -force
$cred = new-object -typename System.Management.Automation.PSCredential -argument $username, $securepw

# Creating and using session
$session = New-PSSession -credential $cred -ComputerName $computerName
#$session
Invoke-Command -session $session -scriptblock {
#Keep the script for duplex mode changing
#$host.Runspace.ThreadOptions = "ReuseThread"
Add-Type -AssemblyName System.Printing
$permissions = [System.Printing.PrintSystemDesiredAccess]::AdministrateServer
$queueperms = [System.Printing.PrintSystemDesiredAccess]::AdministratePrinter
$server = new-object System.Printing.PrintServer -argumentList $permissions
$queues = $server.GetPrintQueues(@([System.Printing.EnumeratedPrintQueueTypes]::Shared))
#$queues

$PrinterName =  Read-Host "Printer Name"
foreach ($q in $queues) {
    #Get edit Permissions on the Queue


    $q2 = new-object System.Printing.PrintQueue -argumentList $server,$q.Name,1,$queueperms

    [String]$QueueName = $q2.Name
    #$QueueName
    #$PrinterName + " << "
    #$QueueName.Equals($PrinterName)
    if( $QueueName.Equals($PrinterName))
    {
    #Set DefaultPrintTicket
    $duplexCaps = $q2.GetPrintCapabilities().DuplexingCapability
    #$q2.FullName
    if ($duplexCaps.Contains([System.Printing.Duplexing]::TwoSidedLongEdge)) {
        $q2.DefaultPrintTicket.Duplexing = [System.Printing.Duplexing]::TwoSidedLongEdge
$q2.commit()
  $q.FullName
  $q2.DefaultPrintTicket.Duplexing
       
}
}
}

}
Remove-PSSession $session

No comments:

Post a Comment

Git

1 git add ↳ It lets you add changes from the working directory into the staging area 2 git commit ↳ It lets you save a snapshot of currently...