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

기타

 

같은 카테고리의 다른 글
윈도우 11 / 메모장 여는 세 가지 방법

윈도우 11 / 메모장 여는 세 가지 방법

윈도우 11의 메모장(Notepad)은 기본적인 텍스트 편집기로, 다양한 텍스트 파일을 열고 편집할 수 있습니다. 최신 버전의 메모장은 사용자 인터페이스와 기능면에서 몇 가지 향상이 있습니다. 윈도우 11에서 메모장을 여는 세 가지 방법을 알려드립니다.

윈도우 10 / 디스크 조각 모음 하는 방법

윈도우 10 / 디스크 조각 모음 하는 방법

디스크 조각 모음 파일을 읽고 쓰는 게 느려졌다면, 디스크 조각 모음으로 속도를 개선할 수 있다고 합니다. 체감할 정도로 속도가 빨라졌다고 느낀 적은 별로 없지만, 포맷을 하기 전에 한번 쯤 시도해보는 것도 좋은 방법이라고 생각합니다.(개인적으론 포맷이 가장 확실한 방법이라고 생각합니다.) 드라이브 최적화 실행하기 파일 탐색기에서 드라이브에 마우스를 올리고 우클릭하고 을 클릭합니다. 아무 드라이브를 선택해도 ...

윈도우 11 / 창의 그림자 효과 없애는 방법

윈도우 11 / 창의 그림자 효과 없애는 방법

윈도우 11은 윈도우 10에 비하여 디자인이 많이 바뀌었다. 뛰어난 디자이너들이 나름 의미를 부여하면서 작업한 것이겠지만, 아직은 좋은지 잘 모르겠다. 특히 작업표시줄 그룹 해제가 안되는 것은 너무 불편. 바탕화면 기본 이미지가 바뀌어서인지 창의 그림자 효과가 눈에 아주 잘 들어온다. 윈도우 10에서도 있던 것인데, 그림자가 더 진해졌나? 시각적으로 보기 좋게 만든 것이기는 한데, ...

윈도우 10 / 자동 로그인하는 방법

윈도우 10 / 자동 로그인하는 방법

컴퓨터를 사용하려면 사용자 계정이 필요하고, 보통 암호를 설정한다. 그런데 정말 나 혼자만 사용하는 컴퓨터라면 암호를 입력하고 로그인하는 과정이 불편할 수 있다. 컴퓨터를 켤 때 암호를 입력하지 않고 바로 로그인하도록 할 수 있을까? 방법은 두 가지가 있다. 아래의 스크린샷은 윈도우 10 기준이지만, 윈도우 11에서도 동일한 방법으로 가능하다. 방법 1 - 암호 제거하기 사용자 계정이 ...

윈도우 11 / 압축 하기, 압축 풀기 - Zip, 7z, TAR

꽤 오래전에는 윈도우에 압축 프로그램이 없었습니다. 압축 만들고 해제하기 위해서는 별도의 프로그램을 설치해야 했습니다. 하지만 지금은 윈도우에 Zip 형식, 7z 형식, TAR 형식으로 압축하고 해제하는 기능이 포함되어 있어, 별도의 프로그램 설치 필요 없이 작업할 수 있습니다. 압축 하기 압축을 하고 싶다면, 파일 또는 폴더를 선택하고 마우스 우클릭합니다. 에서 원하는 형식을 클릭하면... 우클릭 했던 ...

윈도우 / 컴퓨터가 64비트인지 32비트인지 확인하는 방법

윈도우 / 컴퓨터가 64비트인지 32비트인지 확인하는 방법

UI 또는 명령어로 컴퓨터가 64비트인지 32비트인지 확인할 수 있다. 참고로, Windows 11은 64비트 컴퓨터에만 설치되므로, Windows 11이 설치된 컴퓨터는 볼 것도 없이 64비트이다. 방법 1 윈도우 11 을 연다.(단축키는 WIN + I) 를 클릭한다. 에서 64비트인지 32비트인지 확인할 수 있다. 윈도우 10 을 연다.(단축키는 WIN + I) 을 클릭한다. 를 클릭한다. 에서 64비트인지 32비트인지 확인할 수 있다. 방법 ...

윈도우 10 / PING 허용하는 방법

윈도우 10 / PING 허용하는 방법

네트워크에 잘 연결되어 있는지 확인하는 방법 중의 하나는 ping을 날리는 것입니다. 그런데 윈도우 10은 기본적으로 ping에 대하여 응답하지 않는 것으로 설정되어 있습니다. 그래서 네트워크에 잘 연결되어 있어도 ping으로 확인을 할 수가 없습니다. 만약 ping으로 연결 상태를 확인해야 한다면, 다음의 방법으로 응답하도록 설정합니다. 제어판을 엽니다. 을 클릭합니다. 을 클릭합니다. 을 클릭합니다. 왼쪽에서 ...

윈도우 / 버전, 빌드 넘버 확인하는 5가지 방법

윈도우 / 버전, 빌드 넘버 확인하는 5가지 방법

윈도우 버전을 확인하는 방법은 여려 가지가 있습니다. 그 중 5가지 방법을 소개합니다. 윈도우 10이나 11뿐 아니라 윈도우 서버에서도 가능한 방법입니다. 방법 1 - 설정에서 확인 을 엽니다. 단축키는 WIN+I입니다. 을 클릭합니다. 왼쪽에서 를 클릭하면, 오른쪽에서 버전을 확인할 수 있습니다. 방법 2 - Windows 정보 실행 창을 엽니다. 단축키는 WIN+R입니다. winver를 입력하고 엔터키를 누르거나 을 클릭합니다. 창이 ...

윈도우 10 / 마이크로소프트 계정으로 윈도우에 로그인하는 방법

윈도우 10 / 마이크로소프트 계정으로 윈도우에 로그인하는 방법

윈도우 10에 로그인하는 방법은 두 가지가 있습니다. 하나는 로컬 계정으로 로그인하는 것이고, 다른 하나는 마이크로소프트 계정으로 로그인하는 것입니다. 마이크로소프트 계정으로 로그인하는 것은, 안드로이드 스마트폰에 구글 계정으로 로그인하는 거 또는 아이패드에 애플 계정으로 로그인하는 것과 비슷하다고 보면 됩니다. 윈도우에 마이크로소프트 계정으로 로그인하는 것은 여러 가지 장점이 있겠지만, 내 PC의 정보를 마이크로소프트와 공유한다는 ...

윈도우 11 / 네트워크 초기화하는 방법

윈도우 11 / 네트워크 초기화하는 방법

윈도우 11에서 네트워크 초기화(Network Reset)는 인터넷 연결 문제를 해결할 때 매우 효과적인 방법입니다. 네트워크 초기화는 다음 설정을 모두 초기 상태로 되돌립니다.