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 / 네트워크 초기화하는 방법

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

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

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

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

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

윈도우 10 / 알람 및 시계 / 알람, 시계, 타이머, 스톱워치 앱

윈도우 10 / 알람 및 시계 / 알람, 시계, 타이머, 스톱워치 앱

15분 동안 뭘 끓여야 합니다. 15분이 넘으면 탈 수 있으므로 시간을 재야 합니다. 스마트폰에 있는 시계 앱으로 타이머를 맞추다가, 윈도우에서 비슷한 기능의 앱이 있을 거 같아 찾아봤습니다. 컴퓨터로 작업하고 있을 때는 컴퓨터에서 모든 걸 해결하는 게 편하니까요. 역시나 있었습니다. 이름은 알람 및 시계. 윈도우 설치 시 자동으로 설치되는 앱인가 봅니다. 따로 ...

윈도우 11 / 디스플레이 / 화면 배율, 해상도, 새로 고침 빈도(모니터 주사율) 설정하는 방법

윈도우 11 / 디스플레이 / 화면 배율, 해상도, 새로 고침 빈도(모니터 주사율) 설정하는 방법

화면 배율은 화면에 표시되는 텍스트, 아이콘 및 기타 UI 요소의 크기를 조정하는 설정입니다. 배율을 조정하면 해상도는 동일하게 유지되지만, 디스플레이에 표시되는 내용의 크기가 변경됩니다. 화면 해상도는 화면에 표시되는 픽셀의 수를 나타냅니다. 가로 픽셀 수 × 세로 픽셀 수 형식으로 표현되며, 해상도가 높을수록 더 많은 픽셀이 사용되어 화면이 더 세밀하고 선명하게 보입니다. 새로 고침 ...

윈도우 11 / 메모장 / 다크 모드 설정하는 방법

윈도우 11 / 메모장 / 다크 모드 설정하는 방법

많은 텍스트 에디터의 기본 테마가 다크 모드이다. 윈도우 11의 메모장도 다크 모드로 변경할 수 있다. 윈도우 11 자체를 다크 모드로 하면 메모장도 다크 모드가 되는데, 윈도우 11 테마는 그대로 둔 채 메모장만 다크 모드로 변경할 수 있다. 메모장을 열고 오른쪽 위의 설정 아이콘을 클릭한다. 앱 테마를 로 설정하면... 어두운 배경에 글자가 밝게 나오는... 다크 모드로 변경된다. 윈도우 ...

윈도우 11 / 디스크 100% 해결하는 방법

윈도우 11 / 디스크 100% 해결하는 방법

윈도우 11에서 디스크 사용률이 100%에 도달하는 문제는 시스템 성능을 저하시킬 수 있습니다. 이 문제를 해결하기 위해 다음 단계를 시도해 볼 수 있습니다. Windows Search 서비스 비활성화 Windows Search 서비스가 디스크 사용률을 높일 수 있습니다. Windows 키 + R을 눌러 실행 창을 엽니다. services.msc를 입력하고 Enter를 누릅니다. Windows Search를 찾은 후 더블 클릭합니다. 시작 유형을 사용 안 ...

윈도우 11 / 프린트 스크린 키 눌렀을 때 캡처 도구 실행되지 않게 하는 방법

윈도우 11 / 프린트 스크린 키 눌렀을 때 캡처 도구 실행되지 않게 하는 방법

윈도우에는 캡처 도구가 설치되어 있다. 그런데 컴퓨터 화면 캡처는 주로 픽픽을 사용한다. 여러 방식의 캡처가 가능하고, 단축키 사용도 편하고, 무엇보다 손에 익었다. 픽픽으로 캡처를 할 때 전체 화면 캡처의 단축키는 프린트 스크린(Print Screen)인데, 윈도우를 새로 설치하고 픽픽을 설치했더니 프린트 스크린 키를 눌렀을 때 픽픽으로 캡처하지 않고 캡처 도구가 뜬다. 이게 너무 불편하여 ...

윈도우 10 / 방화벽 해제하는 방법

윈도우 10 / 방화벽 해제하는 방법

방화벽은 네트워크 간에 주고 받는 트래픽을 허용 또는 차단한다. Windows 10에도 기본적으로 방확벽이 있다. 그리고 활성화되어 있다. 특별한 이유가 없는 한 방화벽은 켜는 것이 좋다. 허용 또는 차단할 포트가 있다면 개별적으로 설정하는 것이 좋다. 만약 어떤 이유로 인해 방화벽 자체를 꺼야 한다면, 즉 모든 트래픽을 허용해야 한다면, 다음 두 가지 방법으로 할 ...

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

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

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

윈도우 10 / 초기화 하는 방법

윈도우 10 / 초기화 하는 방법

보통 윈도우 10을 다시 설치한다고 하면, 설치 USB를 만들어서 USB로 부팅하고, 포맷하고 설치하는 것을 생각하는데, 이미 윈도우가 설치되어 있는 상태라면 그럴 필요가  없다. 윈도우 10에는 초기화 기능이 있어서, 아무것도 준비할 거 없이 깨끗한 상태로 만들 수 있다. 파일을 유지하는 옵션이 있기는 하지만, 중요한 파일은 백업하는 것이 좋다. 초기화하는 방법은... 을 연다.(단축키는 WIN+I) [업데이트 및 ...