Netwrix 1Secure는 데이터와 아이덴티티 전반에 걸쳐 통합된 가시성을 제공합니다 - 14일간 무료로 전체 액세스가 가능합니다.무료 평가판 시작

리소스 센터블로그

PowerShell Create File 자습서: 단계별 가이드

PowerShell Create File 자습서: 단계별 가이드

Aug 12, 2025

시스템 관리자는 매일 Windows 서버에서 파일과 폴더를 만들고, 삭제하고, 이동하는 등 다양한 표준 작업을 수행합니다. 이 블로그 게시물에 제공된 핵심 세트의 Active Directory (AD) PowerShell 명령에 능숙해지면 PowerShell에서 파일을 생성하는 데 필요한 수작업을 크게 줄일 수 있습니다.

시작하기 전에, “Windows PowerShell Scripting Tutorial for Beginners”에 설명된 대로 시스템 정책에서 PowerShell 스크립트를 실행할 수 있도록 허용되어 있는지 확인하세요. 아래 글에서는 파일을 만들고, 삭제하고, 복사하고, 내용을 덧붙이는 데 사용할 PowerShell 명령을 배웁니다.

New-Item Cmdlet을 사용한 기본 파일 생성

PowerShell cmdlet New-Item 을 사용해 디렉터리, 파일 또는 레지스트리 키 같은 개체를 생성합니다. -Path 매개 변수는 새 항목이 생성될 위치를 지정하며, -ItemType 매개 변수는 생성할 항목의 종류를 지정합니다. 예를 들어 -Name-Value 를 사용해 새 항목의 이름과 내용을 지정할 수 있습니다. 이제 PowerShell에서 파일을 만드는 방법을 보여드리겠습니다.

단계별 가이드: 빈 파일과 폴더 만들기

폴더 만들기

      New-Item -Path “c:\NewFolderExample” -ItemType Directory
      

아래는 PowerShell에서 파일을 만드는 명령을 사용한 예시입니다:

a black screen with a directory , lastwritetime , and length name .

파일 만들기

다음으로 아래와 같이 PowerShell에서 파일을 만드는 방법을 살펴보겠습니다.

      New-Item -Path ”c:\NewFolderExample\newfile.txt” -ItemType File
      
a black screen with a directory , mode , lastwritetime , and length name .

매개변수 설명

New-Item cmdlet의 코드 구성 요소를 살펴보겠습니다:

  • -Path: 이 매개변수는 새 파일이 생성될 위치를 지정합니다. 위의 예에서는 새로 만든 폴더에 파일이 생성되었습니다. 이 경로를 파일을 생성하려는 어떤 디렉터리로든 변경할 수 있습니다.
  • -ItemType: 이 매개변수는 생성할 항목의 유형을 정의합니다. 위의 예에서는 Directory와 File을 지정했습니다.

PowerShell에서 항목 경로(item path)는 파일 시스템 또는 다른 공급자 네임스페이스 내에서 항목(예: 파일 또는 디렉터리)의 위치를 의미합니다. 위의 예에서는 모든 요소(공급자, 드라이브, 컨테이너, 항목 이름)를 포함한 완전한 한정 항목 경로(fully qualified item path)를 사용했습니다. 상대 경로(relative path)도 사용할 수 있습니다. 상대 경로에서는 처음에 오는 백슬래시(\)가 드라이브의 루트를 가리키지 않습니다. 대신 폴더 이름의 일부로 처리됩니다. 실제 위치는 PowerShell의 현재 작업 디렉터리에 따라 달라집니다. 아래에서는 상대 파일 경로를 사용해 PowerShell에서 텍스트 파일을 만드는 방법을 보여드립니다:

      New-Item -Path '\NewExampleFolder\newfile.txt' -ItemType File
      

예시

서로 다른 디렉터리에 파일 만들기

PowerShell에서 다양한 디렉터리 내에 파일을 만들려면 -Path 매개변수를 변경하면 됩니다. 예를 들어:

      New-Item -Path "c:\projects\myfile.txt" -ItemType File
      

이 create file PowerShell 명령은 D:\projects 디렉터리에 myfile.txt라는 이름의 빈 파일을 생성합니다.

특정 확장자를 가진 파일 만들기

create file Windows PowerShell 명령을 사용하면 특정 확장자를 가진 파일을 생성할 수 있습니다. 예를 들어:

      New-Item -Path "c:\NewFolderExample\mydocument.docx" -ItemType File
      

이 명령은 c:\NewFolderExample 디렉터리에 mydocument.docx라는 이름의 빈 파일을 생성합니다. 만들려는 파일 종류에 따라 .docx, .txt, 또는 .csv 등 어떤 파일 확장자든 지정할 수 있습니다.

파일에 콘텐츠 추가하기

Using Set Content

PowerShell의 Set Content cmdlet은 파일의 내용을 작성하거나 바꾸는 데 사용됩니다. 이 cmdlet은 특정 내용으로 파일에 텍스트를 만들거나 덮어쓸 때 유용합니다. 다음 명령 Set-Content 는 간단한 텍스트를 파일에 쓰는 데 이상적이며, 미리 정의된 콘텐츠로 설정 파일이나 로그를 생성하기 위해 자동화 스크립트와 함께 사용할 수도 있습니다. 이 cmdlet은 파일 내용을 추가(append)하지 않고 직접 교체합니다. powershell create file with content.

      Set-Content -Path "c:\NewFolderExample\greetings.txt" -Value "Hello, World!"
      

Using Out-File

아래와 같이 Out-File cmdlet을 사용해 파일을 생성하고 데이터를 쓸 수도 있습니다:

      Get-Process -Name * | Out-File -FilePath c:\ NewFolderExample \processes.txt
      
a screenshot of a notepad with a table of processes .

다른 방법으로는 예를 들어 Get -ADuser 와 같은 cmdlet의 출력을 Export-Csv로 파이프하여, Excel에서 열 수 있는 파일을 생성할 수 있습니다:

      Get-ADuser -Filter * | Export-Csv -Path c:\dataADusers.csv
      
a spreadsheet with a lot of rows and columns of data .

Out-File 은 Get-Process 같은 명령의 출력을 캡처한 뒤 파일로 저장하는 데 흔히 사용됩니다. 이는 로깅 및 보고 목적에 유용합니다. Out-File 은 Set-Content cmdlet보다 많은 양의 출력을 처리하는 데 더 적합합니다. 먼저 메모리로 로드하지 않고 파일에 데이터를 스트리밍하기 때문입니다. Set-Content와 달리 Out-File은 기존 파일에 대해 -Append 옵션을 사용해 추가(append)할 수 있습니다.

디렉터리의 개체를 보기

Windows 파일 서버에서 모든 파일과 하위 디렉터리를 포함한 디렉터리의 내용을 보려면 Get-ChildItem cmdlet을 사용합니다. 출력에는 각 항목의 이름, 크기, 마지막 수정 날짜가 포함됩니다. 이는 Windows에서 dir 또는 ls 명령과 유사합니다.

      Get-ChildItem -Path C:\NewFolderExample\
      
a black screen with a directory , lastwritetime , and length name .

숨겨진 개체 표시

아래 명령은 숨겨진 항목을 포함해 NewFolderExample 폴더의 모든 루트 개체를 표시합니다:

      Get-ChildItem -Path "c:\NewFolderExample -Force
      

모든 하위 폴더와 해당 콘텐츠를 표시

다음 명령은 출력 범위를 확장하여 모든 하위 폴더와 해당 콘텐츠를 포함하도록 -Recurse 매개변수를 사용합니다. 각 하위 폴더는 별도로 표시됩니다. 예:

      Get-ChildItem -Force \ NewFolderExample -Recurse
      

아래 예시는 NewFolderExample 안에 있는 두 번째 폴더의 내용을 보여줍니다.

a screenshot of a command line window showing a list of files and folders .

출력을 필터링

다음 -Filter, -Exclude, -Include-Path 매개변수를 사용하여 출력을 필터링할 수 있습니다.

고급 개체 필터링을 위해 파이프 연산자 (|)를 사용하여 Get ChildItem cmdlet에서 Where-Object cmdlet로 데이터를 전달하세요. 예를 들어, 아래 스크립트는 fsShared 폴더 및 하위 폴더에서 2024년 7월 18일 이후에 수정된 모든 실행 파일을 검색합니다.

      Get-ChildItem -Path C:\NewFolderExample -Recurse -Include *.csv | Where-Object -FilterScript {($_.LastWriteTime -gt '20
      

고급 파일 생성 기법

여러 파일 만들기

PowerShell에서 여러 파일을 효율적으로 생성하려면 루프를 사용하면 됩니다. 이 방법은 이름이 비슷한 파일을 만들거나 서로 다른 디렉터리에 파일을 만들 때 유용합니다.

루프를 사용해 여러 파일 만들기

루프를 사용해 여러 파일을 만드는 예시는 다음과 같습니다:

      1..5 | ForEach-Object {

    New-Item -Path "C:\ C:\NewFolderExample\file$_.txt" -ItemType File

}
      

매개변수 설명:

  • 1..5: 1부터 5까지의 숫자 범위를 만듭니다.
  • ForEach-Object: 이 cmdlet은 범위에 있는 각 숫자를 순차적으로 처리합니다.
  • New-Item: 이 cmdlet은 루프 내부의 각 반복마다 새 파일을 생성합니다.
  • -Path “C:\temp\file$_.txt”: 각 파일이 생성될 경로입니다. $_ 는 반복(iteration) 중 현재 번호를 나타냅니다.

이 스크립트는 아래와 같이 file1.txt, file2.txt, file3.txt 등 다섯 개의 파일을 생성합니다.

a screenshot of a command line window showing a list of files .

루프를 사용하면 여러 프로젝트 디렉터리에 템플릿 파일을 생성하거나, 다양한 애플리케이션 디렉터리에 로그 파일을 초기화하거나, 기본 구성 파일을 여러 사용자 디렉터리에 배포하는 등의 작업을 할 수 있습니다.

와일드카드 사용

PowerShell에서 와일드카드를 사용하면 여러 파일 또는 디렉터리에 대해 동시에 작업을 수행할 수 있습니다. 와일드카드는 New-Item cmdlet과 함께 사용하면 한 번의 명령으로 여러 디렉터리에 걸쳐 파일을 생성할 수 있습니다:

      New-Item -Path " C:\NewFolderExample\*\example.txt" -ItemType File
      

매개변수 설명:

  • 이 명령은 C:\temp의 모든 바로 아래 하위 디렉터리에 example.txt라는 이름의 파일을 생성하려고 시도합니다.
  • 경로의 * 는 와일드카드로 동작하여 어떤 디렉터리 이름과도 일치합니다.
  • PowerShell은 C:\temp의 모든 하위 디렉터리를 순회하면서 각 디렉터리에 example.txt를 생성합니다.
  • 하위 디렉터리에 example.txt가 이미 있으면 -Force 매개변수를 추가하지 않는 한 덮어쓰지 않습니다.

파일 및 폴더 삭제

지금까지는 파일을 만드는 데 집중했지만, PowerShell을 사용해 파일을 삭제할 수도 있습니다. Remove-Item PowerShell cmdlet을 사용하여 파일, 디렉터리 또는 다른 개체를 삭제하세요. 예를 들어, 아래 명령은 지정한 폴더와 그 안의 모든 하위 폴더 및 파일을 삭제합니다. 폴더가 비어 있지 않기 때문에 작업을 확인하라는 메시지가 표시됩니다:

      Remove-Item -Path '\NewFolderExample’
      
a black background with white text that says confirm

폴더 안의 모든 개체를 삭제해야 한다는 것을 이미 확인했다면, 확인 단계 없이 진행하려면 다음 -Recurse  스위치를 사용할 수 있습니다:

      Remove-Item -Path '\NewFolderExample' -Recurse
      

파일 삭제

다음 명령은 폴더 NewFolderExample에서 newfile.txt라는 파일을 삭제합니다:

      Remove-Item -Path “C:\NewFolderExample\newfile.txt”
      

보다 오래된 파일 삭제 x 일

디렉터리에서 오래된 파일을 정리하려면 다음과 같은 스크립트를 사용하세요:

      Get-ChildItem -Path "C:\ NewFolderExample " -Recurse | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-30))} | Remove-Item
      

빈 폴더 삭제

아래 스크립트는 빈 폴더를 식별한 다음 확인 메시지 없이 삭제합니다:

      $Folder = "C:\ NewFolderExample "

#Delete empty folders and subfolders

Get-ChildItem $Folder -Recurse -Force -ea 0 |

? {$_.PsIsContainer -eq $True} |

? {$_.getfiles().count -eq 0} |

ForEach-Object {

    $_ | del -Force -Recurse

    $_.FullName | Out-File C:\deletedfolders.txt -Append

}
      

존재하는지 확인한 후 파일 삭제

파일 이름이 datalog.txt 인 파일이 존재하는지 확인하고, 존재하면 삭제하는 방법은 다음과 같습니다:

      $FileName = 'C:\datalog.txt'

If (Test-Path $FileName){

   Remove-Item $FileName

}
      

Netwrix Change Tracker로 파일 관리 활동을 모니터링

파일에 덮어쓰기 및 추가하기

앞서 파일을 쓰거나 교체하려면 Set-Content cmdlet을 사용하는 방법을 설명했습니다. 같은 작업을 수행하는 다른 방법은 다음과 같습니다.

-Force 매개변수 사용

기존 콘텐츠를 덮어쓰기 위한 또 다른 PowerShell의 create file 명령 매개변수는 다음과 같습니다:

      New-Item -Path "C:\NewFolderExample\example.txt" -ItemType File -Force
      

PowerShell의 -Force 매개변수는 읽기 전용 속성이나 동일한 이름을 가진 항목이 존재하는 것처럼, 변경을 막는 제한을 무시하고 덮어쓰는 데 사용됩니다. 이 명령은 "example.txt" 끝에 "Additional line"을 추가합니다. 파일이 존재하지 않으면 해당 파일을 생성합니다.

명령을 실행하기 전에 아래의 example.txt 파일 크기를 확인해 두세요:

a screenshot of a command line window showing the length of a file .

이제 Windows PowerShell의 create file cmdlet에 -Force 매개변수를 사용하면 이전 콘텐츠가 어떻게 지워지는지 확인해 보세요.

a black screen with a red arrow pointing to example.txt

매개변수 설명:

  • “example.txt”가 이미 존재하면, 이 명령은 확인 메시지 없이 파일을 덮어씁니다.
  • 파일이 읽기 전용인 경우, -Force는 이 속성을 무시하고 파일을 교체합니다.
  • 기존 콘텐츠가 무엇이든 매번 새 파일이 생성되도록 보장하려는 스크립트에 유용합니다

콘텐츠 추가

기존 파일에 데이터를 추가하거나, 파일이 없으면 새 파일을 생성하려면 Add-Content cmdlet을 사용할 수 있습니다. 예를 들어:

      Add-Content -Path "C:\temp\example.txt" -Value "Additional line"
      

이 명령은 “example.txt” 끝에 “Additional line”을 추가합니다. 파일이 존재하지 않으면 파일을 생성합니다.

Set-Content 및 Out-File과의 비교:

주요 차이점:

  • Add-Content 는 추가(append) 용도이고, Set-Content 은 바꾸기(replace) 용도이며, Out-File 은 유연한 출력 리디렉션에 사용됩니다.
  • Add-Content 는 보존하고 추가하며, Set-Content 는 바꾸고, Out-File 은 둘 다 수행할 수 있습니다.

특수 파일 형식 만들기

CSV 파일

CSV(Comma-Separated Values) 파일은 표 형식 데이터를 저장하는 데 널리 사용됩니다. PowerShell Export-CSV cmdlet을 사용하면 CSV 파일을 만들고 조작할 수 있습니다. 이 cmdlet은 개체를 쉼표로 구분된 값(CSV) 문자열의 일련으로 변환한 다음, 아래와 같이 CSV 파일로 저장합니다:

      $data | Export-CSV -Path "C:\ NewFolderExample\data.csv" -NoTypeInformation
      

아래 예에서 $data는 내보내고자 하는 개체를 포함하는 변수입니다:

a black screen with a few lines of code on it

매개변수 설명:

  • -NoTypeInformation: CSV 파일에서 정보의 유형을 생략합니다. 이로 인해 PowerShell 전용 유형 데이터가 없어 더 깔끔한 CSV 파일을 만드는 경우가 많습니다.
  • Export-CSV: 이 cmdlet은 개체를 CSV 형식으로 변환합니다.

JSON 파일

JSON(JavaScript Object Notation) 파일은 데이터를 구조화되고 읽기 쉬운 형식으로 저장하는 텍스트 파일입니다. PowerShell에서는 JSON 파일을 구성 데이터, 애플리케이션 설정 또는 키-값 쌍으로 표현되는 기타 데이터를 저장하는 데 자주 사용합니다.

