PowerShell / 메모

업그레이드

  • 버전 확인
PS C:\> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.19041.3031
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.19041.3031
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
  • 최신 버전 확인
PS C:\> winget search Microsoft.PowerShell
이름               장치 ID                      버전    원본
---------------------------------------------------------------
PowerShell         Microsoft.PowerShell         7.3.6.0 winget
PowerShell Preview Microsoft.PowerShell.Preview 7.4.0.5 winget
  • 최신 버전 설치
winget install --id Microsoft.Powershell --source winget

도움말

  • 도움말 업데이트
Update-Help
  • Get-Help 명령어의 도움말
Get-Help -Name Get-Help

명령어 찾기

  • 모든 명령어 출력
Get-Command
  • 동사가 Get이면서 명사가 H로 시작하는 것 출력
Get-Command -Verb Get -Noun H*

보안 오류로 스크립트가 실행되지 않을 때

ExecutionPolicy의 값을 확인하고, Restricted라면 RemoteSigned로 변경해봅니다.

  • 값 확인
Get-ExecutionPolicy
  • 값 변경
Set-ExecutionPolicy RemoteSigned

주석

한 줄 주석

#을 추가한다. # 이후가 주석 처리된다.

여러 줄 주석

<#과 #>로 감싼다.

예제

현재 디렉토리 안의 폴더, 파일 크기 출력

Get-ChildItem | ForEach-Object {
    if ($_.PSIsContainer) {
        $size = (Get-ChildItem $_.FullName -Recurse -File -ErrorAction SilentlyContinue |
        Measure-Object Length -Sum).Sum
        [PSCustomObject]@{
            Name = $_.Name
            Type = "Folder"
            SizeMB = "{0:N2}" -f ($size / 1MB)
        }
    }
    else {
        [PSCustomObject]@{
            Name = $_.Name
            Type = "File"
            SizeMB = "{0:N2}" -f ($_.Length / 1MB)
        }
    }
} | Format-Table -AutoSize
Get-ChildItem | ForEach-Object {

    if ($_.PSIsContainer) {
        $size = (Get-ChildItem $_.FullName -Recurse -File -EA SilentlyContinue |
        Measure-Object Length -Sum).Sum
    }
    else {
        $size = $_.Length
    }

    [PSCustomObject]@{
        Name = $_.Name
        SizeBytes = $size
    }

} | Sort-Object SizeBytes -Descending | ForEach-Object {

    $size = $_.SizeBytes

    $display =
        if ($size -ge 1GB) {
            "{0:N2} GB" -f ($size / 1GB)
        }
        elseif ($size -ge 1MB) {
            "{0:N2} MB" -f ($size / 1MB)
        }
        elseif ($size -ge 1KB) {
            "{0:N2} KB" -f ($size / 1KB)
        }
        else {
            "$size Bytes"
        }

    [PSCustomObject]@{
        Name = $_.Name
        Size = $display
    }

} | Format-Table -AutoSize

기타

 

같은 카테고리의 다른 글
윈도우 / DNS 캐시 조회하는 방법, 삭제하는 방법

윈도우 / DNS 캐시 조회하는 방법, 삭제하는 방법

윈도우는 DNS 정보를 캐시한다. 캐시는 기본적으로 속도 향상을 위한 것인데, 단점은 정보가 변경되었을 때 바로바로 적용되지 않는다는 것이다. 따라서 서버 이전 작업 등을 했을 때 제대로 찾아가지 못한다면 캐시를 삭제하는 작업이 필요하다. 캐시된 DNS를 조회하는 방법과 삭제하는 방법은 다음과 같다. DNS 캐시 조회하는 방법 명령 프롬프트를 연다. 아래와 같이 명령한다. ipconfig /displaydns DNS 캐시 삭제하는 방법 명령 ...

윈도우 11 / 시작 / 최근 연 파일 삭제하는 방법

윈도우 11 / 시작 / 최근 연 파일 삭제하는 방법

윈도우 11의 시작 버튼을 클릭하면, 아래 쪽에 최근 사용한 파일 목록 등 여러 가지가 나옵니다. 최근 작업한 파일에 빠르게 접근할 수 있도록 하는 기능인데, 남에게 내가 무엇을 했는지 들킬 위험이 있습니다. 만약 기밀이 필요한 작업, 지극히 개인적인 작업을 자주 한다면 최근 파일이 나오지 않는 게 좋습니다. 이는 설정에서 변경할 수 있습니다. 을 ...

윈도우 10 / IP 확인하는 방법

윈도우 10 / IP 확인하는 방법

IP는 두 가지로 구분할 수 있습니다. 내 컴퓨터에 할당된 IP 외부와 통신하는 IP 보통 인터넷 공유기나 방화벽을 통하여 통신하므로, 내 컴퓨터에 할당된 IP와 외부와 통신하는 IP는 다릅니다. 예를 들어 다음과 같이 구성되어 있다면... 공유기의 IP가 외부와 통신하는 IP, 공유기가 컴퓨터에 할당한 IP가 내 컴퓨터에 할당된 IP입니다. 윈도우 10에서 두 가지 IP를 확인하는 방법을 알아봅니다. 내 컴퓨터에 ...

