web-dev-qa-db-ja.com

ドメイングループのPowerShell Icacls権限

Icaclsを使用してドメイングループの権限を設定しようとしていますが、何らかの理由で機能しません。

icacls "C:\Temp\ACL" /T /C /grant ("Everyone"+':F') ("System"+':F') ("Administrators"+':F') ("DOMAIN\groupname"+':C') >> C:\temp\c.log

Powershellで実行しようとしていますが、次のエラーが発生します。

Invalid parameter "DOMAIN\groupname:C"

複数の解決策を試しましたが、("DOMAIN\groupname"+':C')がなくても機能します。

2
ou_snaaksie

クレイトンが指摘したように、アクセス制御はMではなくCになります。さらに、コマンドラインで挿入する追加の文字のほとんどは必要ないことにも注意します。 PowerShellは、あまり「ヘルプ」なしでコマンドラインを解析するのが得意です。これは期待どおりに機能するはずです。

icacls C:\Temp\ACL /T /C /grant Everyone:F System:F Administrators:F DOMAIN\GroupName:M

スペースが含まれている場合にのみ、引用符を含める必要があります(これは、cmd.exeプロンプトでコマンドを入力する場合と同じです)。場合によっては、少し変更する必要がありますが、ほとんどの場合「うまくいく」だけです。

詳細については、次の記事を参照してください。

IT Pro Today-PowerShellで実行ファイルを実行

2
Bill_Stewart

これを行う古いスクリプトがありました...あなたのコードは私のものと非常によく似ていました。しかし、私はフルコントロールを付与し、あなたは変更を付与していました。 SUBINACLCALCSなどの他のCLIツールは変更に「C」を使用しましたが、ICACLSは変更に「M」を使用することを決定したようです。

("DOMAIN\groupname"+':C')("DOMAIN\groupname"+':M')に変更すると、運が良くなります

ICACLSの使用法の出力から:

perm is a permission mask and can be specified in one of two forms:
    a sequence of simple rights:
            N - no access
            F - full access
            M - modify access
            RX - read and execute access
            R - read-only access
            W - write-only access
            D - delete access
2
Clayton