Xcacls.vbs を使用して NTFS アクセス許可を変更する方法

文書翻訳 文書翻訳
文書番号: 825751 - 対象製品
すべて展開する | すべて折りたたむ

目次

概要

Extended Change Access Control List ツール (Xcacls.exe) の更新版が Microsoft Visual Basic スクリプト (Xcacls.vbs) としてマイクロソフトから提供されています。この資料では、Xcacls.vbs スクリプトを使用してファイルまたはフォルダの NTFS ファイル システムのアクセス許可を変更する方法と表示する方法について説明します。 Xcacls.vbs をコマンド ラインから使用して、エクスプローラでアクセスできるファイル システムのすべてのセキュリティ オプションを設定できます。Xcacls.vbs はファイルのアクセス制御リスト (ACL) を表示および変更します。

: Xcacls.vbs は Microsoft Windows 2000、Microsoft Windows XP、および Microsoft Windows Server 2003 とのみ互換性があります。Xcacls.vbs はマイクロソフトでサポートされていません。

Xcacls.vbs のセットアップと使用

Xcacls.vbs をセットアップして使用するには、以下の手順を実行します。
  1. 最新版の Xcacls.vbs を次のマイクロソフト Web サイトから入手します。
    http://download.microsoft.com/download/f/7/8/f786aaf3-a37b-45ab-b0a2-8c8c18bbf483/XCacls_Installer.exe
  2. Xcacls_Installer.exe をダブルクリックします。抽出したファイルの保存場所の指定を求めるダイアログ ボックスが表示されたら、C:\Windows など、コンピュータの検索パス設定内のフォルダを指定します。
  3. デフォルトのスクリプティング エンジンを Wscript から Cscript に変更します (Xcacls.vbs スクリプトは Cscript で最適に動作します)。変更を行うには、コマンド プロンプトで次のように入力し、Enter キーを押します。
    cscript.exe /h:cscript
    : デフォルトのスクリプティング エンジンを Cscript に変更することで影響を受けるのは、スクリプトの画面への書き込み方法のみです。Wscript では各行が個別に [OK] ダイアログ ボックスに書き込まれ、Cscript では各行がコマンド ウィンドウに書き込まれます。デフォルトのスクリプティング エンジンを変更しない場合は、次のコマンドを使用してスクリプトを実行する必要があります。
    cscript.exe xcacls.vbs
    一方、デフォルトを Cscript に変更する場合は、次のコマンドを使用してスクリプトを実行できます。
    xcacls.vbs
    .
  4. Xcacls.vbs コマンドの構文を参照するには、コマンド プロンプトで次のように入力します。
    xcacls.vbs /?

Xcacls.vbs コマンドの構文

