次の方法で共有

PowerShellを用いたプリンタセキュリティへのアクセス権追加について

Anonymous
2018-07-26T02:45:41+00:00

PowerShellでプリンタのセキュリティ設定を変更したいのですが、

「Add-AccessControlEntry」が動作しません。

どのように記述すれば動作するのかご教示ください。

<やりたい事詳細>

プリンタプロパティの「セキュリティ」タブで「Everyone」が「印刷:許可」のみ設定

された状態になっています。

この状態から、「このプリンターの管理」と「ドキュメントの管理」の権限を追加したいのです。

※他のアクセス権はそのまま残したい。

<記述内容>

#対象プリンタの指定

$S = "RICOH RPCS Basic Color"

$SFilter = "name='" + $S + "'"

$SPrinter = gwmi win32_printer -filter $SFilter

#セキュリティ情報を取得

$ace = $SPrinter.GetSecurityDescriptor

#'Everyone'のセキュリティ設定を追加

$ace | Add-AccessControlEntry -Principal Everyone -PrinterRights ManagePrinters  # 983052

$ace | Add-AccessControlEntry -Principal Everyone -PrinterRights ManageDocuments # 983088

$ace | Set-SecurityDescriptor

<実行結果>

Add-AccessControlEntry : 用語 'Add-AccessControlEntry' は、コマンドレット、関数、スクリプト ファイル、または操作可能な

プログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しい

ことを確認してから、再試行してください。

発生場所 C:\Users\******\Desktop\printer_ace_add.ps1:10 文字:8

  • $ace | Add-AccessControlEntry -Principal Everyone -PrinterRights Mana ...

+        ~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo          : ObjectNotFound: (Add-AccessControlEntry:String) [], CommandNotFoundException

    + FullyQualifiedErrorId : CommandNotFoundException

Add-AccessControlEntry : 用語 'Add-AccessControlEntry' は、コマンドレット、関数、スクリプト ファイル、または操作可能な

プログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しい

ことを確認してから、再試行してください。

発生場所 C:\Users\******\Desktop\printer_ace_add.ps1:11 文字:8

  • $ace | Add-AccessControlEntry -Principal Everyone -PrinterRights Mana ...

+        ~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo          : ObjectNotFound: (Add-AccessControlEntry:String) [], CommandNotFoundException

    + FullyQualifiedErrorId : CommandNotFoundException

Set-SecurityDescriptor : 用語 'Set-SecurityDescriptor' は、コマンドレット、関数、スクリプト ファイル、または操作可能な

プログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しい

ことを確認してから、再試行してください。

発生場所 C:\Users\******\Desktop\printer_ace_add.ps1:12 文字:8

  • $ace | Set-SecurityDescriptor

+        ~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo          : ObjectNotFound: (Set-SecurityDescriptor:String) [], CommandNotFoundException

    + FullyQualifiedErrorId : CommandNotFoundException

<実行環境のバージョン>

Windows7

PowerShell2.0

<参考にしたサイト>

https://gallery.technet.microsoft.com/scriptcenter/PowerShellAccessControl-d3be7b83#content

https://docs.microsoft.com/ja-jp/windows/desktop/CIMWin32Prov/setsecuritydescriptor-method-in-class-win32-printer

家庭向け Windows | 以前の Windows バージョン | アプリ

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

3 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2018-07-26T11:30:08+00:00

    PowerShellでプリンタのセキュリティ設定を変更したいのですが、

    「Add-AccessControlEntry」が動作しません。

    どのように記述すれば動作するのかご教示ください。

    <やりたい事詳細>

    プリンタプロパティの「セキュリティ」タブで「Everyone」が「印刷:許可」のみ設定

    された状態になっています。

    この状態から、「このプリンターの管理」と「ドキュメントの管理」の権限を追加したいのです。

    ※他のアクセス権はそのまま残したい。

    <記述内容>

    #対象プリンタの指定

    $S = "RICOH RPCS Basic Color"

    $SFilter = "name='" + $S + "'"

    $SPrinter = gwmi win32_printer -filter $SFilter

    #セキュリティ情報を取得

    $ace = $SPrinter.GetSecurityDescriptor

    #'Everyone'のセキュリティ設定を追加

    $ace | Add-AccessControlEntry -Principal Everyone -PrinterRights ManagePrinters  # 983052

    $ace | Add-AccessControlEntry -Principal Everyone -PrinterRights ManageDocuments # 983088

    $ace | Set-SecurityDescriptor

    <実行結果>

    Add-AccessControlEntry : 用語 'Add-AccessControlEntry' は、コマンドレット、関数、スクリプト ファイル、または操作可能な

    プログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しい

    ことを確認してから、再試行してください。

    発生場所 C:\Users\******\Desktop\printer_ace_add.ps1:10 文字:8

    • $ace | Add-AccessControlEntry -Principal Everyone -PrinterRights Mana ...

    +        ~~~~~~~~~~~~~~~~~~~~~~

        + CategoryInfo          : ObjectNotFound: (Add-AccessControlEntry:String) [], CommandNotFoundException

        + FullyQualifiedErrorId : CommandNotFoundException

    Add-AccessControlEntry : 用語 'Add-AccessControlEntry' は、コマンドレット、関数、スクリプト ファイル、または操作可能な

    プログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しい

    ことを確認してから、再試行してください。

    発生場所 C:\Users\******\Desktop\printer_ace_add.ps1:11 文字:8

    • $ace | Add-AccessControlEntry -Principal Everyone -PrinterRights Mana ...

    +        ~~~~~~~~~~~~~~~~~~~~~~

        + CategoryInfo          : ObjectNotFound: (Add-AccessControlEntry:String) [], CommandNotFoundException

        + FullyQualifiedErrorId : CommandNotFoundException

    Set-SecurityDescriptor : 用語 'Set-SecurityDescriptor' は、コマンドレット、関数、スクリプト ファイル、または操作可能な

    プログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しい

    ことを確認してから、再試行してください。

    発生場所 C:\Users\******\Desktop\printer_ace_add.ps1:12 文字:8

    • $ace | Set-SecurityDescriptor

    +        ~~~~~~~~~~~~~~~~~~~~~~

        + CategoryInfo          : ObjectNotFound: (Set-SecurityDescriptor:String) [], CommandNotFoundException

        + FullyQualifiedErrorId : CommandNotFoundException

    <実行環境のバージョン>

    Windows7

    PowerShell2.0

    <参考にしたサイト>

    https://gallery.technet.microsoft.com/scriptcenter/PowerShellAccessControl-d3be7b83#content

    https://docs.microsoft.com/ja-jp/windows/desktop/CIMWin32Prov/setsecuritydescriptor-method-in-class-win32-printer

    マイクロソフト コミュニティは一般ユーザー向けのフォーラムなので Msdn フォーラム が適当かと

    この回答は役に立ちましたか?

    2 人がこの回答が役に立ったと思いました。
    0 件のコメント コメントはありません
  2. Anonymous
    2018-07-31T11:36:44+00:00

    Prolyさん、ご指摘ありがとうございます。

    そちらで再質問させて頂きます。

    移行先

    PowerShellを用いたプリンタセキュリティへのアクセス権追加について

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2018-07-27T07:40:50+00:00

    Prolyさん、ご指摘ありがとうございます。

    そちらで再質問させて頂きます。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません