有没有办法找出用户远程映射的打印机?

通过命令行远程访问。 不知道是否有一个注册码或类似的东西,我可以偷看,看看用户是否有正确的打印机映射。

那么你可以看一下Win32_Printer的WMI类,

Get-WMIObject Win32_Printer -ComputerName $Comp 

但是,我认为这会给你带来更好的结果:

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

不使用PS Remoting,你可以这样做:

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

你明白了。 基本上,您需要使用任何方法访问该用户的registry项,并枚举您在“ Printers\Connectionsfind的任何内容。

对于任何感兴趣的工作代码看起来像枚举帐户,并获得已安装的打印机列表,请参阅下面:

 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 } 

首先枚举HKEY_Users下的所有子项,然后过滤掉每个用户的默认/系统帐户密钥和类密钥,最后枚举每个剩余密钥的\Printers\Connections子项,以将打印机信息输出到控制台。

荣誉Ryan,所以认为我会通过一个答案作出贡献。