DSC 파일 리소스DSC File Resource

적용 대상: Windows PowerShell 4.0, Windows PowerShell 5.0Applies To: Windows PowerShell 4.0, Windows PowerShell 5.0

PowerShell DSC(필요한 상태 구성)의 파일 리소스에서는 대상 노드에 있는 파일 및 폴더를 관리하는 메커니즘을 제공합니다.The File resource in Windows PowerShell Desired State Configuration (DSC) provides a mechanism to manage files and folders on the target node.

참고: MatchSource 속성이 $false(기본값)로 설정된 경우 복사할 콘텐츠는 구성을 처음으로 적용할 때 캐시됩니다.Note: If the MatchSource property is set to $false (which is the default value), the contents to be copied are cached the first time the configuration is applied. 이후 구성을 적용할 때 SourcePath로 지정된 경로에서 업데이트된 파일 및/또는 폴더가 있는지 확인하지 않습니다.Subsequent applications of the configuration will not check for updated files and/or folders in the path specified by SourcePath. 구성을 적용할 때마다 SourcePath에 파일 및/또는 폴더에 대한 업데이트가 있는지 확인하려면 MatchSource$true로 설정합니다.If you want to check for updates to the files and/or folders in SourcePath every time the configuration is applied, set MatchSource to $true.

구문Syntax

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] ]
    [ Ensure = [string] { Absent | Present } ]
    [ Force = [bool] ]
    [ Recurse = [bool] ]
    [ DependsOn = [string[]] ]
    [ SourcePath = [string] ]
    [ Type = [string] { Directory | File } ]
    [ MatchSource = [bool] ]
}

속성Properties

