web-dev-qa-db-ja.com

ユーザーがリモートでマップしたプリンターを確認する方法はありますか?

コマンドラインを介してリモートで。 regキーなどがあるかどうかわからないので、ユーザーが正しいプリンターをマップしているかどうかを確認します。

7
MDMoore313

さて、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にあるものを列挙する必要があります。

9
Ryan Ries

アカウントを列挙し、インストールされているプリンターのリストを取得するための作業コードに興味がある人は、以下を参照してください。

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サブキーを列挙して、プリンター情報をコンソールに出力します。

ライアンへの賞賛、それで私は答えを通して貢献すると思いました。

2
Miguel G