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

기타

 

같은 카테고리의 다른 글
윈도우 10 / 잠금화면 배경 사진 변경하는 방법

윈도우 10 / 잠금화면 배경 사진 변경하는 방법

윈도우 10으로 부팅하면 사용자를 정하고 로그인하는 화면이 나오는데, 그걸 잠금화면이라고 합니다. 별다른 설정을 하지 않아도 잠금화면에는 멋진 사진이 나오고, 일정 주기로 계속 바뀝니다. 잠금화면 사진은 Windows 설정에 바꿉니다. 단축키 을 클릭합니다. 더 간단한 방법은 바탕화면에서 우클릭한 다음 을 클릭하는 것입니다. 왼쪽 메뉴 중에서 을 ...

윈도우 / 명령어 / 실행 창에서 프로그램 여는 명령어 모음

윈도우 / 명령어 / 실행 창에서 프로그램 여는 명령어 모음

실행 창(WIN+R) 또는 명령 프롬프트에서 명령어로 윈도우에 내장된 프로그램을 실행할 수 있다. 일반적인 사용자라면 클릭클릭으로 메뉴를 찾아가는 게 나을 수 있으나, 시스템을 구축하고 운영하는 사람이라면 명령어가 더 편할 수 있다. 대부분은 윈도우 11 같은 클라이언트 운영체제와 윈도우 서버 2022 같은 서버 운영체제에서 같이 사용할 수 있는데, 일부는 둘 중 하나에서만 가능하다. appwiz.cpl 프로그램 ...

윈도우 11 / 노트북 덮개 닫아도 절전 모드로 들어가지 않게 하는 방법

윈도우 11 / 노트북 덮개 닫아도 절전 모드로 들어가지 않게 하는 방법

윈도우 11에서 노트북 덮개 닫아도 절전 모드로 들어가지 않게 하는 방법 두 가지를 알려드립니다. 윈도우 11 버전에 따라 가능한 방법이 다른데, 방법 1에서 안내하는 메뉴가 없으면 방법 2를 사용하면 됩니다.

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

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

윈도우 11을 사용하다 보면 프로그램 설치 과정이나 개발 환경 설정 중에 환경 변수라는 용어를 자주 보게 됩니다. 특히 Java, Python, Node.js, Git, Android Studio 같은 개발 도구를 설치할 때 “PATH 환경 변수에 추가”라는 문구를 본 적이 있을 것입니다. 일반 사용자에게는 다소 낯설게 느껴질 수 있지만, 환경 변수는 윈도우 운영체제와 프로그램이 ...

윈도우 11 / 나눔 글꼴 설치하는 방법

윈도우 11 / 나눔 글꼴 설치하는 방법

윈도우를 설치하고 나면 제일 먼저 하는 게 윈도우 업데이트, 그 다음이 글꼴 설치입니다. 개인적으로 맑은 고딕을 그다지 좋아하지 않아 다른 글꼴을 사용하는데, 그 다른 글꼴을 설치하지 않으면 기존에 만든 문서들이 엉망으로 보입니다. 가장 많이 사용하는 글꼴은 나눔 글꼴입니다. 나눔 글꼴을 설치하는 방법은 다음과 같습니다. 네이버 글꼴 모음 페이지로 접속합니다. 밑으로 조금 내려가면 글꼴을 다운로드할 ...

윈도우 11 / 설정을 여는 세 가지 방법

윈도우 11 / 설정을 여는 세 가지 방법

윈도우에서 작업을 하다 보면 설정을 변경해야 할 때가 있다. 설정을 여는 세 가지 방법을 소개한다. 어떤 설정은 제어판에서 작업하는 게 편하다.  윈도우 11 / 제어판 여는 방법, 바탕화면에 추가하는 방법 방법 1 시작 버튼을 클릭한다. 을 클릭한다. 만약 시작 메뉴에 없다면, 모든 앱에서 찾을 수 있다. 시작 화면에 고정 또는 작업 표시줄에 고정을 할 수 있다. 방법 2 시작 ...

윈도우 10 / 모니터 해상도 변경하는 방법

윈도우 10 / 모니터 해상도 변경하는 방법

윈도우 10을 설치할 때, 사용하는 모니터에 최적화된 값으로 해상도가 자동 설정됩니다. 만약 자동 설정된 해상도가 잘못 되었거나, 모니터 교체 등 여러 이유로 현재 해상도가 적절하지 않다면, 수동으로 해상도를 변경할 수 있습니다. 해상도 변경은 에서 합니다. 단축키 을 클릭합니다. 디스플레이 메뉴에 해상도가 있습니다. 원하는 해상도를 선택하면 바로 ...

윈도우 / Hyper-V / 가상 머신 1세대와 2세대 차이

윈도우 / Hyper-V / 가상 머신 1세대와 2세대 차이

Hyper-V에서 가상 컴퓨터를 만들 때 1세대와 2세대애서 선택하게 되어 있습니다. 1세대(Generation 1)와 2세대(Generation 2)는 가상 머신의 펌웨어 및 부트 방식, 하드웨어 기능 지원 방식에 차이가 있습니다.

윈도우 11 / 지정한 로그온 세션이 없습니다. 이미 종료되었을 수도 있습니다.

윈도우 11 / 지정한 로그온 세션이 없습니다. 이미 종료되었을 수도 있습니다.

네트워크 드라이브 연결을 하려고 할 때 다음과 같은 메시지를 띄우면서 연결에 실패할 때가 있다. 지정한 로그온 세션이 없습니다. 이미 종료되었을 수도 있습니다. 이런 경우 사용자 이름을 다음처럼 하면 해결될 수 있다. 192.168.0.100\user 192.168.0.100은 연결하려는 장치의 IP, user는 로그온 계정이다.

윈도우 10 / 알람 및 시계 / 알람, 시계, 타이머, 스톱워치 앱

윈도우 10 / 알람 및 시계 / 알람, 시계, 타이머, 스톱워치 앱

15분 동안 뭘 끓여야 합니다. 15분이 넘으면 탈 수 있으므로 시간을 재야 합니다. 스마트폰에 있는 시계 앱으로 타이머를 맞추다가, 윈도우에서 비슷한 기능의 앱이 있을 거 같아 찾아봤습니다. 컴퓨터로 작업하고 있을 때는 컴퓨터에서 모든 걸 해결하는 게 편하니까요. 역시나 있었습니다. 이름은 알람 및 시계. 윈도우 설치 시 자동으로 설치되는 앱인가 봅니다. 따로 ...