속성Property 설명Description
DestinationPathDestinationPath 파일 또는 디렉터리에 대한 상태를 확인하려는 위치를 나타냅니다.Indicates the location where you want to ensure the state for a file or directory.
특성Attributes 대상으로 지정된 파일 또는 디렉터리에 대한 특성의 필요한 상태를 지정합니다.Specifies the desired state of the attributes for the targeted file or directory.
체크섬Checksum 두 파일이 동일한 것인지 결정할 때 사용할 체크섬 유형을 나타냅니다.Indicates the checksum type to use when determining whether two files are the same. __Checksum__을 지정하지 않은 경우 비교에 파일 또는 디렉터리 이름만 사용됩니다.If Checksum is not specified, only the file or directory name is used for comparison. 유효한 값에는 SHA-1, SHA-256, SHA-512, createdDate, modifiedDate이 있습니다.Valid values include: SHA-1, SHA-256, SHA-512, createdDate, modifiedDate.
콘텐츠Contents 특정 문자열과 같이 파일의 내용을 지정합니다.Specifies the contents of a file, such as a particular string.
자격 증명Credential 이러한 액세스가 필요한 경우 소스 파일과 같은 리소스에 액세스하는 데 필요한 자격 증명을 나타냅니다.Indicates the credentials that are required to access resources, such as source files, if such access is required.
EnsureEnsure 파일이나 디렉터리가 있는지를 나타냅니다.Indicates if the file or directory exists. 파일 또는 디렉터리가 존재하지 않도록 하려면 이 속성을 "Absent"으로 설정합니다.Set this property to "Absent" to ensure that the file or directory does not exist. 파일 또는 디렉터리가 존재하도록 하려면 이 속성을 "Present"으로 설정합니다.Set it to "Present" to ensure that the file or directory does exist. 기본값은 "Present"입니다.The default is "Present".
ForceForce 특정 파일 작업(예: 파일 덮어쓰기나 비어 있지 않은 디렉터리 삭제)을 수행하면 오류가 발생합니다.Certain file operations (such as overwriting a file or deleting a directory that is not empty) will result in an error. Force 속성을 사용하면 이러한 오류가 무시됩니다.Using the Force property overrides such errors. 기본값은 __$false__입니다.The default value is $false.
RecurseRecurse 하위 디렉터리가 포함되어 있는지를 나타냅니다.Indicates if subdirectories are included. 하위 디렉터리가 포함되도록 하려면 이 속성을 __$true__로 설정합니다.Set this property to $true to indicate that you want subdirectories to be included. 기본값은 __$false__입니다.The default is $false. 참고: Type 속성이 Directory로 설정되어 있을 때에만 이 속성이 유효합니다.Note: This property is only valid when the Type property is set to Directory.
DependsOnDependsOn 이 리소스를 구성하려면 먼저 다른 리소스의 구성을 실행해야 함을 나타냅니다.Indicates that the configuration of another resource must run before this resource is configured. 예를 들어, 먼저 실행하려는 리소스 구성 스크립트 블록의 ID가 __ResourceName__이고 해당 형식이 __ResourceType__일 경우, 이 속성을 사용하기 위한 구문은 DependsOn = "[ResourceType]ResourceName"입니다.For example, if the ID of the resource configuration script block that you want to run first is ResourceName and its type is ResourceType, the syntax for using this property is DependsOn = "[ResourceType]ResourceName".
SourcePathSourcePath 파일 또는 폴더 리소스를 복사해 올 소스 경로를 나타냅니다.Indicates the path from which to copy the file or folder resource.
유형Type 구성되는 리소스가 디렉터리인지 또는 파일인지를 나타냅니다.Indicates if the resource being configured is a directory or a file. 리소스가 디렉터리임을 나타내려면 이 속성을 "Directory"로 설정합니다.Set this property to "Directory" to indicate that the resource is a directory. 리소스가 파일을 나타내려면 이 속성을 "File"로 설정합니다.Set it to "File" to indicate that the resource is a file. 기본값은 "File"입니다.The default value is “File”.
MatchSourceMatchSource 기본값 __$false__로 설정되면, 소스의 파일이 모두(예: 파일 A, B 및 C) 구성이 처음 적용된 대상에 추가됩니다.If set to the default value of $false, then any files on the source (say, files A, B, and C) will be added to the destination the first time the configuration is applied. 새 파일(D)이 소스에 추가되면, 구성이 나중에 다시 적용되는 경우에도 이 파일은 대상에 추가되지 않습니다.If a new file (D) is added to the source, it will not be added to the destination, even when the configuration is re-applied later. 값이 __$true__이면, 구성이 적용될 때마다 나중에 소스(예: 이 예의 파일 D)에서 발견되는 새 파일이 대상에 추가됩니다.If the value is $true, then each time the configuration is applied, new files subsequently found on the source (such as file D in this example) are added to the destination. 기본값은 $false입니다.The default value is $false.

예제Example

다음 예제에서는 파일 리소스를 사용하여 소스 컴퓨터(예: "끌어오기" 서버)에서 경로가 C:\Users\Public\Documents\DSCDemo\DemoSource인 디렉터리가 대상 노드에도 있도록(모든 하위 디렉터리와 함께) 하는 방법을 보여 줍니다.The following example shows how to use the File resource to ensure that a directory with the path C:\Users\Public\Documents\DSCDemo\DemoSource on a source computer (such as the “pull” server) is also present (along with all subdirectories) on the target node. 또한 완료되면 로그에 확인 메시지도 쓰고 로깅 작업 전에 파일 검사 작업이 실행되도록 하는 구문도 포함합니다.It also writes a confirmatory message to the log when complete and includes a statement to ensure that the file-checking operation runs prior to the logging operation.

Configuration FileResourceDemo
{
    Node "localhost"
    {
        File DirectoryCopy
        {
            Ensure = "Present"  # You can also set Ensure to "Absent"
            Type = "Directory" # Default is "File".
            Recurse = $true # Ensure presence of subdirectories, too
            SourcePath = "C:\Users\Public\Documents\DSCDemo\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" # This means run "DirectoryCopy" first.
        }
    }
}