이번 글을 다음과 같이 시리즈 형식으로 발행합니다.
Windows PowerShell 활용하기 (5) - 서비스
Windows PowerShell 활용하기 (6) - 패키지
PowerShell 은 Windows 에서 제공하는 기능들을 명령으로 실행할 수 있는 강력한 도구입니다. 사용자의 환경 변수를 조회하거나, 서비스를 시작하고, 특정 프로세스 중지 하는 등의 작업을 할 수 있습니다. 또한 파이프라인을 사용하여 한번에 다양한 명령들을 순차 실행할 수 있습니다.
Cmdlet 은 Command-Lets 의 줄임말로서 PowerShell 에서 개체를 조작하기 위한 명령입니다. 이 명령은 별도로 실행하는 파일이 아니라, 순수 PowerShell 의 명령입니다.
Cmdlet 명령의 결과는 개체로 표현합니다. 하나의 개체는 여러개의 속성을 가질 수 있으며, 다른 개체들을 하위에 둘 수 있습니다. 파일시스템, 레지스트리 등 유형별로 제공하는 필드는 다를 수 있습니다.
PowerShell 은 Windows 내의 다양한 리소스를 드라이브(Drive)라는 개체로 제공합니다. 드라이브는 다음과 같은 유형들이 있습니다.
파일 시스템에서 제공하는 정보 (ex: C:, D:)
레지스터리에서 제공하는 정보 (ex: HKLM:, HKCU:)
PowerShell 내부에서 제공하는 정보 (ex: Alias:, Cert:, Env:)
이 예제는 PowerShell 에서 제공하는 모든 드라이브 개체를 조회합니다.
> Get-PSDrive Name Used (GB) Free (GB) Provider Root CurrentLocation ---- --------- --------- -------- ---- --------------- Alias Alias C 168.98 305.84 FileSystem C:\ Cert Certificate \ Env Environment Function Function HKCU Registry HKEY_CURRENT_USER HKLM Registry HKEY_LOCAL_MACHINE Variable Variable WSMan WSMan
각 개체의 대한 정보는 Get-Item 명령으로 조회할 수 있습니다. 주로 개체의 정보를 출력하나 하위 개체의 목록을 출력하는 경우도 있습니다.
조회할 경로를 지정할 때, 드라이브 개체의 경우 접미사 : 를 붙여 사용합니다. 이후에 하위 경로의 개체명을 추가하여 조회할 수 있습니다. 첫번째 인자는 항상 -Path 이기 때문에 생략 가능합니다.
이 예제는 FileSystem 공급자를 사용하여, 현재 디렉터리를 가져옵니다. 문자(.)는 현재 위치를 나타내며, C:. 와 동일합니다.
> Get-Item -Path . 디렉터리: C:\ Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 2024-00-00 오전 00:00 ps-test
이 예제는 FileSystem 공급자를 사용하여, C:\ps-test 내의 모든 개체를 가져옵니다. 와일드 카드 문자(*)는 현재 개체의 모든 내용을 나타냅니다.
> Get-Item C:\ps-test\* 디렉터리: C:\ps-test Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 0000-00-00 오전 0:00 0 data.csv -a---- 0000-00-00 오전 0:00 0 test.txt