我正在尝试从 PowerShell 中检索打印队列列表,如下所示。但我越来越
The calling thread cannot access this object because a different thread owns it
.
是否因为 PowerShell 无法支持多线程而发生?
有没有办法解决这个问题?
我正在尝试从 PowerShell 中检索打印队列列表,如下所示。但我越来越
The calling thread cannot access this object because a different thread owns it
.
是否因为 PowerShell 无法支持多线程而发生?
有没有办法解决这个问题?
据我了解,您必须使用 -STA (单线程公寓)参数启动 PowerShell 才能使您的代码正常工作:
PowerShell -STA
Add-Type -AssemblyName "system.Printing"
$f = @([system.Printing.EnumeratedPrintQueueTypes]::local, [system.Printing.EnumeratedPrintQueueTypes]::shared)
$ps = New-Object system.Printing.localprintserver
$pq = $ps.GetPrintQueues($f)