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 / IP 확인하는 방법

윈도우 10 / IP 확인하는 방법

IP는 두 가지로 구분할 수 있습니다. 내 컴퓨터에 할당된 IP 외부와 통신하는 IP 보통 인터넷 공유기나 방화벽을 통하여 통신하므로, 내 컴퓨터에 할당된 IP와 외부와 통신하는 IP는 다릅니다. 예를 들어 다음과 같이 구성되어 있다면... 공유기의 IP가 외부와 통신하는 IP, 공유기가 컴퓨터에 할당한 IP가 내 컴퓨터에 할당된 IP입니다. 윈도우 10에서 두 가지 IP를 확인하는 방법을 알아봅니다. 내 컴퓨터에 ...

윈도우 11 / 압축 하기, 압축 풀기 - Zip, 7z, TAR

꽤 오래전에는 윈도우에 압축 프로그램이 없었습니다. 압축 만들고 해제하기 위해서는 별도의 프로그램을 설치해야 했습니다. 하지만 지금은 윈도우에 Zip 형식, 7z 형식, TAR 형식으로 압축하고 해제하는 기능이 포함되어 있어, 별도의 프로그램 설치 필요 없이 작업할 수 있습니다. 압축 하기 압축을 하고 싶다면, 파일 또는 폴더를 선택하고 마우스 우클릭합니다. 에서 원하는 형식을 클릭하면... 우클릭 했던 ...

윈도우 11 / PING 허용하는 방법

윈도우 11 / PING 허용하는 방법

윈도우 11에서 Ping 요청을 허용하려면 Windows 방화벽에서 ICMP(Internet Control Message Protocol)를 허용하는 규칙을 설정해야 합니다. Ping은 네트워크 진단을 위한 중요한 도구이며, 이를 사용하려면 ICMP 요청을 허용해야 합니다. 기본적으로 Windows 방화벽은 ICMP 요청을 차단하도록 설정되어 있습니다. 윈도우 11에서 Ping 요청을 허용하는 방법은 다음과 같습니다. 방화벽으로 검색하고 을 실행합니다. [인바운드 ...

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

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

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

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

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

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

윈도우 10 / PING 허용하는 방법

윈도우 10 / PING 허용하는 방법

네트워크에 잘 연결되어 있는지 확인하는 방법 중의 하나는 ping을 날리는 것입니다. 그런데 윈도우 10은 기본적으로 ping에 대하여 응답하지 않는 것으로 설정되어 있습니다. 그래서 네트워크에 잘 연결되어 있어도 ping으로 확인을 할 수가 없습니다. 만약 ping으로 연결 상태를 확인해야 한다면, 다음의 방법으로 응답하도록 설정합니다. 제어판을 엽니다. 을 클릭합니다. 을 클릭합니다. 을 클릭합니다. 왼쪽에서 ...

윈도우 11 / 소리 없애는 방법

윈도우 11 / 소리 없애는 방법

윈도우 11을 시작할 때, 경고가 뜰 때, 메일이 왔을 때, 노트북 배터리가 부족할 때 등 여러 상황에서 소리가 난다. 내 방이면 상관없지만, 사무실이나 도서관 등이라면 소리가 나지 않게 해야 한다. 그렇다고 아예 무음으로 하면 불편할 수 있다. 그런 경우 특정 이벤트 발생 시 나는 소리만 없앨 수 있다. 오른쪽 아래에 있는 ...

윈도우 10 / 프로그램 시작 화면에 고정하는 방법, 작업 표시줄에 고정하는 방법

윈도우 10 / 프로그램 시작 화면에 고정하는 방법, 작업 표시줄에 고정하는 방법

윈도우 10에 소프트웨어를 설치하면 대부분 시작 메뉴에 등록됩니다. 그런데 시작 메뉴는 가나다순으로 프로그램 목록이 나와서 사용이 불편합니다. 자주 사용하는 프로그램이 밑에 있을 수도 있으니까요. 자주 사용하는 프로그램에 접근하기 쉽게 하는 방법은 두 가지가 있습니다. 하나는 시작 화면에 고정하는 것이고, 또 하나는 작업 표시줄에 고정하는 것입니다. 시작 화면에 고정하는 방법 프로그램에 마우스를 올리고 우클릭합니다. 팝업 ...

윈도우 / 서비스 / 관리하는 방법

윈도우 / 서비스 / 관리하는 방법

윈도우 운영체제는 다양한 백그라운드 서비스에 의존하여 원활한 시스템 작동을 유지합니다. 이러한 서비스는 시스템 성능, 보안, 네트워크 연결 등 여러 중요한 기능을 담당합니다. 따라서 적절하게 서비스를 관리하는 것은 컴퓨터의 성능을 최적화하고 문제를 예방하는 데 매우 중요합니다. 이번 포스팅에서는 윈도우 서비스의 개념, 주요 서비스, 서비스 관리 방법 및 최적화 팁에 대해 자세히 ...

윈도우 11 / 원격 데스크톱 / 연결 허용하는 방법

윈도우 11 / 원격 데스크톱 / 연결 허용하는 방법

윈도우 11에서 원격 데스크톱 연결을 허용하는 설정 경로와 사용자 추가 방법을 설명합니다. Home 에디션의 제한, 연결 확인 방법과 외부 접속 시 보안 주의점도 확인하세요.