ConvertTo-JsonOut-File을 함께 사용하면 PowerShell 개체를 JSON 형식으로 변환한 뒤 파일로 저장할 수 있습니다.

      $data | ConvertTo-Json | Out-File -FilePath "C:\NewFolderExample\data.json"
      

PowerShell에서 JSON 파일을 사용하는 몇 가지 예로는 웹 애플리케이션에서 사용할 수 있도록 PowerShell 스크립트의 구성 데이터를 내보내는 것, PowerShell 기반 애플리케이션을 위한 설정 파일을 만드는 것, 또는 RESTful API로 전송할 데이터를 준비하거나 API 응답을 저장하는 방법이 있습니다.

초보자를 위한 Windows PowerShell 스크립팅 튜토리얼

자세히 알아보기

기존 파일 처리

PowerShell에서 파일을 작업할 때, 가능한 오류를 방지하려면 작업을 수행하기 전에 파일이 존재하는지 확인하고 싶을 수 있습니다.

파일이 존재하는지 확인

The Test-Path cmdlet은 파일 또는 디렉터리의 존재 여부를 확인할 때 일반적으로 사용됩니다. 파일 이름이 datalog.txt 인지 확인하고, 존재한다면 삭제하는 방법은 다음과 같습니다:

      $FileName = 'C:\datalog.txt'

If (Test-Path $FileName){

   Remove-Item $FileName

}
      

매개 변수 설명:

  • Test-Path -Path “C:\temp\example.txt”: 파일이 존재하는지 확인합니다.
  • -not: 결과를 부정하므로, 파일이 존재하지 않는 경우에 조건이 올바릅니다.
  • 파일이 존재하지 않으면 New-Item 이(가) 이를 생성합니다.

아래 예에서는 ‘NewFolderExample’ 디렉터리가 존재할 때만 newfile.txt가 생성됩니다.

      If (Test-Path -Path "C:\NewFolderExample") {

    New-Item -Path "'C:\NewFolderExample \newfile.txt" -ItemType File

} else {

    Write-Warning "Directory C:\ ''C:\NewFolderExample does not exist"

}
      

적용 가능한 사용 사례로는, 기존에 사용자가 맞춤 구성한 설정을 덮어쓰지 않기 위해 해당 파일이 존재하지 않을 때만 기본 구성 파일을 생성하는 경우를 들 수 있습니다.

파일 및 폴더 복사와 조작

파일과 폴더 복사

파일과 디렉터리 같은 항목을 한 위치에서 다른 위치로 복사하려는 경우에는 Copy-Item PowerShell cmdlet을 사용하세요. 이는 Windows 명령 프롬프트에서 copy 명령을 실행하는 것과 비슷합니다.

같은 컴퓨터에서 두 폴더 사이로 파일을 복사하려면 이 명령을 사용하세요:

      Copy-Item -Path '\Shared\ITUsers.txt' -Destination '\Backup'
      

특정 유형의 파일만 복사

소스에서 대상 위치로-Filter parameter를 사용해 특정 파일만 복사하세요. 예를 들어, 다음 명령은 한 폴더에서 다른 폴더로 텍스트 파일만 복사합니다:

      Copy-Item -Filter *.txt -Path \Shared\* -Recurse -Destination \Backup
      

파일 또는 폴더 이름 변경

Rename-Item cmdlet을 사용하면 파일이나 디렉터리와 같은 개체의 이름을 변경하면서도 해당 내용은 그대로 유지할 수 있습니다. 이는 Windows 명령 ren과 유사합니다.

-Path 매개변수는 파일 또는 디렉터리의 위치를 지정하며, –NewName 매개변수는 파일 또는 폴더의 새 이름을 제공합니다.

예를 들어, 다음 PowerShell create text file 명령은 텍스트 파일의 이름에 밑줄 문자를 추가한 유사한 이름으로 텍스트 파일의 이름을 바꿉니다:

      Rename-Item -Path "\Shared\ITUsers.txt" -NewName "IT_Users.txt"
      

파일 확장자 변경

Rename-Item 을 사용하여 파일 확장자를 변경할 수도 있습니다.

여러 파일의 확장자를 한 번에 변경하려면 다음 PowerShell change file extension을 사용하세요. 이 명령은 모든 txt 파일 확장자를 bak 로 변경합니다. 와일드카드 문자(*)는 모든 텍스트 파일이 포함되도록 합니다.

      Get-ChildItem \Shared\*.txt | Rename-Item -NewName { $_.name -Replace '.txt','.bak' }
      