以下は、xcacls.vbs /? コマンドを実行することにより出力される Xcacls.vbs コマンドの構文とその説明です。
使用法 :
XCACLS filename [/E] [/G user:perm;spec] [...] [/R user [...]]
 [/F] [/S] [/T]
 [/P user:perm;spec [...]] [/D user:perm;spec] [...]
 [/O user] [/I ENABLE/COPY/REMOVE] [/N]
 [/L filename] [/Q] [/DEBUG]
 filename [必須] 単独で指定した場合、ACL が表示されます
 (filename にはファイル名、ディレクトリ名、または
 ワイルドカード文字を指定することができ、
 パス全体を含めることができます。パスを指定しない場合、
 現在のディレクトリが想定されます)。

 注 :
 - filename にスペース、または &、$、# などの特殊文字を含める場合は、
 名前を引用符で囲みます。
 - filename がディレクトリ名の場合、/A を指定しない限り、
 そのディレクトリにあるファイルおよびサブディレクトリの
 一部は変更されません。

 /F [ディレクトリまたはワイルドカードを使用] : このオプションにより
 入力されたディレクトリにあるすべてのファイルが変更されますが、/T も指定されない限り、
 サブディレクトリはスキャンされません。
 filename がディレクトリ名の場合に /F を指定しないと、
 ファイルの変更は行われません。
 /S [ディレクトリまたはワイルドカードを使用] : このオプションにより
 入力されたディレクトリにあるすべてのサブフォルダが変更されますが、
 /T も指定されない限り、サブディレクトリはスキャンされません。
 filename がディレクトリ名の場合に /S を指定しないと、
 サブディレクトリの変更は行われません。
 /T [ディレクトリに対してのみ使用] : 各サブディレクトリを
 スキャンして、同様に変更します。
 このスイッチを使用すると、filename がディレクトリ名かワイルドカード文字の場合のみ、
 ディレクトリがスキャンされます。

 /E : ACL を置き換えずに、ACL を編集します。
 /G user:GUI : Windows GUI の (詳細でない) 標準のアクセス許可と
 同様のセキュリティ アクセス許可を与えます。
 /G user:Perm;Spec : 指定されたユーザーにアクセス許可を与えます
 (/G はユーザーの既存のアクセス許可に追加されます)。
 User : User にスペースを含める場合は、名前を引用符で囲みます。
 User に #machine# を指定すると、#machine# がドメイン コントローラでない場合は、
 実際のコンピュータ名に置き換えられます。
 ドメイン コントローラの場合は、
 実際のドメイン名に置き換えられます。

 3.0 の新機能 : User には実際の SID を表す
 文字列を指定できますが、SID# で始める必要があります。
 例 : SID#S-1-5-21-2127521184-160...
 (例に含まれる SID 文字列の一部は省略されています)
 (任意のユーザーが SID# を持っている場合、グローバルにすべての
 一致ユーザーは、名前ではなく SID に一致する必要があります。
 そのため、Domain\User に一致するすべてのアカウントに
 変更を適用する場合は、
 ユーザーの 1 人として SID# を
 指定しないでください)

 GUI : 標準のアクセス許可を表し、以下の値を使用できます。
 アクセス許可 :
 F フル コントロール
 M 変更
 X 読み取りと実行
 L フォルダの内容の一覧表示
 R 読み取り
 W 書き込み
 注 : a ; を指定すると、
 Perm;Spec パラメータの組み合わせと解釈されます。

 Perm : "ファイルのみ" に適用されることを表します。以下の値を使用できます。
 アクセス許可 :
 F フル コントロール
 M 変更
 X 読み取りと実行
 R 読み取り
 W 書き込み

 詳細設定 :
 D 所有権の取得
 C アクセス許可の変更
 B アクセス許可の読み取り
 A 削除
 9 属性の書き込み
 8 属性の読み取り
 7 サブフォルダとファイルの削除
 6 フォルダのスキャンとファイルの実行
 5 拡張属性の書き込み
 4 拡張属性の読み取り
 3 フォルダの作成/データの追加
 2 ファイルの作成/データの書き込み
 1 フォルダの一覧/データの読み取り

 Spec は "フォルダとサブディレクトリのみ" に適用されることを表し、
 Perm と同じ値を使用できます。

 /R user : 指定されたユーザーのアクセス許可を無効にします
 (ユーザーに対する任意の [許可] または [拒否] ACL を削除します)。
 /P user : GUI 標準のアクセス許可と同様のセキュリティ アクセス許可を置き換えます。
 /P user:perm;spec : 指定されたユーザーのアクセス許可を置き換えます。
 アクセス許可の指定については、/G オプションを参照してください
 (ユーザーに設定されたアクセス許可セットがない場合、/P は /G と同様に動作します)。
 /D user : GUI 標準のアクセス許可と同様のセキュリティ アクセス許可を拒否します。

 /D user:perm;spec : 指定されたユーザーのアクセス許可を拒否します。
 アクセス許可の指定については、/G オプションを参照してください
 (/D はユーザーの既存のアクセス許可に追加されます)。
 /O user : 所有権をこのユーザーまたはグループに変更します。
 /I : 継承フラグを切り替えます。スイッチを指定しない場合、デフォルトでは、
 継承される ACL は変更されません。スイッチには以下の値を指定できます。

 ENABLE - この値は、継承フラグが有効になっていない場合に、
 継承フラグを有効にします。
 COPY - この値は、継承フラグを無効にし、
 継承される ACL を
 有効な ACL にコピーします。
 REMOVE - この値は、継承フラグを無効にし、
 継承される ACL のコピーも行いません。
 これは ENABLE の反対です。
 スイッチを指定しない場合、/I は無視され、
 継承される ACL は変更されません。

 /L filename : ログ用のファイル名を指定します。ファイルが現在のディレクトリにない場合は、
 パス名を指定できます。
 既にあるファイルに追加されるか、存在していない場合は作成されます。
 ファイルが存在している場合はテキスト ファイルである必要があります。テキスト ファイル以外の場合、エラーが発生します。
 ファイル名を指定しない場合、デフォルトの XCACLS という名前が
 使用されます。
 /Q : Quiet モードを有効にします。デフォルトでは、無効になっています。
 Quiet モードを有効にすると、画面には何も表示されません。
 /DEBUG : デバッグ モードを有効にします。デフォルトでは、無効になっています。
 デバッグ モードを有効にすると、追加情報が表示または記録されます。
 追加情報では、Sub/Function Enter および Exit が
 他の重要な情報と一緒に
表示されます。
 /SERVER servername : スクリプトを実行する対象のリモート サーバー名を入力します。
 /USER username : リモート接続で偽装するユーザー名を入力します 
 (PASS スイッチが必要です)。ローカル接続の場合は無視されます。
 /PASS password : USER スイッチで使用するパスワードを入力します 
 (USER スイッチが必要です)。

ワイルドカード文字は複数のファイルをコマンドで指定する場合に使用できます。次のように使用します。
 * 0 個以上の文字の任意の文字列
 ? 任意の 1 文字
複数のユーザーをコマンドで指定することができます。
アクセス許可は組み合わせて指定できます。


