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 / 본고딕(Noto Sans), 본명조(Noto Serif) 다운로드하고 설치하는 방법

윈도우 10 / 본고딕(Noto Sans), 본명조(Noto Serif) 다운로드하고 설치하는 방법

본고딕(Noto Sans), 본명조(Noto Serif) 구글과 어도비가 협력하여 오픈 소스 한중일 통합 서체 모음을 만들었습니다. 고딕체와 명조체 두 가지가 있는데, 구글에서는 이를 Noto Sans, Noto Serif라 하고, 어도비에서는 본고딕(Source Han Sans), 본명조(Source Han Serif)라고 합니다. 본고딕과 본명조의 가장 큰 특징은 여러 언어를 통일된 느낌으로 표현할 수 있다는 것입니다. 한글, 영어, 일본어, 중국어 등을 섞어서 글을 ...

윈도우 11 / 컴퓨터 이름 변경하는 네 가지 방법

윈도우 11 / 컴퓨터 이름 변경하는 네 가지 방법

컴퓨터에는 이름이 있습니다. 다수의 컴퓨터를 관리하는 입장이라면 적절히 이름을 정해주는 것이 좋습니다. 윈도우 11에서 컴퓨터 이름을 변경하는 방법 네 가지를 소개합니다. 방법 1, 방법 2, 방법 3은 GUI로 작업하는 것이고, 방법 4는 PowerShell을 사용하는 것입니다. 어떤 방식으로 해도 컴퓨터를 다시 시작해야 컴퓨터 이름 변경이 적용됩니다. 방법 1 / 설정 - 홈 입니다. 상단에 ...

윈도우 10 / 랜카드 두 개 동시에 사용하는 방법

윈도우 10 / 랜카드 두 개 동시에 사용하는 방법

노트북을 사용하면 보통 무선과 유선, 두 개의 랜카드가 있다. 둘 중에 하나만 사용하는 게 대부분이겠지만, 어떤 경우에는 둘 다 사용해야 하는 경우도 있다. 그런데 윈도우 10 또는 윈도우 11을 사용하면 둘 중 하나만 네트워크에 연결한다. 하나가 연결되면 다른 하나의 연결을 끊는데, 유선을 우선으로 하는 거 같다. 즉, 무선이 연결된 상태에서 유선을 ...

윈도우 10 / PowerShell / 특정 폴더에서 실행하는 방법

윈도우 10 / PowerShell / 특정 폴더에서 실행하는 방법

윈도우 10에서 명령어로 작업하려면 PowerShell을 사용합니다. 그런데 시작 메뉴에서 파워쉘을 실행하면 현재 사용자의 폴더에서 시작하게 됩니다. 다른 폴더로 이동하려면 cd 명령어를 사용해야 하죠. 이름이 복잡하거나 구석에 숨어있는 폴더로 이동하려면 아주 귀찮습니다. 만약 특정 폴더에서 바로 시작하고 싶다면... 파일 탐색기를 엽니다. 원하는 폴더로 이동합니다. 메뉴에서 PowerShell을 실행합니다. 이렇게 하면 현재 위치한 폴더에서 파워쉘이 시작됩니다.

윈도우 11 / 마우스 / 포인터 크기 변경하는 두 가지 방법

윈도우 11 / 마우스 / 포인터 크기 변경하는 두 가지 방법

3840x2160 해상도의 4K 모니터를 사용합니다. FHD 모니터 4개를 붙여 놓은 만큼의 해상도여서 스크롤 하는 시간이 대폭 줄어들었다. 한 번 4K 모니터를 경험하면 FHD 모니터는 답답해서 사용하기 싫어집니다. 처음 4K 모니터를 사용할 때 가장 불편했던 것은 마우스 포인터 크기였습니다. 마우스 포인터가 너무 작아서 어디 있는지 찾기 힘들 때가 많았습니다. 마우스 우클릭 해서 ...

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

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

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

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

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

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

윈도우 / 버전, 빌드 넘버 확인하는 5가지 방법

윈도우 / 버전, 빌드 넘버 확인하는 5가지 방법

윈도우 버전을 확인하는 방법은 여려 가지가 있습니다. 그 중 5가지 방법을 소개합니다. 윈도우 10이나 11뿐 아니라 윈도우 서버에서도 가능한 방법입니다. 방법 1 - 설정에서 확인 을 엽니다. 단축키는 WIN+I입니다. 을 클릭합니다. 왼쪽에서 를 클릭하면, 오른쪽에서 버전을 확인할 수 있습니다. 방법 2 - Windows 정보 실행 창을 엽니다. 단축키는 WIN+R입니다. winver를 입력하고 엔터키를 누르거나 을 클릭합니다. 창이 ...

윈도우 11 / Micorosft Teams / 삭제 또는 비활성화 하는 방법

윈도우 11 / Micorosft Teams / 삭제 또는 비활성화 하는 방법

윈도우 11을 설치하면 Micorosft Teams가 자동으로 설치된다. 마이크로소프트에서 제공하는 메신저 프로그램으로, 마이크로소프트 계정이 있으면 사용할 수 있다. 외국에서는 사용자가 많아지고 있다는데, 국내에서는 모르는 사람도 많고, 안다 해도 사용하는 사람이 별로 없는 듯 하다. 윈도우에 끼워 넣기 시작했으니, 앞으로는 많아질려나? 이 Microsoft Teams는 개인용으로, 기업에서 사용하는 Teams와는 좀 다르다. 기업용 팀즈를 설치하면 두 개의 ...

윈도우 10 / IExpress / 자동 압축 풀기 실행 파일 만드는 방법

윈도우 10 / IExpress / 자동 압축 풀기 실행 파일 만드는 방법

IExpress는 윈도우 10에 포함된 자동 압축 풀기 또는 자동 설치 패키지를 만드는 프로그램입니다. 다음은 IExpress로 자동으로 압축이 풀리는 실행 파일을 만드는 방법입니다. 실행 창을 엽니다. 단축키는 WIN+R입니다. iexpress를 입력하고 엔터키를 누르거나 을 클릭합니다. 을 클릭합니다. 압축만 풀 것이므로 Extract files only를 선택하고 을 클릭합니다. 적절히 이름을 정하고 을 클릭합니다. 확인을 받거나 라이선스를 보여주는 기능도 있는데, 자동 ...