자주 발생하는 문제 해결

권한 문제

PowerShell 작업 시 권한이 부족한 경우가 흔한 문제입니다. 일반적인 오류 메시지는 “The process does not have access rights to this object.” 입니다. 이 문제를 해결하는 방법은 다음과 같습니다:

  • 시스템 수준 작업을 수행하려면 PowerShell을 관리자 권한으로 실행하세요.
  • 필요한 권한을 부여하려면 ACL(Access Control Lists)을 수정하세요.
  • 대체 자격 증명을 사용하세요

관리자 권한으로 PowerShell을 실행하려면:

  1. PowerShell 아이콘을 마우스 오른쪽 버튼으로 클릭합니다.
  2. “관리자 권한으로 실행”을 선택합니다.
  3. 사용자 계정 컨트롤 프롬프트를 확인합니다.

입력 오류

매개 변수 이름을 잘못 입력하기는 쉽지만, 그렇게 하면 오류가 발생합니다. 긴 명령을 입력할 때는 탭 완성 기능을 사용하거나 cmdlet 도움말을 확인할 수 있습니다(Get-Help cmdlet-name -Detailed).

파일이 이미 존재합니다

하려는 작업에 따라 기존 파일 이름이 오류를 일으킬 수 있습니다. 이를 방지하는 한 가지 방법은 앞에서 설명한 것처럼 조건부 명령을 사용하는 것입니다.

      If (-not(Test-Path -Path "C:\temp\example.txt")) {

    New-Item -Path "C:\temp\example.txt" -ItemType File

}
      

실제 적용 사례

스크립팅 예시

PowerShell을 사용하여 로그 파일을 만들 수 있습니다. 로깅은 시스템 활동, 오류, 애플리케이션 동작을 추적하는 데 필수적입니다. PowerShell은 로그 파일 생성 과정을 자동화하여 시스템을 더 쉽게 모니터링할 수 있게 해줍니다. 아래 예시는 감사(auditing)에 필요한 타임스탬프와 함께 메시지를 쉽게 기록할 수 있도록 해주는 함수를 보여줍니다. 그런 다음 Get-ChildItem cmdlet을 사용해 로그 파일 생성이 되었는지 확인했습니다.

a screenshot of a program that says function write-log

PowerShell을 사용해 스크립트를 만들어 다양한 작업을 자동화하고 효율화할 수 있습니다. 예를 들어, 파일 백업을 수행하는 스크립트를 만들거나, 서버에서 사용 가능한 디스크 공간을 확인하거나, 중요한 시스템 서비스를 모니터링하는 스크립트를 만들 수 있습니다.

Visual Studio Code 사용

Visual Studio Code(VS Code)로 PowerShell을 더 강력하게 활용할 수 있습니다. VS Code는 다양한 용도의 코드 편집기로, PowerShell 스크립팅 및 개발에 매우 적합한 환경을 제공합니다. VS Code와 PowerShell 확장을 설치하면 구문 강조, cmdlet 및 변수에 대한 IntelliSense, 코드 스니펫, 통합 디버깅 같은 기능을 사용할 수 있습니다. 또한 이 편집기는 통합 터미널이 포함된 사용자 지정 가능한 인터페이스를 제공하여, PowerShell 스크립트를 작성하고 테스트한 뒤 원활하게 실행할 수 있습니다.

Visual Studio Code 설치

  • 공식 웹사이트에서 Visual Studio Code를 다운로드하고 설치하세요: Visual Studio Code
  • 설치가 완료되면 VS Code를 열고, 사이드바의 사각형 아이콘을 클릭하거나 Ctrl+Shift+X를 누르세요. 그러면 확장(Extensions) 보기로 이동합니다.
  • 확장(Extensions) 보기에서 “PowerShell” 확장 기능을 검색한 다음 “Install”을 클릭하세요. 이 확장 기능은 구문 강조 표시, IntelliSense, 코드 탐색, 디버깅 등 풍부한 PowerShell 언어 지원을 제공합니다.

결론

