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 / PowerToys / 사용법 / FancyZones

윈도우 11 / PowerToys / 사용법 / FancyZones

PowerToys의 FancyZones는 창을 배치를 도와주는 앱이다. 이다. 미리 정의된 레이아웃을 사용해도 되고, 새로 만들 수도 있다. 그리드 또는 캔버스 형식으로 만들 수 있고... 키보드와 마우스로 원하는 배치를 만들고 을 클릭한다. 레이아웃을 선택하면... 영역이 표시되고... Shift 키를 누른 채 창을 이동하면 그 영역에 배치된다. 더욱 자세한 사용법은 https://docs.microsoft.com/ko-kr/windows/powertoys/fancyzones에서 볼 수 있다.

윈도우 11 / 환경 변수의 뜻과 확인하는 방법

윈도우 11 / 환경 변수의 뜻과 확인하는 방법

윈도우 11 환경 변수의 뜻과 확인 방법을 정리했습니다. 사용자 변수와 시스템 변수의 차이, PATH 환경 변수의 역할, 설정 화면에서 확인하는 방법, 명령 프롬프트와 PowerShell 명령어로 환경 변수를 확인하는 방법까지 쉽게 알아봅니다.

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

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

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

윈도우 11 / 설치용 USB 만드는 방법

윈도우 11 / 설치용 USB 만드는 방법

윈도우 11 설치용 USB를 만드는 방법은 여러 가지가 있습니다. 그 중 마이크로소프트에서 제공하는 방법을 알려드리겠습니다. 준비할 것은 8GB 이상의 크기를 가진 USB입니다.

윈도우 11 / 저장 공간 센스

윈도우 11 / 저장 공간 센스

저장 공간 센스 저장 공간 센스는 Windows 11에 내장된 자동 관리 도구로, 시스템 내 불필요한 파일을 자동으로 정리하여 디스크 공간을 확보해 주는 기능입니다. 이 기능은 사용자가 설정한 규칙에 따라 주기적으로 실행되며, 아래와 같은 작업을 수행합니다. 임시 파일 정리 임시 시스템 및 앱 파일을 자동으로 정리하여 Windows가 원활하게 실행되도록 합니다. 자동 사용자 콘텐츠 정리 휴지통, 다운로드 ...

윈도우 / 명령어 / 네트워크 관련 명령어

윈도우 / 명령어 / 네트워크 관련 명령어

ipconfig 개요 ipconfig는 네트워크 설정을 확인하고 관리하는 데 사용되는 Windows 명령줄 도구입니다. 네트워크 인터페이스의 IP 주소, 서브넷 마스크, 기본 게이트웨이 등을 확인하는 데 유용하다. 예제 네트워크 어댑터에 대한 기본 정보를 표시합니다. ipconfig DNS 서버, DHCP 서버, 물리적 주소(MAC 주소) 등 네트워크 어댑터에 대한 모든 세부 정보를 표시합니다. ipconfig /all DNS 캐시의 내용을 표시합니다. ipconfig /displaydns DNS 캐시를 지웁니다. ipconfig /flushdns ping 개요 목적지에 접속이 ...

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

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

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

윈도우 10 / 컴퓨터 이름 변경하는 세 가지 방법

윈도우 10 / 컴퓨터 이름 변경하는 세 가지 방법

윈도우 10에서 컴퓨터 이름을 변경하는 방법 세 가지를 소개합니다. 어떤 방식으로 해도 컴퓨터를 재시작해야 반영됩니다. 방법 1 - 설정에서 변경 Windows 설정을 엽니다. 단축키는 입니다. 을 클릭합니다. 왼쪽에서 정보를 클릭합니다. 오른쪽에서 를 클릭합니다. 원하는 이름을 입력한 후 을 클릭하여 변경을 완료합니다. 방법 2 - 시스템 속성에서 변경 실행 창을 엽니다. 단축키는 입니다. sysdm.cpl을 실행합니다. 을 클릭합니다. 원하는 컴퓨터 이름을 ...

윈도우 11 / 로컬 사용자 계정 / 추가하는 방법, 삭제하는 방법

윈도우 11 / 로컬 사용자 계정 / 추가하는 방법, 삭제하는 방법

Windows 11의 로컬 사용자 계정이란, 해당 컴퓨터에서만 사용 가능한 사용자 계정을 의미합니다. 이 계정은 Microsoft 계정과 연결되지 않으며, 로컬 사용자로 로그인하면 해당 컴퓨터에만 적용되는 설정 및 데이터를 사용할 수 있습니다. 윈도우 11에서 로컬 사용자 계정을 추가하는 방법, 삭제하는 방법은 다음과 같습니다. 표준 사용자와 관리자 권한 차이 로컬 사용자는 표준 사용자와 관리자로 구분됩니다. 로컬 ...

윈도우 10 / PowerShell / Get-AppxPackage, Remove-AppxPackage

확장자가 .msix, .assx인 앱 패키지의 정보를 가져오는 명령어는 Get-AppxPackage, 제거하는 명령어는 Remove-AppxPackage이다. Get-AppxPackage 앱 패키지 정보들을 가져온다. Get-AppxPackage 이름이 Microsoft.ScreenSketch인 앱 패키지 정보를 가져온다. Get-AppxPackage -Name Microsoft.ScreenSketch Name : Microsoft.ScreenSketch Publisher : CN=Microsoft Corporation, O=Microsoft Corporation, ...