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 / 작업 표시줄에서 코타나(Cortana) 제거하는 방법

윈도우 10 / 작업 표시줄에서 코타나(Cortana) 제거하는 방법

윈도우 10을 설치하면 작업 표시줄에 동그란 아이콘이 있습니다. 클릭하면 아래처럼 '해당 지역에서는 Cortana를 사용할 수 없습니다.'라고 나옵니다. 코타나는 마이크로소프트가 만든 음성인식 비서라고 합니다. 위키백과에서는 다음처럼 설명하고 있습니다. 마이크로소프트 코타나(영어: Microsoft Cortana)는 마이크로소프트가 윈도우 폰 8.1, 마이크로소프트 밴드, 윈도우 10 용으로 제작한 인공지능 소프트웨어이다. 영어, 스페인어, 중국어 등 일부 언어를 지원하는데, 아직 한국어는 지원하지 않는다고 ...

윈도우 11 / 네트워크 초기화하는 방법

윈도우 11 / 네트워크 초기화하는 방법

윈도우 11에서 네트워크 초기화(Network Reset)는 인터넷 연결 문제를 해결할 때 매우 효과적인 방법입니다. 네트워크 초기화는 다음 설정을 모두 초기 상태로 되돌립니다.

윈도우 11 / 파일 탐색기 / 네트워크 드라이브 연결하는 방법, 연결 끊는 방법

윈도우 11 / 파일 탐색기 / 네트워크 드라이브 연결하는 방법, 연결 끊는 방법

네트워크 드라이브란 네트워크 상에 연결된 저장 공간을 마치 내 PC에 있는 드라이브처럼 사용하는 기능입니다. 내 PC의 문서나 C 드라이브처럼 보이지만, 실제로는 회사 서버나 다른 컴퓨터, NAS(Network Attached Storage)에 저장되어 있는 공간입니다. 윈도우 11에서 네트워크 드라이브를 연결하는 방법과 연결된 네트워크 드라이브의 연결을 끊는 방법을 알려드립니다.

윈도우 11 / LTSC(Long-Term Servicing Channel)

윈도우 11 / LTSC(Long-Term Servicing Channel)

Windows 11 LTSC는 장기 서비스 채널(Long-Term Servicing Channel)이라는 이름처럼, 장기간 안정적인 운영을 목표로 한 특별한 윈도우 11 버전입니다. 일반적으로 사용하는 Windows 11 Home, Pro와는 다소 다른 성격을 가지고 있습니다. Windows 11 LTSC는 2024년 10월 1일에 출시되었습니다.

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

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

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

윈도우 10 / 설정을 여는 세 가지 방법

윈도우 10 / 설정을 여는 세 가지 방법

윈도우의 여러 설정이 으로 옮겨지고 있다. 이제는 제어판보다 설정을 더 많이 사용하는 거 같다. 윈도우 설정을 여는 세 가지 방법을 소개한다. 윈도우 10 / 제어판을 여는 세 가지 방법, 바탕화면에 추가하는 방법 방법 1 가장 기억하기 쉬운 방법이다. 그러나 메뉴를 찾기 위해 스크롤을 해야 한다. 시작 버튼을 클릭하여 시작 메뉴를 연다. 을 클릭한다. 시작 화면에 고정하거나 ...

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

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

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

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

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

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

PowerShell / 메모

PowerShell / 메모

업그레이드 버전 확인 PS C:\> $PSVersionTable Name Value ---- ...

윈도우 10 / 다중 모니터 사용시 메인 모니터에만 작업 표시줄 나오게 설정하는 방법

윈도우 10 / 다중 모니터 사용시 메인 모니터에만 작업 표시줄 나오게 설정하는 방법

컴퓨터 작업을 할 때 모니터를 여러 대 사용하는 게 유행입니다. 특히 노트북을 사용할 때는 화면이 작아서 큰 모니터를 연결해서 사용하는 경우가 많습니다. 윈도우의 디스플레이 확장 기능으로 여러 모니터를 사용하면, 각 화면마다 작업 표시줄이 나옵니다. 어떻게 보면 편한 기능이고, 어떻게 보면 불편한 기능입니다. 만약 모든 모니터에 작업 표시줄이 나오는 게 불편하다면, 설정에서 ...