PowerShell은 파일 및 시스템 관리를 위한 강력한 도구입니다. 파일과 디렉터리를 생성, 수정, 관리하는 데 사용할 수 있는 다양한 cmdlet과 기법을 제공합니다. New-Item cmdlet을 사용하여 필수 파일을 생성할 수 있습니다. 그런 다음 더 고급 스크립트를 사용해 여러 파일을 만들고, 기존 파일을 검색한 뒤, 이동하거나 삭제할 수도 있습니다. 또한 PowerShell 스크립트를 사용해 반복적이고 일상적인 작업을 자동화하여 IT 담당자에게 더 많은 시간을 확보할 수 있습니다. 오늘날 PowerShell은 널리 사용되므로, 학습과 탐색을 돕기 위한 풍부한 자료를 온라인에서 찾아볼 수 있습니다.

FAQ

파일 생성 시 PowerShell 권한이 거부됨 오류를 해결하는 방법은?

PowerShell에서 권한이 거부됨 오류는 실행 정책이 파일 작업을 차단하거나, 대상 디렉터리에 대한 쓰기 권한이 없을 때 발생합니다. 먼저 실행 정책을 확인하세요:

      Get-ExecutionPolicy
      

필요한 경우 RemoteSigned 또는 Unrestricted로 설정하세요:

      Set-ExecutionPolicy RemoteSigned
      

디렉터리 권한 문제의 경우 PowerShell을 관리자 권한으로 실행하거나 사용자 프로필 폴더처럼 쓰기 권한이 있는 디렉터리에 파일을 생성하세요. 파일을 생성하기 전에 Test-Path로 디렉터리 존재 여부를 확인합니다:

      if (Test-Path "C:\MyFolder") {
    New-Item -Path "C:\MyFolder\file.txt" -ItemType File
}
      

try-catch 블록을 사용해 적절한 오류 처리를 구현하여 권한 실패를 원활하게 처리하세요. 시스템 디렉터리에서 작업할 때는 대체 위치를 사용하거나 권한 상승을 요청하는 것을 고려해 보세요. 엔터프라이즈 환경에서는 스크립트 계정에 필요한 적절한 권한이 있는지 확인하고, 파일 생성 액세스를 허용할 때는 최소 권한 원칙을 따르세요. 권한 문제는 종종 시스템 무결성을 보호하기 위해 설계된 보안 정책을 반영한다는 점을 기억하세요.

PowerShell에서 파일을 생성하는 다양한 방법에는 어떤 것들이 있나요?

PowerShell은 여러 파일 생성 방법을 제공하며, 각각은 서로 다른 시나리오에 최적화되어 있습니다:

      # Create empty files
New-Item -Path "file.txt" -ItemType File

# Redirect command output to files  
Get-Process | Out-File "processes.txt"

# Write data to files
Set-Content -Path "data.txt" -Value "Hello World"

# Append data to files
Add-Content -Path "log.txt" -Value "New entry"

# .NET method for performance-critical operations
[System.IO.File]::WriteAllText("C:\file.txt", "Content")
      

Export-CSV는 PowerShell 개체에서 구조화된 데이터 파일을 생성합니다. 각 방법은 특정한 사용 사례에 맞게 제공됩니다. 예를 들어 파일 시스템 작업에는 New-Item, 명령 출력 캡처에는 Out-File, 데이터 교체에는 Set-Content, 로깅 시나리오에는 Add-Content를 사용합니다. 실제 파일 생성 요구 사항과 데이터 처리 필요에 가장 잘 맞는 방법을 선택하세요.

PowerShell에서 적절한 오류 처리를 사용해 파일을 만드는 방법은?

PowerShell에서 파일을 생성할 때 적절한 오류 처리를 적용하면 스크립트 오류를 방지하고, 작업이 실패했을 때 의미 있는 피드백을 제공할 수 있습니다. 파일 생성 명령을 try-catch 블록으로 감싸세요:

      try {
    New-Item -Path "C:\MyFolder\file.txt" -ItemType File -ErrorAction Stop
    Write-Host "File created successfully"
} catch {
    Write-Error "Failed to create file: $($_.Exception.Message)"
}
      

디렉터리의 존재 여부를 확인하고 누락된 디렉터리를 생성합니다:

      if (-not (Test-Path "C:\MyFolder")) {
    New-Item -ItemType Directory -Path "C:\MyFolder" -Force
}
      

