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

기타

 

같은 카테고리의 다른 글
윈도우 / 명령어 / diskpart / 디스크 초기화하고 MBR 또는 GPT로 변경하는 방법

윈도우 / 명령어 / diskpart / 디스크 초기화하고 MBR 또는 GPT로 변경하는 방법

MBR과 GPT 하드디스크 파티션 스타일에는 MBR(마스터 부트 레코드)과 GPT(GUID 파티션 테이블)가 있다. MBR 스타일은 호환성이 좋으나 디스크를 2TB까지만 사용할 수 있다. 따라서 3TB 디스크를 MBR 스타일로 초기화하면 1TB는 사용할 수 없게 된다. GPT 스타일은 용량이 큰 디스크를 사용할 수 있지만, 구형 메인보드에서는 부팅 디스크로 사용할 수 없다. MBR을 GPT로, GPT를 MBR로 변경하기 위해서는 diskpart ...

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

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

내 PC를 원격에서 접속하여 제어하는 가장 간단한 방법은 원격 데스크톱을 이용하는 것이다. 접속을 받는 PC에서는 원격 데스크톱 연결을 허용해주고, 접속을 하는 PC에서는 원격 데스크톱 연결 앱으로 접속한다. 접속은 받는 PC는 Windows Pro 이상의 에디션이어야 한다. 즉, Windows Home은 지원하지 않는다. 원격 데스크톱 연결 허용하는 방법 접속을 받는 PC에서 Windows 설정을 연다. 단축키는 WIN+I이다. 을 클릭합니다. 왼쪽에서 ...

윈도우 11 / 저장소 풀, 저장소 공간으로 여러 개 디스크 하나로 합치는 방법

윈도우 11 / 저장소 풀, 저장소 공간으로 여러 개 디스크 하나로 합치는 방법

컴퓨터에 여분으로 갖고 있는 128GB 디스크 2개, 256GB 디스크 1개를 창착했다. 그대로 사용해도 되기는 한데, 작은 크기 여러 개보다는 큰 크기 한 개가 더 좋을 때가 있다. 어떻게 하면 3개의 디스크를 합해서 512GB로 사용할 수 있을까? 윈도우 11의 저장소 기능을 이용하면 가능하다. 순서는 다음과 같다. 저장소 풀 만들기 저장소 공간 만들기 볼륨 만들기 윈도우 11의 ...

윈도우 10 / 프로그램 시작 화면에 고정하는 방법, 작업 표시줄에 고정하는 방법

윈도우 10 / 프로그램 시작 화면에 고정하는 방법, 작업 표시줄에 고정하는 방법

윈도우 10에 소프트웨어를 설치하면 대부분 시작 메뉴에 등록됩니다. 그런데 시작 메뉴는 가나다순으로 프로그램 목록이 나와서 사용이 불편합니다. 자주 사용하는 프로그램이 밑에 있을 수도 있으니까요. 자주 사용하는 프로그램에 접근하기 쉽게 하는 방법은 두 가지가 있습니다. 하나는 시작 화면에 고정하는 것이고, 또 하나는 작업 표시줄에 고정하는 것입니다. 시작 화면에 고정하는 방법 프로그램에 마우스를 올리고 우클릭합니다. 팝업 ...

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

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

윈도우 11 작업 표시줄 왼쪽에 위젯 버튼이 있습니다. 마우스를 올리거나 클릭하면 위젯이 나옵니다. 위젯이 필요 없다면 설정에서 없앨 수 있습니다. 을 비활성화하면 됩니다.

윈도우 10 / CPU 100% 해결하는 방법

윈도우 10 / CPU 100% 해결하는 방법

윈도우 10에서 CPU 사용률이 100%에 도달하는 문제는 시스템 성능을 저하시킬 수 있습니다. 이 문제를 해결하기 위해 다음 단계를 시도해 볼 수 있습니다. 작업 관리자에서 문제 프로세스 확인 가장 먼저 해야 할 일은 작업 관리자를 사용하여 CPU 사용량이 높은 프로세스를 찾는 것입니다. Ctrl + Shift + Esc를 눌러 작업 관리자를 엽니다. 프로세스 탭에서 CPU 열을 ...

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

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

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

윈도우 10 / 시작프로그램 / 사용, 사용 안 함 설정하는 방법

윈도우 10 / 시작프로그램 / 사용, 사용 안 함 설정하는 방법

방법 1 작업표시줄에 마우스를 올리고 우클릭합니다. 를 클릭합니다. 을 클릭합니다. 사용하지 않는 것을 선택 후 을 클릭하거나... 사용하는 것을 선택하고 을 클릭합니다. 방법 2 Windows 설정을 엽니다.(단축키 Win+I) 을 클릭합니다. 을 클릭합니다. 사용하고 싶은 것은 켜고, 사용하지 않을 것은 끕니다.

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

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

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

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

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

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