PowerShell または他のスクリプトを使用してプリンターのアクセス許可を設定する方法は?

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 以外のものを使用する必要がありますか? ありがとうございます。

答え1

PowerShellは知りません。.NETとWMIを使って直接プリンタのアクセス許可を設定したことがあるのですが、アクセス許可が次の要素で構成されているため、面倒なことになりかねません。セキュリティ記述子、これはディスクリプタ不動産は、DACLプロパティには1つ以上の翻訳元それぞれのオブジェクトにはAccessMask、AceFlags、TrustreeこれはWin32_トラスティ権限が適用されるユーザーを含むオブジェクト。

上記の設定を簡素化するPowerShellアドオンがあるかもしれません。代わりに、SetACL コマンドラインツールPowerShell から呼び出すことができます。

関連情報