DSC ファイル リソース

適用先:Windows PowerShell 4.0、Windows PowerShell 5.x

Windows PowerShell Desired State Configuration (DSC) の File リソースは、ターゲット ノード上でファイルとフォルダーを管理するためのメカニズムを備えています。 DestinationPathSourcePath は両方ともターゲット ノードからアクセスできる必要があります。

注意

この DSC リソースのこのドキュメントでは、バージョン 7.2 より前の PowerShell に含まれているバージョンについて説明します。 PSDscResources モジュールには、Microsoft によって正式にサポートされている新しい DSC リソースと更新された DSC リソースが含まれています。 PSDscResources モジュールは、PowerShell ギャラリーから入手できます。

詳細と更新されたドキュメントについては、 PSDscResources リファレンス ドキュメントを参照してください

構文

File [string] #ResourceName
{
    DestinationPath = [string]
    [ Attributes = [string[]] { Archive | Hidden | ReadOnly | System }]
    [ Checksum = [string] { CreatedDate | ModifiedDate | SHA-1 | SHA-256 | SHA-512 } ]
    [ Contents = [string] ]
    [ Credential = [PSCredential] ]
    [ Force = [bool] ]
    [ Recurse = [bool] ]
    [ SourcePath = [string] ]
    [ Type = [string] { Directory | File } ]
    [ MatchSource = [bool] ]
    [ DependsOn = [string[]] ]
    [ Ensure = [string] { Absent | Present } ]
    [ PsDscRunAsCredential = [PSCredential] ]
}

Properties

プロパティ 説明
DestinationPath EnsurePresent または Absent であることを保証するターゲット ノード上の場所。
属性 対象となるファイルまたはディレクトリの属性の望ましい状態。 有効な値は、ArchiveHiddenReadOnlySystem です。
Checksum 2 つのファイルが同じであるかどうかを決定するときに使用するチェックサム タイプ。 有効な値は、次のとおりです。SHA-1SHA-256SHA-512createdDatemodifiedDate
内容 Fileに使用した場合にのみ有効です。 Ensure (保証) するコンテンツがターゲット ファイルで Present または Absent であることを示します。
資格情報 ソース ファイルなどのリソースにアクセスするために必要な資格情報。
Force 結果としてエラーになるアクセス操作 (ファイルの上書き、空でないディレクトリの削除など) をオーバーライドします。 既定値は $false です。
Recurse Directoryに使用した場合にのみ有効です。 すべてのディレクトリ コンテンツ、サブディレクトリ、およびサブディレクトリ コンテンツに対して状態操作を再帰的に実行します。 既定値は $false です。
SourcePath ファイルまたはフォルダー リソースのコピー元のパス。
Type 構成されるリソースの種類。 有効な値は DirectoryFile です。 既定値は File です。
MatchSource 最初のコピー後にソース ディレクトリに追加された新しいファイルをリソースで監視するかどうかを決定します。 $true の値は、最初のコピー後、すべての新しいソース ファイルが指定した場所にコピーされることを示します。 $false に設定した場合、リソースではソース ディレクトリの内容がキャッシュされ、最初のコピー後に追加されたファイルはすべて無視されます。 既定値は $false です。

警告

Credential または PSRunAsCredential の値を指定しない場合、リソースはターゲット ノードのコンピューター アカウントを使用して SourcePath にアクセスします。 SourcePath が UNC 共有の場合、"アクセスが拒否されました" エラーが発生する可能性があります。 アクセス許可が適切に設定されていることを保証するか、Credential または PSRunAsCredential プロパティを使用して、使用するアカウントを指定します。

共通プロパティ

プロパティ 説明
DependsOn このリソースを構成する前に、他のリソースの構成を実行する必要があることを示します。 たとえば、最初に実行するリソース構成スクリプト ブロックの ID が ResourceName で、そのタイプが ResourceType である場合、このプロパティを使用する構文は DependsOn = "[ResourceType]ResourceName" になります。
Ensure Destination にファイルと Contents が存在するか、しないかを判断します。 ファイルが存在することを保証するには、このプロパティを Present に設定します。 コンテンツが存在しないことを保証するには、Absent に設定します。 既定値は Present です。
PsDscRunAsCredential リソース全体を実行するための資格情報を設定します。

注意

PsDscRunAsCredential という共通プロパティは、他の資格情報という文脈の中であらゆる DSC リソースを実行するために WMF 5.0 で追加されました。 詳細については、「DSC リソースに対して資格情報を使用する」を参照してください。

関連情報

  • DestinationPath のみを指定した場合、リソースではパスが存在すること (Present) または存在しないこと (Absent) が保証されます。
  • Type の値が DirectorySourcePathDestinationPath を指定すると、リソースではソース ディレクトリがコピー先のパスにコピーされます。 プロパティ RecurseForceMatchSource で実行されるコピー操作の種類が変更され、Credential ではソース ディレクトリへのアクセスに使用するアカウントが決まります。
  • ディレクトリをコピーするときに Recurse プロパティを $true に設定しない場合、既存のディレクトリの内容はコピーされません。 指定したディレクトリのみがコピーされます。
  • Attributes プロパティの ReadOnly 値を DestinationPath と共に指定した場合、Present で指定のパスが作成され、Contents でファイルのコンテンツが設定されることを Ensure (保証) してください。 また、Absent 設定で Attributes プロパティ全体が無視され、指定のパスであらゆるファイルが削除されることを確認 (Ensure) してください。

次の例では、ファイル リソースを使用して、ディレクトリとそのサブディレクトリをプル サーバーからターゲット ノードにコピーします。 操作が成功すると、Log リソースで確認メッセージがイベント ログに書き込まれます。

ソース ディレクトリは、プル サーバーから共有されている UNC パス (\\PullServer\DemoSource) です。 Recurse プロパティを使用すると、すべてのサブディレクトリも確実にコピーされます。

重要

ターゲット ノード上の LCM は、既定でローカル システム アカウントのコンテキストで実行されます。 SourcePath へのアクセスを許可するには、ターゲット ノードのコンピューター アカウントに適切なアクセス許可を付与します。 CredentialPSDSCRunAsCredential のいずれでも、LCM が SourcePath にアクセスするために使用するコンテキストが変更されます。 それでも SourcePath へのアクセスに使用されるアカウントへのアクセスを許可する必要があります。

Configuration FileResourceDemo
{
    Import-DscResource -ModuleName 'PSDesiredStateConfiguration'

    Node "localhost"
    {
        File DirectoryCopy
        {
            Ensure = "Present" # Ensure the directory is Present on the target node.
            Type = "Directory" # The default is File.
            Recurse = $true # Recursively copy all subdirectories.
            SourcePath = "\\PullServer\DemoSource"
            DestinationPath = "C:\Users\Public\Documents\DSCDemo\DemoDestination"
        }

        Log AfterDirectoryCopy
        {
            # The message below gets written to the Microsoft-Windows-Desired State Configuration/Analytic log
            Message = "Finished running the file resource with ID DirectoryCopy"
            DependsOn = "[File]DirectoryCopy" # Depends on successful execution of the File resource.
        }
    }
}

DSC で資格情報を使用する方法の詳細については、実行ユーザーまたはデータの資格情報の構成に関する記事を参照してください。