Powershell ou WMI para extrair propriedades da impressora e drivers adicionais?

2

O que estou tentando realizar:

Use um script powershell (WMI ou cmdlets diretamente ou uma combinação) para consultar um servidor 2003 ou 2008 com a função PrintServer, enumerar as impressoras compartilhadas e, em seguida, listar os drivers em uso para essa impressora e, especificamente, um x86 ou x64 driver está sendo usado (ou ambos).

Eu examinei Win32_Printer , Win32_PrinterDriver , Get-Printer , etc. Nada disso parece ser capaz de me informar sobre drivers x64 ou quando vários drivers específicos são carregados. Algo como:

gwmi win32_printer -computername lebowski | %{$name = $_.name
$supported = $_.getrelated('Win32_PrinterDriver') | select supportedplatform, driverpath, version
Write-Host $name
return $supported 
} 

Produz o seguinte:

PCLOADLETTER
supportedplatform : Windows NT x86
driverpath        : C:\WINDOWS\system32\spool\DRIVERS\W32X86\RIC54Dc.DLL
version           : 3

No entanto, o problema é que determinada impressora também possui drivers x64 carregados. Eu realmente não quero verificar manualmente a guia de propriedades de 100 impressoras apenas para ver se eles têm o driver x64 carregado.

    
por JeremiahJohnson 31.05.2012 / 20:33

2 respostas

1

Seu script parece bom. Poderia sugerir usar Select-Object name, driverpath em oposição a select supportedplatform, driverpath, version .

A saída é assim:

Xerox WorkCentre Pro C3545 PS,3,Windows x64 C:\Windows\system32\spool\DRIVERS\x64...

Xerox WorkCentre Pro C3545,3,Windows NT x86 C:\Windows\system32\spool\DRIVERS\W32X8...

Concedido, ainda provavelmente não tão limpo quanto você provavelmente gostaria. Isso vai (eu acho) te dar o que você está procurando.

    
por 25.03.2013 / 21:33
0

Este é um quebra-cabeça muito interessante.

O mais próximo que posso sugerir é o seguinte:

Execute o script do powershell duas vezes:

Uma vez "nativo" (que em um sistema x64 será executado como 64 bits) e novamente como 32 bits. No modo de 32 bits, você deve ver apenas impressoras com drivers de 32 bits (estou especulando um pouco aqui, mas suspeito que isso seja verdade).

Você pode ver como executar seu script como x86 e x64 em alguns artigos. Aqui está um: link

O mesmo script será executado como 32 ou 64.

Então, se o acima está se comportando como o esperado, faça a lista de salvamento do script arquivar, por exemplo

32bitprinters.txt 64bitprinters.txt

E, em seguida, um segundo script compara as listas ou faz o que você precisa.

    
por 01.06.2012 / 18:45