윈도우 10 / 빠른 지원 / 다른 컴퓨터에 원격으로 접속하여 지원하는 방법

윈도우 10 / 빠른 지원 / 다른 컴퓨터에 원격으로 접속하여 지원하는 방법

컴퓨터에 문제가 있다고 연락이 옵니다. 아무래도 소프트웨어 문제 같습니다. 직접 조작할 수 있다면 쉽게 끝날 일인데, 아주 멀리 있습니다. 그런 경우 원격으로 접속하여 조치를 취할 수 있습니다. 다른 PC에 원격으로 접속할 수 있는 방법은 여러 가지가 있습니다. 그 중 가장 간단한 방법은 윈도우 10에 포함된 빠른 지원 기능을 이용하는 것입니다. 별도의 ...

윈도우 11 / 마이크로소프트 계정 없이 로컬 계정으로 설치하는 방법

윈도우 11 / 마이크로소프트 계정 없이 로컬 계정으로 설치하는 방법

윈도우 11을 설치할 때 마이크로소프트 계정으로 로그인하라고 합니다. 예전에는 옵션이었는데, 점점 필수처럼 변해가고 있습니다. 인터넷 연결을 끊고 설치하면 인터넷에 연결하라고 합니다. 이를 해결하는 방법이 몇 가지 있는데, 가장 편한 것은... 컴퓨터를 인터넷에 연결을 하지 않습니다. Shift + F10을 누릅니다. 그려면 다음처럼 CMD 창이 뜹니다. oobe\bypassnro를 입력하고 엔터키를 누릅니다. 재부팅하고 다시 진행하는데, 이제는 이 ...

윈도우 11 / 환경 변수의 뜻과 확인하는 방법

윈도우 11 / 환경 변수의 뜻과 확인하는 방법

윈도우 11 환경 변수의 뜻과 확인 방법을 정리했습니다. 사용자 변수와 시스템 변수의 차이, PATH 환경 변수의 역할, 설정 화면에서 확인하는 방법, 명령 프롬프트와 PowerShell 명령어로 환경 변수를 확인하는 방법까지 쉽게 알아봅니다.

윈도우 10 / 마우스 / 포인터 크기 변경하는 방법

윈도우 10 / 마우스 / 포인터 크기 변경하는 방법

4K UHD 모니터를 샀습니다. 좋은 걸 사고 싶지만 너무 비싸서 가성비 제품을 선택했습니다. 모니터 크기는 28인치. 나름 만족하며 사용하고 있는데... 가장 불편한 건 마우스 포인터입니다. 해상도가 높다보니 마우스 포인터도 작고, 이리저리 휙휙 움직이다보면 마우스 포인터가 어디 있는지 찾을 수가 없습니다. 아래처럼요... 고양이 코 앞에 있는 하얀 점 같은 게 마우스 포인터입니다. 불편한 ...

윈도우 / 인터넷 시간 서버(NTP 서버) 변경하는 방법

윈도우 / 인터넷 시간 서버(NTP 서버) 변경하는 방법

인터넷이 연결된 상태라면 보통 시간 서버에서 시간을 가져오고 동기화한다. 기본값은 time.windows.com이다. 다른 시간 서버로 변경하고 싶다면 아래와 같이 한다. OS별로 구분했지만, 설정하는 방법은 같다고 봐도 된다. Windows Server 2022 오른쪽 아래 날짜와 시간이 있는 곳에 마우스를 올리고 우클릭한다. 을 클릭한다. 를 클릭한다. 을 클릭한다. 서버를 선택 목록에서 선택하거나 ...

윈도우 11 / 사진 / 사진을 동영상으로 만드는 방법

윈도우 11 / 사진 / 사진을 동영상으로 만드는 방법

윈도우 11에는 이미지를 보고 편집할 수 있는 사진이라는 앱이 있다. 이름은 사진이지만 동영상 편집도 가능하다. 사진 앱을 이용하면 사진들을 모아서 동영상을 만들 수 있다. 기능이 제한적이기는 하지만, 아주 쉽다. 사진 앱은 윈도우 10에도 포함되어 있다. 생김새는 약간 다르지만 사용법은 거의 비슷하다. 윈도우 10 / 사진 / 사진을 동영상으로 만드는 방법 윈도우 11에서는 동영상 편집기로 ...

윈도우 11 / 작업 관리자 실행하는 여러 가지 방법

윈도우 11 / 작업 관리자 실행하는 여러 가지 방법

윈도우 11에서 작업 관리자를 여는 방법은 여러 가지가 있으며, 각각의 방법은 사용자의 필요와 상황에 따라 다르게 적용될 수 있습니다. 작업 관리자는 시스템 성능을 모니터링하고, 실행 중인 프로세스를 관리하며, 필요할 때 응답하지 않는 프로그램을 강제로 종료할 수 있는 유용한 도구입니다.