Вызывающий поток не может получить доступ к этому объекту, потому что другой поток владеет им

Я пытаюсь получить список очередей печати из PowerShell, как показано ниже. Но я получаю

The calling thread cannot access this object because a different thread owns it.

Это радует, потому что PowerShell не может поддерживать несколько потоков?
Есть ли способ обойти эту проблему?

enter image description here

 Sung M. Kim05 июн. 2012 г., 19:11
@JPBanc: Роджер!
 JPBlanc05 июн. 2012 г., 18:49
Пожалуйста, в следующий раз поместите ваш код как текст, а не как экранную копию, чтобы другой парень мог тестировать, не набирая ваш код.

Ответы на вопрос(1)

Решение Вопроса

вы должны запустить PowerShell с параметром -STA (однопотоковая квартира), чтобы ваш код работал:

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)
 Sung M. Kim05 июн. 2012 г., 19:09
Спасибо JPBlankPowerShell -STA решил проблему

Ваш ответ на вопрос