$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