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 / 마우스 / 왼손잡이 설정하는 방법

윈도우 11에서 마우스를 왼손잡이로 설정하는 방법은 다음과 같습니다. 설정을 엽니다.(윈도우 11 / 설정을 여는 세 가지 방법) 왼쪽에서 를 클릭합니다. 오른쪽에서 를 클릭합니다. 으로 설정합니다. 변경 사항이 즉시 적용되므로, 별도의 저장이나 재부팅 없이 바로 사용 가능합니다.

윈도우 10 / 명령 프롬프트(CMD) 글꼴 변경하는 방법

윈도우 10 / 명령 프롬프트(CMD) 글꼴 변경하는 방법

윈도우 10 명령 프롬프트(CMD)의 기본 글꼴은 굴림체입니다. 고정폭이기는 하나 예쁜 글꼴은 아닙니다. 만약 글꼴을 변경하고 싶다면 다음과 같이 합니다. 명령 프롬프트 왼쪽 위에 있는 아이콘을 클릭합니다. 을 클릭합니다. 을 클릭합니다. 이제 명령 프롬프트를 닫고 다시 열면 변경된 글꼴로 나오는 것을 확인할 수 있습니다. 속성에서도 글꼴을 변경할 수 있는데, ...

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

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

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

윈도우 10 / 윈도우 11로 업그레이드 가능한지 확인하는 방법

윈도우 10 / 윈도우 11로 업그레이드 가능한지 확인하는 방법

윈도우 11로 업그레이드가 가능한지 확인하는 가장 간단한 방법은 마이크로스프트가 제공하는 PC 상태 검사 앱을 이용하는 것입니다.

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

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

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

윈도우 / 단축키

윈도우 / 단축키

윈도우 단축키 단축키 수행 작업 WIN 시작 메뉴를 열거나 닫기 WIN + D 바탕화면을 표시하거나 숨기기 WIN + E 파일 탐색기 열기 WIN + I 윈도우 설정 열기 WIN + L PC 잠그기 WIN + M 모든 창 최소화 하기 WIN + Ctrl + Q 빠른 지원 열기 WIN + R 실행 창 열기 WIN + S 검색 열기 WIN + V 클립보드 열기 WIN + X 빠른 링크 메뉴 열기 WIN + . 이모지 열기 WIN ...

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

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

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

윈도우 11 / 파일 탐색기 / 분류 없애는 방법

윈도우 11 / 파일 탐색기 / 분류 없애는 방법

파일 탐색기에는 정렬과 분류 기능이 있습니다. 정렬은 목록에 표시된 파일·폴더의 순서를 바꾸는 기능이고, 분류는 그룹화하는 기능입니다. 예를 들어 분류 기준을 수정한 날짜, 정렬 기준을 이름으로 하면, 날짜 기준으로 그룹화되고 그 안에서 이름을 기준으로 정렬합니다. 만약 분류가 불편하다면 다음과 같은 방법으로 해제할 수 있습니다.

윈도우 10 / 시작 메뉴, 작업 표시줄에서 최근 사용한 파일 목록 지우는 방법

윈도우 10 / 시작 메뉴, 작업 표시줄에서 최근 사용한 파일 목록 지우는 방법

윈도우에서 파일을 사용하면 파일 탐색기의 에 나온다. 프로그램에서 마우스 우클릭해도 해당 프로그램이 사용한 파일 목록이 나온다. 보안, 사생활 보호 등의 이유로 이 목록이 보이지 않게 하고 싶다면... 설정을 연다.(단축키는 WIN+I) 을 클릭한다. 가 ...

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

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

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