Windowsの言語に関係なく、ICACLSコマンドでフォルダーを設定してすべてのユーザーにフルアクセスできるようにするにはどうすればよいですか?



Regardless Windows Language



解決:

おそらくフランス語版では機能しませんユーザーが異なる

以下に詳述する3つのオプションがあります。

  1. 言語ポータルを使用して、翻訳された名前を取得します



  2. ローカライズされた名前をから取得しますユーザーSID

  3. 使用ユーザーSIDicacls




オプション1:言語ポータルを使用する(Microsoft用語の正規リソース)

ユーザーを検索すると、次のようになります。

ローカライズされたMicrosoft製品の翻訳

英語翻訳製品ユーザーWindows7ユーザーWindows7ユーザーWindows8ユーザー現代の音声ユーザーWindows8ユーザーWindows8.1ユーザーユーザーユーザーWindows8.1ユーザーWindows10ユーザーWindows10ユーザーWindows10ユーザー記念ユーザー更新ユーザーWindows10記念ユーザー更新

これは、次のコマンドが機能する可能性があることを示しています。



icacls C: FullyAccessibleFolder /付与ユーザー:(OI)(CI)F

オプション2:ローカライズされた名前をユーザーSID(S-1-5-32-545)

SID:S-1-5-32-545

名前:ユーザー

説明:組み込みグループ。オペレーティングシステムの初期インストール後、唯一のメンバーはAuthenticatedUsersグループです。コンピューターがドメインに参加すると、ドメインユーザーグループがコンピューターのユーザーグループに追加されます。

ソースWindowsオペレーティングシステムの既知のセキュリティ識別子

ローカライズされたものを取得するにはユーザーグループ名:

この簡単なスクリプトは、「ユーザー」の実際の名前を示します。(S-1-5-32-545)特定のPC上のグループ:

Set objWMIService = GetObject( 'winmgmts:\。 root  cimv2')Set objAccount = objWMIService.Get( 'Win32_SID.SID =' S-1-5-32-545 '')Wscript.Echo objAccount.AccountName

それをvbs拡張子のファイルに入れます(仮定しましょうusersName.vbs)。

今すぐ実行:

echo Y | for / f'delims = '%i in(' cscript -Nologo usersName.vbs ')do cacls foldername / G'%i ':F

ソースCacls、Windows 7、完全なアクセス許可、wmzによるローカル名


オプション3:を使用するユーザーSIDicacls

次のコマンドを使用します。

icacls C: FullyAccessibleFolder / grant * S-1-5-32-545:(OI)(CI)F

ハリー・ジョンストンによるソースコメント


ADグループは、名前ではなくSID番号で指定する必要があります。
「EveryOne」、「ドメインユーザー」などの標準グループの場合、標準化されたSID番号があります。これは、MSDNページの既知のセキュリティ識別子(SID)にあります。

以下は、最も一般的な相対識別子です。

ここに画像の説明を入力してください

SIDの構造は次のように説明されます。

標準表記を使用してSIDをバイナリ形式から文字列形式に変換すると、SIDのコンポーネントを簡単に視覚化できます。

S-R-X-Y1-Y2-Yn-1-Yn

コンポーネント定義S文字列がSIDであることを示しますRリビジョンレベルX識別子権限値Y一連のサブ権限値。nは値の数です。

たとえば、組み込みのAdministratorsグループのSIDは、標準化されたSID表記で次の文字列として表されます。

S-1-5-32-544

このSIDには、次の4つのコンポーネントがあります。

  • 改訂レベル(1)

  • 識別子機関の値(5、NT機関)

  • ドメイン識別子(32、組み込み)

  • 相対識別子(544、管理者)

セキュリティ識別子のしくみ


PowerShellスクリプトが好きであるが、SIDの番号を覚えるのに問題がある場合:

$ acl = Get-Acl。 myfolder $ sid = New-Object System.Security.Principal.SecurityIdentifier([System.Security.Principal.WellKnownSidType] :: BuiltinUsersSid、$ null)$ rule = New-Object System.Security.AccessControl .FileSystemAccessRule($ sid、 'FullControl'、 'ObjectInherit、ContainerInherit'、 'None'、 'Allow')$ acl.AddAccessRule($ rule)Set-Acl。 myfolder $ acl

大量の入力のように見えることは知っていますが、これらの長い識別子はタブで入力されています。

  • System.Security.Principal.SecurityIdentifier fromsecurityi
  • System.Security.Principal.WellKnownSidType fromwellknownsi
  • System.Security.AccessControl.FileSystemAccessRule fromファイルシステム

これらの文字列はすべて.NET識別子であるため、ローカライズされません。

あなたがしたい場合代わりに全員のSIDを使用してください代わりにWorldSidBuiltinUsersSid。すべてのリストを取得するにはWellKnownSidTypeオプション。MSDNを参照するか、次のコマンドを実行します。

[System.Security.Principal.WellKnownSidType] .DeclaredFields |名前を選択