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 / 제어판 여는 방법, 바탕화면에 추가하는 방법

Windows 11의 많은 설정을 Windows 설정에서 할 수 있지만, 아직도 제어판이 필요한 경우가 있습니다. 윈도우 11에서 제어판을 여는 방법과 바탕화면에 추가하는 방법을 알려드립니다.

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

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

윈도우 11에서 고정 IP를 설정하는 방법 두 가지를 소개합니다. 가 편합니다. 방법 1 오른쪽 아래에 있는 네트워크 아이콘 위에 마우스를 올리고 우클릭합니다. 을 클릭합니다. 설정하려는 네트워크를 선택하고... 을 클릭합니다. 자동을 수동으로 변경하고... IPv4를 켠 후... 필요한 정보를 ...

윈도우 11 / 작업 표시줄 / 위젯 없애는 방법

윈도우 11 / 작업 표시줄 / 위젯 없애는 방법

윈도우 11에서 작업 표시줄의 위젯을 없애는 방법은 다음과 같습니다: 작업 표시줄을 마우스 오른쪽 버튼으로 클릭합니다. 나타나는 메뉴에서 작업 표시줄 설정을 클릭합니다. 작업 표시줄 항목 섹션에서 위젯 옵션을 찾아 스위치를 꺼짐으로 설정합니다. 이 단계를 따르면 작업 표시줄에서 위젯 아이콘이 사라지게 됩니다.

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

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

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

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

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

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

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

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

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

윈도우 11 / 원격 데스크톱 / 연결 허용하는 방법

윈도우 11 / 원격 데스크톱 / 연결 허용하는 방법

원격으로 다른 컴퓨터에 들어가는 방법은 여러 가지가 있습니다. 그 중 가장 간단히 사용할 수 있는 것은 윈도우에 포함된 원격 데스크톱입이다. 별도의 소프트웨어를 설치할 필요 없이 활성화만 시켜주면 됩니다.(단, Windows Home 에디션에는 이 기능이 없으므로, Pro 이상의 에디션을 구입하거나 다른 방법을 찾아야 합니다.) 원격 데스크톱으로 연결되는 것을 허용하는 것은 입니다.) 왼쪽에서 ...

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

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

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

윈도우 / System Volume Information 폴더의 용도

윈도우 / System Volume Information 폴더의 용도

Windows의 System Volume Information 폴더는 복원 지점을 저장하는 폴더이다. 윈도우 11 / 복원 지점 만드는 방법, 복원하는 방법 Windows Server에도 같은 기능이 있는데, 섀도 복사본이라고 한다. 복원 지점(섀도 복사본)을 만들 수록 System Volume Information 폴더의 크기는 늘어난다. 반대로 복원 지점(섀도 복사본)을 지우면 System Volume Information 폴더의 크기는 줄어든다. 설정을 통해 System Volume Information의 최대 ...

윈도우 11 / 시작 프로그램 관리하는 방법

윈도우 11 / 시작 프로그램 관리하는 방법

윈도우를 시작하면 자동으로 실행되는 프로그램을 시작 프로그램 또는 시작 앱이라고 합니다. 사용의 편의, 보안 등 여러 가지 이유로 등록이 되는데, 시스템이 느려지는 이유이기도 하죠. 자주 사용하지 않는 앱이라면 자동으로 시작하지 않게 설정하는 게 좋습니다. 방볍은 여러 가지가 있는데, 보통 다음 세가지 중 하나를 사용합니다. 개별 프로그램 설정에서 설정하기 작업 관리자에서 설정하기 설정에서 설정하기 개별 프로그램 ...