Xcacls.vbs を使用したアクセス許可の表示


Xcacls.vbs を使用して、ファイルまたはフォルダのアクセス許可を表示することもできます。 たとえば、C:\Test という名前のフォルダがある場合、コマンド プロンプトで次のように入力して Enter キーを押し、フォルダのアクセス許可を表示します。
xcacls.vbs c:\test
通常、以下のような結果が得られます。
C:\>XCACLS.VBS c:\test
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
Starting XCACLS.VBS (Version: 3.4) Script at 6/11/2003 10:55:21 AM
Startup directory:
"C:\test"
Arguments Used:
        Filename = "c:\test"
**************************************************************************
Directory: C:\test
Permissions:
Type     Username                Permissions           Inheritance
Allowed  BUILTIN\Administrators  Full Control          This Folder, Subfolde
Allowed  NT AUTHORITY\SYSTEM     Full Control          This Folder, Subfolde
Allowed  Domain1\User1           Full Control          This Folder Only
Allowed  \CREATOR OWNER          Special (Unknown)     Subfolders and Files
Allowed  BUILTIN\Users           Read and Execute      This Folder, Subfolde
Allowed  BUILTIN\Users           Create Folders / Appe This Folder and Subfo
Allowed  BUILTIN\Users           Create Files / Write  This Folder and Subfo
No Auditing set
Owner: Domain1\User1


: この xcacls.vbs c:\test の出力例は、グラフィカル ユーザー インターフェイス (GUI) で表示されるテキストと一致しています。コマンド ウィンドウでは正常に表示されない単語もあります。

スクリプトのバージョン、スタートアップ ディレクトリ、および使用した引数も出力されます。

ワイルドカード文字を使用して、ディレクトリ内で一致したファイルを表示することもできます。たとえば次のように入力すると、C:\Test フォルダにある拡張子が ".log" のファイルがすべて表示されます。
xcacls.vbs c:\test\*.log


以下の Xcacls.vbs コマンドは Xcacls.vbs の使用例です。

xcacls.vbs c:\test\ /g domain\testuser1:f /f /t /e
このコマンドにより既存のアクセス許可が編集されます。Domain\TestUser1 に C:\Test 内のすべてのファイルに対するフル コントロール アクセス許可を与え、C:\Test のサブフォルダをスキャンして、見つかった任意のファイルを変更します。このコマンドではディレクトリのアクセス許可は変更されません。
xcacls.vbs c:\test\ /g domain\testuser1:f /s /l "c:\xcacls.log"
このコマンドは既存のアクセス許可を置き換えます。Domain\TestUser1 に C:\Test 内のすべてのサブフォルダに対するフル コントロール アクセス許可を与え、C:\Xcacls.log に記録します。このコマンドではファイルは変更されず、ディレクトリはスキャンされません。
xcacls.vbs c:\test\readme.txt /o "machinea\group1"
このコマンドは Readme.txt の所有者をグループ MachineA\Group1 に変更します。
xcacls.vbs c:\test\badcode.exe /r "machinea\group1" /r "domain\testuser1"
このコマンドは、MachineA\Group1 および Domain\TestUser1 の C:\Test\Badcode.exe に対するアクセス許可を無効にします。
xcacls.vbs c:\test\subdir1 /i enable /q
このコマンドはフォルダ C:\Test\Subdir1 の継承を有効にします。画面の出力は行われません。
xcacls.vbs \\servera\sharez\testpage.htm /p "domain\group2":14
このコマンドは、Windows Management Instrumentation (WMI) を使用して \\ServerA\ShareZ にリモート接続します。次にその共有へのローカル パスを取得し、そのパスで、Testpage.htm のアクセス許可を変更します。Domain\Group2 の既存のアクセス許可は変更しませんが、アクセス許可 1 (データの読み取り) および 4 (拡張属性の読み取り) を追加します。/e スイッチが使用されていないため、ファイルの他のアクセス許可は削除されます。
xcacls.vbs d:\default.htm /g "domain\group2":f /server servera /user servera\admin /pass password /e
このコマンドは、WMI を使用して、ServerA に ServerA\Admin としてリモート接続し、Default.htm に対するフル コントロール アクセス許可を Domain\Group2 に与えます。Domain\Group2 の既存のアクセス許可は削除され、ファイルの他のアクセス許可は残ります。

関連情報

Xcacls.exe の使用方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
318754 [HOWTO] Xcacls.exe を使用して NTFS アクセス許可を変更する方法

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 825751 (最終更新日 2004-07-15) を基に作成したものです。

プロパティ

文書番号: 825751 - 最終更新日: 2004年11月4日 - リビジョン: 2.1
この資料は以下の製品について記述したものです。
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Web Edition
  • Microsoft Windows XP Professional
  • Microsoft Windows XP Home Edition
  • Microsoft Windows 2000 Datacenter Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Professional
キーワード:?
kbhowtomaster KB825751
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com