web-dev-qa-db-ja.com

コマンドラインツールを使用してWindowsネットワーク共有のアクセス許可を変更する

できますか ダウンロードせずにsubinacl.exe 全然?

7
BlueRaja

icacls.execacls.exeを見ましたか? (両方ともSystem32フォルダ、少なくともWin7では)

2
Franci Penov

古い質問ですが、最近、「フルコントロール」を制限するために、複数のホーム共有に対してこれを行う必要がありました。これをNTFSレベルで行うこともできますが、再帰的に適用するには時間がかかり、元に戻すには時間がかかります。ADUCMMCなどのツールを使用すると、アクセス許可を元に戻すことができます。

初期セットアップ中にのみ、既存の共有のアクセス許可を管理するための組み込みのコマンドラインツールはないようですが、複数の許可を行うことができるため、共有が一時的にオフラインになっても問題にならない場合は、次のコマンドを使用できます。

NET SHARE example /DELETE /Y
NET SHARE example=C:\FolderPath /GRANT:Everyone,Change /GRANT:Administrators,Full /UNLIMITED /CACHE:None

しかし、それは私にとってオプションではなかったので、共有名をターゲットにするオプションもある優れた 'SetACL.exe'ツールを使用することになりました。

SetACL.exe -on "example" -ot shr -actn ace -ace "n:S-1-1-0;p:change"
SetACL.exe -on "example" -ot shr -actn ace -ace "n:S-1-5-32-544;p:full"

これは、Everyone(S-1-1-0)とLocal Administrators(S-1-5-32-544)の 'Well-known SID'を使用していることに注意してください。名前を使用することもできますが、ルックアップが回避され、ドメイングループと混同される可能性はありません。

効率を上げるために、複数の変更を1つのコマンドにマージできます。

SetACL.exe -on "example" -ot shr -actn ace -ace "n:S-1-1-0;p:change" -ace "n:S-1-5-32-544;p:full"

SetACLコマンドは、共有のフォルダーパスではなく共有名を対象としていることに注意してください。共有のフォルダーパスは、通常NTFSアクセス許可に使用されます。

5
WhoIsRich

たぶん、Windows 2003で。私はまだ試していません...

net share /grant 

コメントの後に、Win 7 x64マシンから編集します。

[/GRANT:user,[READ | CHANGE | FULL]]

C:\Users\gbn>net share /?
The syntax of this command is:

NET SHARE
sharename
          sharename=drive:path [/GRANT:user,[READ | CHANGE | FULL]]
                               [/USERS:number | /UNLIMITED]
                               [/REMARK:"text"]
                               [/CACHE:Manual | Documents| Programs | BranchCach
e | None]
          sharename [/USERS:number | /UNLIMITED]
                    [/REMARK:"text"]
                    [/CACHE:Manual | Documents | Programs | BranchCache | None]
          {sharename | devicename | drive:path} /DELETE
          sharename \\computername /DELETE


C:\Users\gbn>
3
gbn