Windows Server 2012でICACLSを使用してグループ権限を割り当てることができない


9

権限を追加するためにicaclsでグループを受け入れることができません。次のコマンドで昇格した電源シェルを使用しています。

icacls 'C:/foo' /grant:r 'Group Foo':f

次のエラーが発生します。

Invalid parameter "Group Foo"

私もSUIDを使用してみましたが、それも失敗します。「Domain \ Group Foo」も試しました

グループが使用できるようにしようとしているファイルがたくさんあります。Windows Server 2012で大量のアクセス許可を追加する適切な方法は何ですか?

-編集-

E:\> icacls "E:/Contact Numbers.xlsx" /grant:r "Users":f
Invalid parameter "Users"

回答:


10

一重引用符の代わりに二重引用符を使用します。

C:\>mkdir foo

C:\>icacls 'C:/foo' /grant:r 'Users':f
'Users': No mapping between account names and security IDs was done.
Successfully processed 0 files; Failed processing 1 files

C:\>icacls "C:/foo" /grant:r "Users":f
processed file: C:/foo
Successfully processed 1 files; Failed processing 0 files

私はあなたが、PowerShellを使用していないたことを逃しましたcmd。Powershellは、外部コマンドと引用を混在させると、かなり奇妙になります。Powershellを使用した例をいくつか示します。

PS v2:引用符をicaclsあなたに渡すには、キャレットでエスケープする必要があります。「F」の前後の括弧もエスケープする必要があることに注意してください。

PS C:\>icacls `"C:/foo`" /grant:r `"Users`":`(F`)

PS v3:バージョン3は--%、行の残りをエスケープする新しいエスケープシーケンス(ダッシュ、ダッシュ、パーセント)を提供します。これにより、複雑な外部パラメータも簡単になります。

PS C:\>icacls --% "C:/foo" /grant:r "Users":F

上記の私の編集を参照してください。これも機能しませんでした。「アカウント名間のマッピングがありません」ではなく「無効なパラメーター」エラーが表示されることに注意してください
user319862

Power Shellの代わりにコマンドプロンプトを使用してもう一度試したところ、うまくいきました。問題の内容はわかりませんが、正しい構文に感謝します。
user319862 2013年

申し訳ありませんが、PSを使用していたことを完全にスキップしました。PS 2/3の例を含むように更新されました。
jscott 2013年

それが機能しないと不平を言う人には、コマンドプロンプトでコマンドを使用する必要があります。コマンドはpowershellでは機能しません。
Mike G

1

jscottのスレッドにコメントを付けることはできませんが、Powershellでコマンドを適切に実行するには、パラメーター全体を引用符で囲む必要があります。

    C:\> icacls .\foo /grant:r "Users:F"

これは、スペースが含まれているグループ名、および継承権限を含むコマンドに対して機能します。

    C:\> icacls .\foo /grant:r "Remote Desktop Users:(OI)(CI)(F)"

疑問がある場合は、常に完全なパラメーターを引用符で囲んでください。お役に立てれば!:)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.