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 / ExplorerPatcher로 작업 표시줄 그룹화 해제하는 방법

윈도우 11 / ExplorerPatcher로 작업 표시줄 그룹화 해제하는 방법

윈도우 11 2023년 11월 업데이트에 작업 표시줄 그룹화 해제 기능이 추가되었다. 아래 프로그램을 쓰는 것보다는 윈도우를 업데이트하는 것이 좋다. 소프트웨어는 항상 최신 버전을 사용한다. 새 버전이 나오면 안정화될 때까지 잠시 기다렸다 사용하는 사람도 있지만, 나는 일단 업그레이드하고 본다. 윈도우 11도 그랬다. 정식 출시가 되자 마자 설치를 했다. 그러나 몇 시간 만에 다시 ...

윈도우 10 / 모니터 주사율(새로 고침 빈도) 설정하는 방법

윈도우 10 / 모니터 주사율(새로 고침 빈도) 설정하는 방법

모니터는 별도의 설정 없이 연결만 하면 사용할 수 있는 기기 중의 하나입니다. 그런데 간혹 설정이 맞지 않아 제대로 작동하지 않는 경우가 있습니다. 대표적인 것이 주사율입니다.(Windows에서는 새로 고침 빈도라고 표현하고 있습니다.) 그래픽 카드를 교체하거나, 새 모니터를 연결했을 때 주사율이 엉뚱하게 설정된다면 윈도우 설정에서 제대로 잡아줍니다. 설정하는 방법은... Windows 설정을 엽니다. 단축키는 WIN+I입니다. 을 클릭합니다. 왼쪽에서 ...

윈도우 11 / PowerShell / PowerShell 7 설치하는 방법

윈도우 11 / PowerShell / PowerShell 7 설치하는 방법

윈도우 11에 Windows 터미널이라는 것이 생겼다. 시작 메뉴에도 있고, 파일 탐색기에서 마우스 우클릭해도 있다. 내가 원하는 위치에서 터미널을 쉽게 열 수 있다는 게 장점. 기본 터미널로 PowerShell이 설정되어 있는데, 언제부턴가 최신 PowerShell을 설치해보라는 메시지가 뜬다. 특별히 불편한 점은 없지만, 그 메시지가 보기 싫어서 업그레이드를 해보았다.(정확히는 업그레이드가 아니라 새로운 PowerShell을 설치하는 것.) URL을 ...

윈도우 / 안전 모드

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

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

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

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

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

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

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

윈도우 10 / Autoruns / 시작 프로그램 관리하는 유틸리티

윈도우 10 / Autoruns / 시작 프로그램 관리하는 유틸리티

컴퓨터를 부팅하면 자동으로 시작되는 프로그램들이 있습니다. 컴퓨터 작동에 필수적인 프로그램도 있고, 사용이 편리하도록 미리 실행되는 프로그램도 있습니다. 만약 잘 사용하지 않는 프로그램이 자동으로 시작된다면 컴퓨터 자원이 낭비되는 것이겠죠. 그런 프로그램이 있다면 시작 프로그램에서 제외해주는 것이 좋습니다. 시작 프로그램을 관리하는 방법은 여러 가지인데, 그 중 하나는 Autoruns라는 프로그램을 이용하는 것입니다. This utility, which ...

윈도우 11 / 초기화 하는 방법

윈도우 11 / 초기화 하는 방법

윈도우 11을 초기화하는 방법은 몇 가지가 있는데, 가장 편한 방법은 윈도우 11에 포함된 복구 기능을 이용하는 것입니다. 설치용 USB를 만들 필요도 없이, 몇 번의 클릭으로 초기화를 할 수 있습니다.

윈도우 10 / 자동 업데이트 끄는 방법

윈도우 10 / 자동 업데이트 끄는 방법

윈도우 10을 설치한 후 별도의 설정을 하지 않았다면 업데이트를 자동으로 합니다. 업데이트를 한 후에 사용자가 컴퓨터를 사용하지 않으면 스스로 재부팅을 하기도 하죠. 잠시 자리를 비웠는데 컴퓨터가 재부팅을 하고 한참동안 업데이트를 설치하는 일이 발생할 수 있습니다. 급하게 작업할 게 있다면 아주 당황스런 상황이 되는 거죠. 중요한 업데이트를 자동으로 하는 것이 좋기는 하지만, ...

윈도우 / DNS 캐시 조회하는 방법, 삭제하는 방법

윈도우 / DNS 캐시 조회하는 방법, 삭제하는 방법

윈도우는 DNS 정보를 캐시한다. 캐시는 기본적으로 속도 향상을 위한 것인데, 단점은 정보가 변경되었을 때 바로바로 적용되지 않는다는 것이다. 따라서 서버 이전 작업 등을 했을 때 제대로 찾아가지 못한다면 캐시를 삭제하는 작업이 필요하다. 캐시된 DNS를 조회하는 방법과 삭제하는 방법은 다음과 같다. DNS 캐시 조회하는 방법 명령 프롬프트를 연다. 아래와 같이 명령한다. ipconfig /displaydns DNS 캐시 삭제하는 방법 명령 ...