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 / 원격 데스크톱 / 연결 허용하는 방법

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

원격으로 다른 컴퓨터에 들어가는 방법은 여러 가지가 있습니다. 그 중 가장 간단히 사용할 수 있는 것은 윈도우에 포함된 원격 데스크톱입이다. 별도의 소프트웨어를 설치할 필요 없이 활성화만 시켜주면 됩니다.(단, Windows Home 에디션에는 이 기능이 없으므로, Pro 이상의 에디션을 구입하거나 다른 방법을 찾아야 합니다.) 원격 데스크톱으로 연결되는 것을 허용하는 것은 입니다.) 왼쪽에서 ...

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

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

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

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

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

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

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

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

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

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

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

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

윈도우 10 / 모니터 해상도 변경하는 방법

윈도우 10 / 모니터 해상도 변경하는 방법

윈도우 10을 설치할 때, 사용하는 모니터에 최적화된 값으로 해상도가 자동 설정됩니다. 만약 자동 설정된 해상도가 잘못 되었거나, 모니터 교체 등 여러 이유로 현재 해상도가 적절하지 않다면, 수동으로 해상도를 변경할 수 있습니다. 해상도 변경은 에서 합니다. 단축키 을 클릭합니다. 디스플레이 메뉴에 해상도가 있습니다. 원하는 해상도를 선택하면 바로 ...

윈도우 11 / PowerToys / 사용법 / Always On

윈도우 11 / PowerToys / 사용법 / Always On

PowerToys의 Always On은 선택한 창이 항상 위에 있게 한다. 단축키는 이다. 창을 선택한 후 를 누르면 파란색 테두리가 생기면서 항상 다른 창보다 위에 있게 된다. 다시 한 번 를 누르면 해제된다.

윈도우 11 / 다운로드 하는 방법

윈도우 11 / 다운로드 하는 방법

Microsoft 홈페이지에서 윈도우 11을 다운로드하는 방법을 정리했습니다. 설치 미디어 만들기와 디스크 이미지(ISO) 다운로드, 두 가지 방식의 절차와 차이점은 물론 각 ISO에 포함된 에디션 구성까지 함께 확인할 수 있습니다.

윈도우 10 / 디스크 조각 모음 하는 방법

윈도우 10 / 디스크 조각 모음 하는 방법

디스크 조각 모음 파일을 읽고 쓰는 게 느려졌다면, 디스크 조각 모음으로 속도를 개선할 수 있다고 합니다. 체감할 정도로 속도가 빨라졌다고 느낀 적은 별로 없지만, 포맷을 하기 전에 한번 쯤 시도해보는 것도 좋은 방법이라고 생각합니다.(개인적으론 포맷이 가장 확실한 방법이라고 생각합니다.) 드라이브 최적화 실행하기 파일 탐색기에서 드라이브에 마우스를 올리고 우클릭하고 을 클릭합니다. 아무 드라이브를 선택해도 ...

윈도우 10 / 글꼴 설치, 삭제하는 방법

윈도우 10 / 글꼴 설치, 삭제하는 방법

글꼴을 설치 파일로 받은 경우 글꼴을 실행 가능한 설치 파일로 받았다면, 그 파일을 실행시키면 글꼴이 설치됩니다. 삭제는 에서 할 수 있습니다. 글꼴을 글꼴 파일로 받은 경우 글꼴 설치 TTF, OTF 같은 글꼴 파일로 받았다면 설치 방법은 두 가지입니다. 첫 번째 방법은 마우스 우클릭 한 후 를 클릭하는 것입니다. 윈도우 ...