권한 없음, 파일이 이미 존재함, 디스크 공간 제한과 같은 일반적인 문제에 대해 구체적인 오류 처리를 구현하세요. 감사 목적을 위해 성공적인 작업과 실패한 작업을 모두 기록하는 로깅 메커니즘을 포함합니다. 비치명적인 오류에는 Write-Error를 사용하고, 스크립트 실행을 중단해야 하는 치명적인 실패에는 throw를 사용하세요. 파일 작업을 시도하기 전에 입력 매개변수를 검증하고, 사용자가 무엇이 잘못되었는지 이해할 수 있도록 명확한 오류 메시지를 제공하세요. 운영 환경의 스크립트에서는 일시적인 실패에 대한 재시도 로직과 준수 및 문제 해결을 위한 포괄적인 로깅을 구현하는 것을 고려하세요.

안전한 권한으로 PowerShell 파일을 만드는 방법은?

보안 권한으로 파일을 생성하려면 파일 생성 중 또는 생성 직후에 적절한 접근 제어를 설정해야 합니다. 파일을 생성한 다음 보안 설정을 적용하세요:

      # Create file
New-Item -Path "C:\secure-file.txt" -ItemType File

# Get current ACL
$acl = Get-Acl "C:\secure-file.txt"

# Modify permissions
$accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("Domain\User", "FullControl", "Allow")
$acl.SetAccessRule($accessRule)

# Apply ACL
Set-Acl -Path "C:\secure-file.txt" -AclObject $acl
      

민감한 파일의 경우 상속된 권한을 명시적으로 제거하고, 해당 권한이 필요한 특정 사용자 또는 그룹에만 접근을 허용하세요. PowerShell의 보안 cmdlet을 사용하여 최소 권한 접근을 구현해 승인된 담당자만 파일을 읽을 수 있도록 하십시오. 임시 파일을 생성할 때는 접근이 제한된 보안 위치에 저장하고, 사용 후 삭제하기 위한 정리(클린업) 절차를 구현하세요. 규정 준수에 민감한 환경에서는 파일 접근 시도(접근 시도)를 추적하기 위해 접근 제어 목록(ACL)에 감사(audit) 설정을 포함합니다. 파일 보안은 어떤 데이터에 누가 접근이 필요한지 이해하고, 사용성을 유지하면서도 해당 요구사항을 강제하는 제어를 구현하는 것에서 시작된다는 점을 기억하세요.

PowerShell에서 파일 생성이 실패합니다—일반적인 원인과 해결 방법은 무엇인가요?

PowerShell에서 파일 생성이 실패하는 경우는 일반적으로 권한 문제, 잘못된 경로, 또는 실행 정책 제한 때문입니다. 대상 디렉터리가 존재하는지 확인하고 필요하면 생성하세요:

      if (-not (Test-Path "C:\TargetFolder")) {
    New-Item -ItemType Directory -Path "C:\TargetFolder"
}
      

대상 폴더에 대한 쓰기 권한이 있는지 확인하고, 시스템 디렉터리 작업을 하는 경우에는 PowerShell을 관리자 권한으로 실행하세요. 파일 경로에 Windows가 파일 이름에서 지원하지 않는 파이프(|), 물음표(?), 따옴표(" 또는 ') 같은 잘못된 문자가 포함되지 않았는지 확인합니다. 디스크 여유 공간을 확인하세요. 드라이브가 가득 차면 파일 생성이 차단될 수 있습니다. PowerShell 실행 정책을 검토하세요:

      Get-ExecutionPolicy
# Adjust if needed
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

      

네트워크 경로의 경우 파일 생성을 시도하기 전에 연결 상태와 인증을 확인하세요. 오류 처리를 구체적으로 적용해 실패 원인이 권한, 경로 또는 시스템 리소스 중 무엇 때문인지 식별합니다. 문제 해결 시에는 먼저 간단한 파일 생성 명령으로 테스트한 다음, 복잡도를 점진적으로 높여 실패 원인을 특정하세요.

공유하기

더 알아보기

저자 소개

Asset Not Found

Kevin Horvatin

수석 소프트웨어 아키텍트

Kevin Horvatin은 Netwrix의 수석 소프트웨어 아키텍트이며 Netwrix Privilege Secure를 담당하고 있습니다. 20년 넘게 소프트웨어 개발자로 일해 왔으며, PowerShell과 C#이 처음 소개된 시점부터 이를 다뤄 왔습니다.