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

기타

 

같은 카테고리의 다른 글
윈도우 / 명령어 / 실행 창에서 프로그램 여는 명령어 모음

윈도우 / 명령어 / 실행 창에서 프로그램 여는 명령어 모음

실행 창(WIN+R) 또는 명령 프롬프트에서 명령어로 윈도우에 내장된 프로그램을 실행할 수 있다. 일반적인 사용자라면 클릭클릭으로 메뉴를 찾아가는 게 나을 수 있으나, 시스템을 구축하고 운영하는 사람이라면 명령어가 더 편할 수 있다. 대부분은 윈도우 11 같은 클라이언트 운영체제와 윈도우 서버 2022 같은 서버 운영체제에서 같이 사용할 수 있는데, 일부는 둘 중 하나에서만 가능하다. appwiz.cpl 프로그램 ...

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

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

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

윈도우 11 / Hyper-V / 기능 추가하는 방법

윈도우 11 / Hyper-V / 기능 추가하는 방법

Hyper-V는 마이크로소프트가 개발한 하이퍼바이저 기반 가상화 플랫폼으로, 여러 운영 체제를 동시에 실행할 수 있는 환경을 제공합니다. 주로 서버 가상화에 사용되며, 물리적인 하드웨어 자원을 가상 머신(VM) 간에 효율적으로 분배할 수 있습니다. Hyper-V는 Windows Server 및 Windows Pro 이상 버전에서 사용할 수 있으며, 강력한 관리 도구와 높은 확장성을 갖추고 있어 기업 환경에서 ...

윈도우 10 / 알림 설정 변경하는 방법

윈도우 10 / 알림 설정 변경하는 방법

스마트폰의 알림처럼 윈도우 10에도 알림이 있습니다. 예를 들어 메일 앱을 사용하면, 메일이 왔을 때 오른쪽 아래에 알림이 뜹니다. 앱에서 요청하고 윈도우가 허용한 거죠. 그 알림이 유용한 것이 아니라면 알림이 오지 않도록 할 수 있습니다. Windows 설정을 엽니다. 단축키는 WIN+I입니다. 을 클릭합니다. 왼쪽에서 을 클릭하면 오른쪽에 관련 설정이 나옵니다. 전체 알림을 중지할 수도 있고... 특정 ...

윈도우 10 / Autoruns / 시작 프로그램 관리하는 유틸리티

윈도우 10 / Autoruns / 시작 프로그램 관리하는 유틸리티

컴퓨터를 부팅하면 자동으로 시작되는 프로그램들이 있습니다. 컴퓨터 작동에 필수적인 프로그램도 있고, 사용이 편리하도록 미리 실행되는 프로그램도 있습니다. 만약 잘 사용하지 않는 프로그램이 자동으로 시작된다면 컴퓨터 자원이 낭비되는 것이겠죠. 그런 프로그램이 있다면 시작 프로그램에서 제외해주는 것이 좋습니다. 시작 프로그램을 관리하는 방법은 여러 가지인데, 그 중 하나는 Autoruns라는 프로그램을 이용하는 것입니다. This utility, which ...

윈도우 10 / PC용 페이스북 메신저 설치하는 방법

윈도우 10 / PC용 페이스북 메신저 설치하는 방법

메신저로 많은 일을 할 때는 PC용을 사용하는 게 편합니다. 스마트폰의 작은 화면과 키보드로 메시지를 주고 받는 건 아무래도 불편하니까요. 그래서 카카오톡은 PC용이 따로 있습니다. 모바일과 거의 같은 모양으로 PC에서 대화를 할 수 있습니다. 기능도 거의 같습니다. 그렇다면 페이스북 메신저도 PC용이 있을까요? 있습니다. 그런데 인스톨하는 프로그램이 아니고 마이크로소프트 스토어에 있습니다. 즉 윈도우 7 ...

윈도우 10 / 모니터 주사율(새로 고침 빈도) 설정하는 방법

윈도우 10 / 모니터 주사율(새로 고침 빈도) 설정하는 방법

모니터는 별도의 설정 없이 연결만 하면 사용할 수 있는 기기 중의 하나입니다. 그런데 간혹 설정이 맞지 않아 제대로 작동하지 않는 경우가 있습니다. 대표적인 것이 주사율입니다.(Windows에서는 새로 고침 빈도라고 표현하고 있습니다.) 그래픽 카드를 교체하거나, 새 모니터를 연결했을 때 주사율이 엉뚱하게 설정된다면 윈도우 설정에서 제대로 잡아줍니다. 설정하는 방법은... Windows 설정을 엽니다. 단축키는 WIN+I입니다. 을 클릭합니다. 왼쪽에서 ...

윈도우 10 / PC용 구글 드라이브 여러 계정 추가하는 방법

윈도우 10 / PC용 구글 드라이브 여러 계정 추가하는 방법

네이버는 한 명이 만들 수 있는 계정 개수에 제한이 있습니다. 3개까지 만들 수 있죠. 그런데, 구글은 그런 제한이 없습니다. 계속해서 만들 수 있습니다. 개인용, 업무용, 친목용, 가족용, 동호회용, 투잡용 등 구분해서 만드는 게 가능합니다. 그리고 그 계정마다 15G의 클라우드 공간을 사용할 수 있습니다. 구글이 제공하는 클라우드는 PC용 구글 드라이브를 이용해서 관리를 ...

윈도우 10 / 시작프로그램 / 프로그램 등록하는 방법

윈도우 10 / 시작프로그램 / 프로그램 등록하는 방법

자주 사용하는 프로그램은 컴퓨터를 켬과 동시에 실행되도록 하는 것이 편합니다. 이렇듯 윈도우 부팅 시 자동으로 실행되는 프로그램을 시작프로그램이라고 하는데, 많은 소프트웨어가 설치할 때 시작프로그램에 등록됩니다. 금융 사이트 접속할 때 필요한 온갖 보안 프로그램이 대표적인 예입니다. 만약 자주 사용하는 프로그램인데 시작프로그램에 등록되어 있지 않다면 수동으로 등록시킬 수 있습니다. 레지스트리를 편집하는 방법과 시작프로그램 ...

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

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

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