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 / 설치용 USB 만드는 방법

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

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

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

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

윈도우 11은 윈도우 10과는 다르게 작업 표시줄 그룹화를 해제하는 옵션이 없었다. 그래서 ExplorerPatcher라는 별도의 프로그램을 이용해서 구현을 하곤 했는데... 2023년 11월 업데이트 미리 보기에 그 기능이 추가되었다. 미리 보기여서 자동으로 업데이트가 되지는 않고, 직접 설치를 해야 한다. Windows 업데이트에서 바로 보일 수도 있고, 아래처럼 선택적 업데이트에 있을 수도 있다. 이 업데이트를 설치하고 ...

윈도우 10 / 날씨 앱 / 내 위치 설정하기

윈도우 10 / 날씨 앱 / 내 위치 설정하기

윈도우 10에는 날씨 앱이 있습니다. 특정 지역의 날씨를 알려주는 앱입니다. 그런데 그 지역이 내가 있는 지역과 맞지 않을 수 있습니다. 보통 서울로 설정되어 있는 거 같습니다. GPS가 없는 데스크톱이라면 지역을 수동으로 설정해서 사용합니다. 날씨 앱을 엽니다. 현재 위치를 검색한 후 을 클릭합니다. 이제 내 위치에 딱 맞는 날씨를 볼 수 있습니다.

윈도우 / 작업 표시줄 / 검색 없애는 방법

윈도우 / 작업 표시줄 / 검색 없애는 방법

윈도우에서 검색을 여는 단축키는 입니다. 이 단축키를 외우고 나면 작업 표시줄에 있는 검색 상자 또는 검색 아이콘이 필요가 없습니다. 여러 프로그램을 동시에 사용한다면 오히려 검색이 차지하는 공간이 불편할 수 있습니다. 작업 표시줄에서 검색을 숨기는 방법은 다음과 같습니다. 윈도우 11 작업 표시줄에 마우스를 올리고 우클릭합니다. 을 클릭합니다. 로 설정합니다. 윈도우 10 작업 표시줄에 마우스를 올리고 ...

윈도우 / hosts 파일 / 역할, 위치, 편집하는 방법

윈도우 운영체제에서 hosts 파일은 도메인 이름과 IP 주소 간의 매핑을 관리하는 중요한 시스템 파일입니다. 이 파일은 네트워크 트래픽을 제어하고, 특정 도메인 이름을 특정 IP 주소로 직접 연결하는 역할을 합니다. Hosts 파일이란? Hosts 파일은 텍스트 파일로, 도메인 이름을 IP 주소로 매핑하는 항목을 포함하고 있습니다. 네트워크 요청이 발생할 때, 윈도우 운영체제는 먼저 hosts 파일을 ...

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

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

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

윈도우 11 / 소리 없애는 방법

윈도우 11 / 소리 없애는 방법

윈도우 11을 시작할 때, 경고가 뜰 때, 메일이 왔을 때, 노트북 배터리가 부족할 때 등 여러 상황에서 소리가 난다. 내 방이면 상관없지만, 사무실이나 도서관 등이라면 소리가 나지 않게 해야 한다. 그렇다고 아예 무음으로 하면 불편할 수 있다. 그런 경우 특정 이벤트 발생 시 나는 소리만 없앨 수 있다. 오른쪽 아래에 있는 ...

윈도우 10 / IExpress / 자동 압축 풀기 실행 파일 만드는 방법

윈도우 10 / IExpress / 자동 압축 풀기 실행 파일 만드는 방법

IExpress는 윈도우 10에 포함된 자동 압축 풀기 또는 자동 설치 패키지를 만드는 프로그램입니다. 다음은 IExpress로 자동으로 압축이 풀리는 실행 파일을 만드는 방법입니다. 실행 창을 엽니다. 단축키는 WIN+R입니다. iexpress를 입력하고 엔터키를 누르거나 을 클릭합니다. 을 클릭합니다. 압축만 풀 것이므로 Extract files only를 선택하고 을 클릭합니다. 적절히 이름을 정하고 을 클릭합니다. 확인을 받거나 라이선스를 보여주는 기능도 있는데, 자동 ...

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

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

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

윈도우 / Hyper-V / 고급 세션 모드 켜는 방법, 끄는 방법

윈도우 / Hyper-V / 고급 세션 모드 켜는 방법, 끄는 방법

고급 세션 모드(Enhanced Session Mode)는 Hyper-V 가상 머신과 호스트 간의 더 풍부한 인터페이스와 장치 통합을 가능하게 해주는 기능입니다. 윈도우 11 프로 등의 Hyper-V는 기본적으로 활성화되어 있고, 윈도우 서버 2025 등에서는 기본적으로 비활성화되어 있습니다.