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 / 마우스 / 포인터 크기 변경하는 방법

윈도우 10 / 마우스 / 포인터 크기 변경하는 방법

4K UHD 모니터를 샀습니다. 좋은 걸 사고 싶지만 너무 비싸서 가성비 제품을 선택했습니다. 모니터 크기는 28인치. 나름 만족하며 사용하고 있는데... 가장 불편한 건 마우스 포인터입니다. 해상도가 높다보니 마우스 포인터도 작고, 이리저리 휙휙 움직이다보면 마우스 포인터가 어디 있는지 찾을 수가 없습니다. 아래처럼요... 고양이 코 앞에 있는 하얀 점 같은 게 마우스 포인터입니다. 불편한 ...

윈도우 11 / 원드라이브 삭제하는 방법

윈도우 11 / 원드라이브 삭제하는 방법

원드라이브(OneDrive)는 Microsoft가 제공하는 클라우드 기반 파일 저장 및 동기화 서비스입니다. 인터넷을 통해 문서, 사진, 동영상 등 다양한 파일을 저장하고 여러 기기에서 동일한 파일에 접근할 수 있습니다. 예를 들어, PC의 OneDrive 폴더에 파일을 저장하면 자동으로 클라우드에 업로드되며, 동일한 Microsoft 계정으로 로그인한 다른 컴퓨터나 모바일에서도 파일을 확인할 수 있습니다. 또한 파일 공유 기능을 ...

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

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

컴퓨터에는 이름이 있습니다. 다수의 컴퓨터를 관리하는 입장이라면 적절히 이름을 정해주는 것이 좋습니다. 윈도우 11에서 컴퓨터 이름을 변경하는 방법 네 가지를 소개합니다. 방법 1, 방법 2, 방법 3은 GUI로 작업하는 것이고, 방법 4는 PowerShell을 사용하는 것입니다. 어떤 방식으로 해도 컴퓨터를 다시 시작해야 컴퓨터 이름 변경이 적용됩니다. 방법 1 / 설정 - 홈 입니다. 상단에 ...

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

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

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

윈도우 / CMD(명령 프롬프트)와 PowerShell 비교

윈도우 / CMD(명령 프롬프트)와 PowerShell 비교

CMD(명령 프롬프트)와 PowerShell은 모두 Windows 운영 체제에서 사용되는 명령 줄 인터페이스(CLI) 도구이다. 두 도구는 다양한 작업을 수행할 수 있지만, 기능과 설계 철학 측면에서 많은 차이점이 있다. 아래는 CMD와 PowerShell의 주요 비교 사항이다. CMD(명령 프롬프트) 역사 및 배경 초기 도구 : CMD는 MS-DOS 시절부터 사용된 명령 줄 인터페이스의 연장선이다. 전통적인 사용 : 기본적인 파일 및 ...

윈도우 10 / 네트워크 드라이브 연결하는 방법, 연결 끊는 방법

윈도우 10 / 네트워크 드라이브 연결하는 방법, 연결 끊는 방법

공유된 폴더를 네트워크 드라이브로 연결하는 방법입니다. 윈도우 10에서 공유 폴더를 만드는 방법은 여기, 윈도우 서버에서 공유 폴더를 만드는 방법은 여기에 있습니다. 네트워크 드라이브 연결 공유된 폴더를 선택한 후 을 클릭합니다. 드라이브를 적절히 선택한 후 을 클릭하면... 드라이브가 만들어지고, 마치 자신의 PC에 있는 하드디스크처럼 사용할 수 있습니다. 네트워크 드라이브 연결 끊기 네트워크 드라이브를 선택하고 마우스 우클릭합니다. 를 ...

윈도우 10 / 엑스박스 게임 바(Xbox Game Bar) 열리지 않을 때 해결 방법

윈도우 10 / 엑스박스 게임 바(Xbox Game Bar) 열리지 않을 때 해결 방법

윈도우 10의 엑스박스 게임 바(Xbox Game Bar)를 이용하여 게임을 캡쳐하거나, 녹화하거나 방송할 수 있습니다. 특별한 설정을 하지 않았다면 게임을 실행할 때 안내가 나오고, WIN + G로도 실행할 수 있습니다. 게임 실행 중이 아니어도 WIN + G를 누르면 다음과 같이 메뉴들이 나와야 합니다. 만약 WIN + G를 눌렀는데, 엑스박스 게임 바가 나오지 않는다면 ...

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

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

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

윈도우 11 / 디스크 공간 확보하는 방법

윈도우 11 / 디스크 공간 확보하는 방법

윈도우 11을 사용하다 보면 디스크 공간이 부족해지는 상황을 겪을 수 있습니다. 이럴 때 불필요한 파일을 정리하고, 시스템을 최적화하는 것이 중요합니다. 윈도우에는 기본적으로 디스크 정리 도구가 내장되어 있어 불필요한 파일을 쉽게 삭제할 수 있습니다.

윈도우 10 / Windows.old 폴더 삭제하는 방법

윈도우 10 / Windows.old 폴더 삭제하는 방법

Windows.old 윈도우가 설치된 하드디스크를 보면 Windows.old라는 폴더가 있습니다. 윈도우 8 등 구버전에서 업그레이드 할 때, 윈도우 10을 업데이트할 때 만들어지는 폴더입니다. 구버전의 프로그램 정보를 담고 있는 폴더로, 현재 상태에 문제가 없어서 구버전으로 돌아갈 필요가 없다면, 필요 없는 폴더입니다. 만약 하드디스크의 용량이 부족하다면 Windows.old 폴더를 삭제해서 사용 가능한 디스크 용량을 늘릴 수 있습니다. Windows.old 폴더 ...