Existe uma maneira de descobrir quais impressoras um usuário mapeou remotamente?

6

Remotamente como na linha de comando. Não tenho certeza se há uma chave reg ou algo parecido que eu possa espiar para ver se um usuário tem as impressoras corretas mapeadas.

    
por MDMoore313 09.12.2013 / 15:53

2 respostas

8

Bem, você pode dar uma olhada na classe WMI Win32_Printer,

Get-WMIObject Win32_Printer -ComputerName $Comp

Mas, acho que isso proporcionará resultados ainda melhores:

New-PSSession $Comp | Enter-PSSession
Get-ChildItem Registry::\HKEY_Users\$UserSID\Printers\Connections
Exit

Sem usar o PS Remoting, você pode fazer isso:

$Printers = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey(Microsoft.Win32.RegistryHive]::Users, $ServerName)

Você tem a ideia. Basicamente, você precisa acessar a chave de registro desse usuário com qualquer método e enumerar o que você encontrar em Printers\Connections .

    
por 09.12.2013 / 16:35
3

Para quem estiver interessado em como funciona o código de trabalho para enumerar as contas e obter uma listagem das impressoras instaladas, consulte abaixo:

Get-ChildItem Registry::\HKEY_Users | 
Where-Object { $_.PSChildName -NotMatch ".DEFAULT|S-1-5-18|S-1-5-19|S-1-5-20|_Classes" } | 
Select-Object -ExpandProperty PSChildName | 
ForEach-Object { Get-ChildItem Registry::\HKEY_Users\$_\Printers\Connections -Recurse | Select-Object -ExpandProperty Name }

Esse snippet primeiro enumera todas as subchaves em HKEY_Users, filtra as chaves de conta padrão / do sistema e as chaves Classes de cada usuário, enfim, enumera as chaves \Printers\Connections de cada chave remanescente para enviar as informações da impressora para o console. / p>

Parabéns ao Ryan, então pensei em contribuir através de uma resposta.

    
por 28.12.2015 / 16:32