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

기타

 

같은 카테고리의 다른 글

윈도우 / 안전 모드

윈도우의 안전 모드(Safe Mode)는 운영 체제에서 문제가 발생했을 때 이를 진단하고 해결하기 위한 특별한 부팅 옵션입니다. 안전 모드에서는 윈도우가 기본적인 파일과 드라이버만 로드하며, 문제의 원인을 찾고 수정하는 데 유리한 환경을 제공합니다. 안전 모드에서는 비필수적인 소프트웨어와 드라이버는 실행되지 않으므로, 충돌 문제나 시스템 오류를 최소화할 수 있습니다. 안전 모드의 주요 기능과 목적 필수적인 기능만 ...

윈도우 10 / 사용자 계정 컨트롤 끄는 방법, 켜는 방법

윈도우 10 / 사용자 계정 컨트롤 끄는 방법, 켜는 방법

사용자 계정 컨트롤 소프트웨어를 설치하거나 실행할 때 정말로 실행하겠냐고 메시지가 나옵니다. 유해한 소프트웨어의 실행을 방지하기 위한 것으로, 사용자가 다시 한번 생각하도록 알림을 보내는 것입니다. 이 알림 설정은 사용자 계정 컨트롤에서 합니다. 더 자주 알림을 보내게 할 수도 있고, 알림을 없앨 수도 있습니다. 사용자 계정 컨트롤 설정하기 사용자 계정 컨트롤 설정은 제어판에서 합니다. 검색에서 ...

윈도우 11 / PowerToys / 사용법 / Always On

윈도우 11 / PowerToys / 사용법 / Always On

PowerToys의 Always On은 선택한 창이 항상 위에 있게 한다. 단축키는 이다. 창을 선택한 후 를 누르면 파란색 테두리가 생기면서 항상 다른 창보다 위에 있게 된다. 다시 한 번 를 누르면 해제된다.

윈도우 11 / 최신 대기 모드(Modern Standby)

윈도우 11 / 최신 대기 모드(Modern Standby)

예전 노트북은 절전 모드에 들어가면 거의 모든 부품 전원이 꺼졌습니다. 그래서 다시 켤 때 시간이 조금 걸렸죠. 하지만 최신 대기 모드는 다릅니다. 화면은 꺼져 있지만 아주 적은 전력만 사용하면서 일부 기능은 계속 동작합니다.

윈도우 11 / Microsoft Defender / 검사 예외 처리 하는 방법

윈도우 11 / Microsoft Defender / 검사 예외 처리 하는 방법

Microsoft Defender에서 특정 파일, 폴더, 파일 형식, 프로세스를 검사 대상에서 제외하는 방법을 설명합니다. Windows 보안 설정과 PowerShell을 이용한 검사 예외 추가 및 삭제 방법도 함께 정리합니다.

윈도우 10 / 메일 / 지메일(Gmail) 추가하는 방법

윈도우 10 / 메일 / 지메일(Gmail) 추가하는 방법

윈도우 10의 메일 앱에 지메일을 추가하는 방법입니다. 예전에 여러 가지 설정이 필요했었는데, 지금은 간단히 추가할 수 있습니다. 메일 앱을 실행합니다. 메일 앱을 처음 사용하는 거라면 다음과 같이 계정을 추가하라는 창이 나옵니다. 를 클릭합니다. 계정을 처음 추가하는 게 아니라면, 설정에서 추가할 수 있습니다. 구글 계정을 입력합니다. abc@gmail.com으로 입력해도 되고 abc만 입력해도 됩니다. 을 클릭합니다. 비밀번호를 입력하고 을 클릭합니다. 권한이 ...

윈도우 10 / 네트워크 / 고정 IP 설정하는 방법

윈도우 10 / 네트워크 / 고정 IP 설정하는 방법

인터넷은 보통 유동 IP로 연결됩니다. 연결될 때마다 새로운 IP를 받는 것이죠. 그렇다고 부팅할 때마다 바뀌는 것은 아닙니다. 일정 시간 기다려주므로, 오랜 시간 껐다 켜는 게 아니라면 IP가 유지됩니다. 하지만, 어떠한 상황에서도 IP가 유지되는 게 필요할 때가 있습니다. 대표적인 경우는 외부에서 접속하고 싶을 때죠. IP가 정확하지 않으면 접속을 할 수 없습니다. 그런 ...

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

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

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

윈도우 10 / 가상 데스크톱 단축키와 타임라인 해제하는 방법

윈도우 10 / 가상 데스크톱 단축키와 타임라인 해제하는 방법

가상 데스크톱 단축키 윈도우 10에는 가상 데스크톱 기능이 있습니다. 창을 많이 띄워야 하는 작업을 할 때, 남에게 보이고 싶지 않은 작업을 할 때 유용한 기능입니다. 가상 데스크톱을 관리하는 것은 단축키로 하는 것이 편합니다. 그래야 가상 데스크톱 사이의 전환을 빠르게 할 수 있어 효율적인 작업이 가능합니다. 주요 단축키는 다음과 같습니다. 가상 데스크톱 만들기 : Ctrl ...

윈도우 10 / 폴더 아이콘 변경하는 방법

윈도우 10 / 폴더 아이콘 변경하는 방법

윈도우 10이라면, 기본적으로 문서는 종이, 다운로드는 아래쪽으로 향하는 화살표, 사진은 이미지가 폴더에 표시됩니다. 폴더 아이콘은 주어진 모양대로 사용해야 하는 것은 아닙니다. 내가 원하는 모양으로 바꿀 수 있습니다.