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 / 라이젠 5 2600에 윈도우 설치하는 방법

윈도우 11 / 라이젠 5 2600에 윈도우 설치하는 방법

데스크톱의 CPU는 Rygen 5 2600이다. 윈도우 11 설치 가능한지 테스트를 해보면 두 가지 문제가 있다고 나온다. 이 PC는 보안 부팅을 지원해야 합니다. 이 PC에서 TPM 2.0 지원 및 사용하도록 설정해야 합니다. 이 메시지를 보고 윈도우 11 설치를 포기했었는데, 다시 알아보니 Rygen 5 2600이 윈도우 11이 지원하는 CPU 목록에 있고, 설정을 변경하면 되더라. 예를 들어 ...

윈도우 10 / 터치 키보드(가상 키보드, 화면 키보드) 사용하는 방법

윈도우 10 / 터치 키보드(가상 키보드, 화면 키보드) 사용하는 방법

갑자기 키보드가 망가졌습니다. 그런데 급하게 메일을 보내야합니다. 그렇다면 터치 키보드를 사용하세요. 원래는 터치가 되는 모니터를 위한 기능인데, 마우스로도 가능합니다. 작업 표시줄에 마우스를 올리고 우클릭합니다. 를 클릭합니다. 글자를 입력해야하는 프로그램을 실행하고, 오른쪽 아래에 있는 키보드 아이콘을 클릭하면... 화면에 키보드가 만들어집니다. 이제 마우스로 자판을 클릭해서 글자를 입력할 수 있습니다. 키보드 설정 아이콘을 클릭해서... 키보드 모양을 ...

윈도우 11 / 가상 데스크톱과 작업 보기

윈도우 11 / 가상 데스크톱과 작업 보기

컴퓨터는 멀티태스킹을 지원한다. 동시에 여러 가지 프로그램을 띄워 놓고 작업하는 것이 가능하다. 요즘은 너무나 당연한 것이지만, 아주 예전에는 한 번에 하나의 프로그램만 실행할 수 있었다. 멀티태스킹의 단점은 너무 많은 프로그램을 실행했을 때 프로그램 간 전환이 불편하다는 것이다. 이럴 때 유용한 것이 가상 데스크톱이다. 1번 데스크톱에는 파워포인트와 엑셀, 2번 데스크톱에는 포토샵과 일러스트레이터와 ...

윈도우 11 / 나눔 글꼴 설치하는 방법

윈도우 11 / 나눔 글꼴 설치하는 방법

윈도우를 설치하고 나면 제일 먼저 하는 게 윈도우 업데이트, 그 다음이 글꼴 설치입니다. 개인적으로 맑은 고딕을 그다지 좋아하지 않아 다른 글꼴을 사용하는데, 그 다른 글꼴을 설치하지 않으면 기존에 만든 문서들이 엉망으로 보입니다. 가장 많이 사용하는 글꼴은 나눔 글꼴입니다. 나눔 글꼴을 설치하는 방법은 다음과 같습니다. 네이버 글꼴 모음 페이지로 접속합니다. 밑으로 조금 내려가면 글꼴을 다운로드할 ...

윈도우 10 / 공유 폴더 만드는 방법

윈도우 10 / 공유 폴더 만드는 방법

공유 폴더 만드는 방법 공유할 폴더를 선택하고 마우스 우클릭합니다. 팝업 메뉴에서 을 클릭합니다. 를 클릭합니다. 현재 로그인한 사용자가 소유자로, 공유 폴더에 접근 가능합니다. 다른 사용자를 추가하고 싶다면 선택 목록을 클릭합니다. 사용자를 선택하고, 추가한 다음... 역삼각형 아이콘을 클릭하여... 권한을 적절히 선택합니다. 를 클릭합니다. 적절히 선택합니다. 를 클릭해도 됩니다. 공유 설정이 완료되었습니다. 공유 폴더에 접근하는 방법 같은 네트워크 안에 있는 다른 PC에서 파일 ...

윈도우 10 / PING 허용하는 방법

윈도우 10 / PING 허용하는 방법

네트워크에 잘 연결되어 있는지 확인하는 방법 중의 하나는 ping을 날리는 것입니다. 그런데 윈도우 10은 기본적으로 ping에 대하여 응답하지 않는 것으로 설정되어 있습니다. 그래서 네트워크에 잘 연결되어 있어도 ping으로 확인을 할 수가 없습니다. 만약 ping으로 연결 상태를 확인해야 한다면, 다음의 방법으로 응답하도록 설정합니다. 제어판을 엽니다. 을 클릭합니다. 을 클릭합니다. 을 클릭합니다. 왼쪽에서 ...

윈도우 / Hyper-V / 가상 머신 1세대와 2세대 차이

윈도우 / Hyper-V / 가상 머신 1세대와 2세대 차이

Hyper-V에서 가상 컴퓨터를 만들 때 1세대와 2세대애서 선택하게 되어 있습니다. 1세대(Generation 1)와 2세대(Generation 2)는 가상 머신의 펌웨어 및 부트 방식, 하드웨어 기능 지원 방식에 차이가 있습니다.

윈도우 11 / 작업 표시줄 / 왼쪽 정렬하는 방법

윈도우 11 / 작업 표시줄 / 왼쪽 정렬하는 방법

윈도우 11은 모바일 기기에서의 사용 편의성을 높였다고 한다. 다시 말하면 PC에서의 사용 편의성이 떨어졌다는 뜻. 여러 가지 개선이 있다고는 하지만 불편한 것도 많아졌다. 그 중 하나가 작업 표시줄 아이콘이 가운데에 있는 것. 윈도우 10에서는 작업 표시줄 아이콘이 왼쪽에 붙어 있었는데, 윈도우 11은 가운데에 모여있다. 모양은 좋은 듯 하지만 자꾸 마우스를 왼쪽으로 ...

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

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

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

윈도우 10 / 파일 탐색기 / 파일 확장자 표시하는 방법

윈도우 10 / 파일 탐색기 / 파일 확장자 표시하는 방법

파일 탐색기에서 파일을 보면, 확장자가 보이지 않아도 아이콘과 유형으로 어떤 파일인지 확인할 수 있습니다. 그럼에도 불구하고 파일 이름에 확장자가 있는 게 더 작업하기 좋다면 보이게 할 수 있습니다.