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

기타

 

같은 카테고리의 다른 글
윈도우 10 / Microsoft 사진 / 초기화 또는 복구하는 방법

윈도우 10 / Microsoft 사진 / 초기화 또는 복구하는 방법

윈도우 10에 포함된 사진 앱은, 이름은 사진이지만 동영상 편집까지 가능한 유용한 앱입니다. 그런데, 이상하게 가끔 문제가 생깁니다. 실행이 되지 않거나, 오류가 생기거나... 그런 경우 프로그램을 삭제 후 다시 설치하면 보통 해결이 되는데, 사진 앱은 제거가 되지 않습니다. 대신 초기화 또는 복구는 가능합니다. Windows 설정을 엽니다. 단축키는 WIN+I입니다. 을 클릭합니다. 는 활성화되지 ...

윈도우 10 / 사진 앱 등 윈도우 기본 앱 초기화하는 방법

윈도우 10 / 사진 앱 등 윈도우 기본 앱 초기화하는 방법

윈도우 10의 기본 이미지 뷰어는 이에요. 처음엔 어색해서 잘 쓰지 않았는데, 몇 번 사용해보니 꽤 좋아요. 이미지를 보정하거나 편집할 수도 있고, 앨범을 만들 수도 있어요. 예전의 무비메이커처럼 사진들로 동영상을 만들 수도 있어요. 사진이 있는 폴더들을 추가하면, 모든 폴더의 사진들을 한 번에 볼 수 있는 것도 편해요. 그런데, 이런저런 작업을 하다보니 좀 꼬였나봐요. 설정이 ...

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

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

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

윈도우 11 / Windows 기능 켜기 끄기

윈도우 11 / Windows 기능 켜기 끄기

윈도우에는 처음 설치할 때는 설치되지 않는 여러 가지 기능들이 있습니다. Hyper-V, IIS 등 일반적으로는 사용하지 않으나, 개발자 등 파워 유저에게는 필요한 기능들입니다. 윈도우 11에서 그런 기능들을 추가하는 방법은 다음과 같습니다.

윈도우 10 / Sticky Notes / 포스트잇 프로그램

윈도우 10 / Sticky Notes / 포스트잇 프로그램

Sticky Notes 간단한 메모를 할 때 포스트잇을 많이 사용합니다. 포스트잇에 메모를 하고 눈에 잘 띄는 모니터 같은 곳에 붙여놓죠. 그러한 메모를 컴퓨터에서 할 수 있는 프로그램들이 있습니다. 그 중 하나가 Sticky Notes입니다. Sticky Notes의 가장 큰 특징은 마이크로소프트가 만들었고 윈도우 10에 포함되어 있다는 것입니다. 한마디로 접근성이 좋다는 것이죠. 윈도우 10 사용자라면 따로 무언가를 ...

윈도우 10 / 시작 메뉴에 폴더 추가하는 방법

윈도우 10 / 시작 메뉴에 폴더 추가하는 방법

윈도우 10에서 왼쪽 밑에 있는 시작 버튼을 클릭하면 시작 메뉴와 화면이 주욱 올라옵니다. 설치한 앱과 프로그램 목록이 있고, 자주 사용하는 프로그램은 시작 화면에 등록해둘 수 있죠. 시작 메뉴의 왼쪽에는 전원, 설정 등의 아이콘이 있는데 공간에 비해 아이콘이 몇 개 없습니다. 좀 허전하죠? 그 곳에 자주 접근하는 폴더를 등록해놓고 활용할 수 있습니다. [Win + ...

윈도우 10 / 랜카드 두 개 동시에 사용하는 방법

윈도우 10 / 랜카드 두 개 동시에 사용하는 방법

노트북을 사용하면 보통 무선과 유선, 두 개의 랜카드가 있다. 둘 중에 하나만 사용하는 게 대부분이겠지만, 어떤 경우에는 둘 다 사용해야 하는 경우도 있다. 그런데 윈도우 10 또는 윈도우 11을 사용하면 둘 중 하나만 네트워크에 연결한다. 하나가 연결되면 다른 하나의 연결을 끊는데, 유선을 우선으로 하는 거 같다. 즉, 무선이 연결된 상태에서 유선을 ...

윈도우 / 컴퓨터가 64비트인지 32비트인지 확인하는 방법

윈도우 / 컴퓨터가 64비트인지 32비트인지 확인하는 방법

UI 또는 명령어로 컴퓨터가 64비트인지 32비트인지 확인할 수 있다. 참고로, Windows 11은 64비트 컴퓨터에만 설치되므로, Windows 11이 설치된 컴퓨터는 볼 것도 없이 64비트이다. 방법 1 윈도우 11 을 연다.(단축키는 WIN + I) 를 클릭한다. 에서 64비트인지 32비트인지 확인할 수 있다. 윈도우 10 을 연다.(단축키는 WIN + I) 을 클릭한다. 를 클릭한다. 에서 64비트인지 32비트인지 확인할 수 있다. 방법 ...

윈도우 11 / 터미널 / 사용법 / 원하는 폴더에서 여는 방법

윈도우 11 / 터미널 / 사용법 / 원하는 폴더에서 여는 방법

터미널은 사용자 폴더를 기준으로 열립니다. 예를 들어 사용자 이름이 ABC라면 C:\Users\ABC 에서 시작하게 됩니다. 윈도우 11은 윈도우 10과 다르게, 마우스 우클릭 메뉴에 가 있습니다. 이를 이용하면 원하는 폴더를 기준으로 터미널을 열 수 있습니다. 원하는 폴더에서 마우스 우클릭 후 를 클릭하면... 그 폴더를 기준으로 한 PowerShell이 열립니다. 만약 PowerShell이 아니라 명령 프롬프트가 열리게 하고 싶다면, ...

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

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

윈도우 11에서 글꼴을 설치하는 방법은 여러 가지가 있습니다. 그 중 가장 편한 방법은, 글꼴을 선택한 후 마우스 우클릭하여 설치하는 것입니다. 설치에는 개인용 설치, 모든 사용자용 설치 두 가지가 있습니다. 개인용으로 설치 글꼴을 선택한 후 마우스 우클릭합니다. 를 클릭합니다. 설치한 글꼴 정보는 에서 확인할 수 있습니다. 마우스 우클릭 후 를 클릭해서 설치한 ...