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 / 보안 질문 업데이트(변경)하는 방법

윈도우에 로그인할 때 마이크로소프트 계정을 사용하지 않습니다. 로컬 계정을 사용합니다. 내 PC가 마이크로소프트와 연동되는 것이 괞히 싫기 때문입니다. 그리고 비밀번호도 만들어 두었습니다. 내 자료를 남이 보는 것도 싫기 때문입니다. 비밀번호를 만들면 항상 신경쓰이는 것이 잊어버린다는 것입니다. 사용자가 비밀번호를 잊을 경우를 대비해서 윈도우 10에서는 보안 질문을 만들게  합니다. 그 질문이나 답이 비밀번호보다 ...

윈도우 / System Volume Information 폴더의 용도

윈도우 / System Volume Information 폴더의 용도

Windows의 System Volume Information 폴더는 복원 지점을 저장하는 폴더이다. 윈도우 11 / 복원 지점 만드는 방법, 복원하는 방법 Windows Server에도 같은 기능이 있는데, 섀도 복사본이라고 한다. 복원 지점(섀도 복사본)을 만들 수록 System Volume Information 폴더의 크기는 늘어난다. 반대로 복원 지점(섀도 복사본)을 지우면 System Volume Information 폴더의 크기는 줄어든다. 설정을 통해 System Volume Information의 최대 ...

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

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

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

윈도우 10 / 원격 데스크톱 연결을 위한 절전 모드 해제 설정

윈도우 10 / 원격 데스크톱 연결을 위한 절전 모드 해제 설정

원격으로 윈도우 10 컴퓨터에 접속하는 가장 간단한 방법은 원격 데스크톱을 사용하는 겁니다. 특별히 설치할 것도 없고, 설정만 약간 변경해주면 됩니다. 원격 데스크톱 연결 허용은 에 들어간 다음... 를 켜면 됩니다. 그런데, 컴퓨터가 절전 모드라면 원격 접속이 되지 않습니다. 그래서 컴퓨터를 사용하지 않아도 절전 모드로 들어가지 않게 설정을 ...

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

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

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

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

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

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

윈도우 10 / 사진 / 사진을 동영상으로 만드는 방법

윈도우 10 / 사진 / 사진을 동영상으로 만드는 방법

사진을 동영상으로 만드는 프로그램은 여러 가지가 있습니다. 그 중 즐겨 사용했던 것이 마이크로소프트의 무비 메이커인데, 현재는 개발이 중단되었습니다.(MS에서는 더 이상 개발하지 않지만, 여기에서 구할 수 있습니다.) 무비 메이커를 대체할 소프트웨어를 찾다가 윈도우 10의 사진 앱으로도 사진을 동영상으로 만들 수 있다는 것을 알게되었습니다. 새 소프트웨어를 설치하는 것보다는 이미 설치되어 있는 것을 활용하는 게 ...

윈도우 10 / 명령 프롬프트(CMD) / 항상 관리자 권한으로 실행하는 방법

윈도우 10 / 명령 프롬프트(CMD) / 항상 관리자 권한으로 실행하는 방법

명령 프롬프트(CMD)를 관리자 권한으로 실행하는 경우가 많다면, 아예 항상 관리자 권한으로 실행되도록 설정할 수 있다. 아래는 윈도우 10 기준인데, 윈도우 11, 윈도우 서버도 방법은 같다. cmd로 검색하고 를 클릭한다. 을 클릭한다. 을 클릭한다. 을 클릭하여 설정을 저장한다.

윈도우 11 / 시스템 요구 사항

윈도우 11을 설치하려면 시스템 요구 사항을 만족해야 합니다. 만족하지 못하면 설치 자체를 할 수 없습니다. 그러한 컴퓨터라면 윈도우 10을 설치해야 합니다. 그런데 윈도우 10도 곧 EOS됩니다. 윈도우 10의 지원 종료(EOS)는 2025년 10월 14일로 예정되어 있습니다. 이 날짜 이후로 Microsoft는 윈도우 10에 대한 보안 업데이트나 기술 지원을 제공하지 않게 됩니다. 현재 사용 중인 ...

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

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

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