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 / 가상 데스크톱 단축키와 타임라인 해제하는 방법

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

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

윈도우 11 / 더 작은 작업 표시줄 단추

윈도우 11 / 더 작은 작업 표시줄 단추

윈도우 11의 작업 표시줄 단추를 작게 만드는 설정이 추가되었습니다. 설정의 에서 설정할 수 있습니다. 항상, 작업 표시줄이 꽉 찼을 때, 안 함 중에서 선택하시면 됩니다.

윈도우 11 / PowerToys / 사용법 / Color Picker

윈도우 11 / PowerToys / 사용법 / Color Picker

모니터 화면에 있는 특정 색을 추출하는 프로그램을 보통 Color Picker라고 한다. Color Picker는 포토샵 등 여러 프로그램에 포함되어 있는데, PowerToys에도 포함되어 있다. 단축키는 이다. 형식은 HEX인데, 에서 변경할 수 있다. CMYK, RGB, HSB 등 여러 가지 형식에서 선택할 수 있다. 단축키 를 누르고 ...

윈도우 10 / 본고딕(Noto Sans), 본명조(Noto Serif) 다운로드하고 설치하는 방법

윈도우 10 / 본고딕(Noto Sans), 본명조(Noto Serif) 다운로드하고 설치하는 방법

본고딕(Noto Sans), 본명조(Noto Serif) 구글과 어도비가 협력하여 오픈 소스 한중일 통합 서체 모음을 만들었습니다. 고딕체와 명조체 두 가지가 있는데, 구글에서는 이를 Noto Sans, Noto Serif라 하고, 어도비에서는 본고딕(Source Han Sans), 본명조(Source Han Serif)라고 합니다. 본고딕과 본명조의 가장 큰 특징은 여러 언어를 통일된 느낌으로 표현할 수 있다는 것입니다. 한글, 영어, 일본어, 중국어 등을 섞어서 글을 ...

윈도우 10 / PC용 구글 드라이브 여러 계정 추가하는 방법

윈도우 10 / PC용 구글 드라이브 여러 계정 추가하는 방법

네이버는 한 명이 만들 수 있는 계정 개수에 제한이 있습니다. 3개까지 만들 수 있죠. 그런데, 구글은 그런 제한이 없습니다. 계속해서 만들 수 있습니다. 개인용, 업무용, 친목용, 가족용, 동호회용, 투잡용 등 구분해서 만드는 게 가능합니다. 그리고 그 계정마다 15G의 클라우드 공간을 사용할 수 있습니다. 구글이 제공하는 클라우드는 PC용 구글 드라이브를 이용해서 관리를 ...

윈도우 11 / 설치용 USB 만드는 방법

윈도우 11 / 설치용 USB 만드는 방법

윈도우 11 설치용 USB를 만드는 방법은 여러 가지가 있습니다. 그 중 마이크로소프트에서 제공하는 방법을 알려드리겠습니다. 준비할 것은 8GB 이상의 크기를 가진 USB입니다.

윈도우 11 / Micorosft Teams / 삭제 또는 비활성화 하는 방법

윈도우 11 / Micorosft Teams / 삭제 또는 비활성화 하는 방법

윈도우 11을 설치하면 Micorosft Teams가 자동으로 설치된다. 마이크로소프트에서 제공하는 메신저 프로그램으로, 마이크로소프트 계정이 있으면 사용할 수 있다. 외국에서는 사용자가 많아지고 있다는데, 국내에서는 모르는 사람도 많고, 안다 해도 사용하는 사람이 별로 없는 듯 하다. 윈도우에 끼워 넣기 시작했으니, 앞으로는 많아질려나? 이 Microsoft Teams는 개인용으로, 기업에서 사용하는 Teams와는 좀 다르다. 기업용 팀즈를 설치하면 두 개의 ...

윈도우 11 / Hyper-V / 기능 추가하는 방법

윈도우 11 / Hyper-V / 기능 추가하는 방법

Hyper-V는 마이크로소프트가 개발한 하이퍼바이저 기반 가상화 플랫폼으로, 여러 운영 체제를 동시에 실행할 수 있는 환경을 제공합니다. 주로 서버 가상화에 사용되며, 물리적인 하드웨어 자원을 가상 머신(VM) 간에 효율적으로 분배할 수 있습니다. Hyper-V는 Windows Server 및 Windows Pro 이상 버전에서 사용할 수 있으며, 강력한 관리 도구와 높은 확장성을 갖추고 있어 기업 환경에서 ...