コマンドラインを介してリモートで。 regキーなどがあるかどうかわからないので、ユーザーが正しいプリンターをマップしているかどうかを確認します。
さて、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)
あなたはアイデアを得ます。基本的に、どのような方法でそのユーザーのレジストリキーにアクセスし、Printers\Connections
にあるものを列挙する必要があります。
アカウントを列挙し、インストールされているプリンターのリストを取得するための作業コードに興味がある人は、以下を参照してください。
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の下のすべてのサブキーを列挙し、次に各ユーザーのデフォルト/システムアカウントキーとClassesキーをフィルターで除外し、最後に残りの各キーの\Printers\Connections
サブキーを列挙して、プリンター情報をコンソールに出力します。
ライアンへの賞賛、それで私は答えを通して貢献すると思いました。