web-dev-qa-db-ja.com

PowerShell /その他のスクリプトを使用してプリンターのアクセス許可を設定するにはどうすればよいですか?

スクリプトでプリンターのアクセス許可を更新する必要があります。つまり、手動で行うのと同じ方法で行います。

  1. 開くデバイスとプリンターアプレット
  2. デフォルトのプリンタをダブルクリックします(キューを開きます)
  3. プリンタ->プロパティに移動します
  4. プロパティダイアログで、セキュリティタブに移動します
  5. 全員の権限を変更します(例:ドキュメントの管理権限を確認します)

どうやってするか?たとえば、PowerShellでは次のことができます

_Get-WmiObject -class win32_printer -filter Default=True
_

デフォルトのプリンタを取得するには、メソッドgetSecurityDescriptor()setSecurityDescriptor()がありますが、たとえば次のコマンドを使用します。

_(Get-WmiObject -class win32_printer -filter Default=True).getsecuritydescriptor().Descriptor
_

nullを返すので、正しい方法で行っているかどうかわかりません。

プリンターの権限を設定するための実用的な例はありますか?私は正しい道を進んでいますか、それともWMI以外のものを完全に使用する必要がありますか?ありがとう。

4
Borek Bernard

PowerShellを知りません。NETとWMIを使用して直接プリンターのアクセス許可を取得しただけですが、アクセス許可はSecurityDescriptorDescriptorプロパティ、[〜#〜] dacl [〜#〜] プロパティ。1つ以上のWin32_ACEオブジェクトが含まれ、各オブジェクトにはが含まれます。 AccessMask、AceFlags、およびTrustreeは、Win32_Trusteeオブジェクトであり、アクセス許可の適用先が含まれています。

上記の設定を簡素化するPowerShellアドオンがあるかもしれません。あるいは、PowerShellから呼び出すことができる SetACLコマンドラインツール を見てください。

1
WhoIsRich