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 / 네트워크 어댑터 삭제하는 방법

윈도우 10을 사용하다보면 필요 없는 네트워크 어댑터가 생기는 경우가 있습니다. 특히 VirtualBox, Hyper-V 같은 가상화 소프트웨어를 설치하는 경우 생기는데요, 삭제를 해도 네트워크 어댑터는 남아 있기도 합니다. 예를 들어 아래 스크린샷에 있는 은 필요 없는 것입니다. 보통은 네트워크 어댑터 선택 후 마우스 우클릭하여 삭제가 가능하지만, 그렇지 않은 경우도 있습니다. 이럴 땐 ...

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

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

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

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

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

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

윈도우 11 / Windows.old 폴더가 있는 이유와 삭제 가능 여부

윈도우 11 / Windows.old 폴더가 있는 이유와 삭제 가능 여부

윈도우를 사용하다 보면 C드라이브에 Windows.old라는 폴더가 생긴 것을 볼 수 있습니다. 특히 Windows 10에서 Windows 11로 업그레이드했거나, Windows 11의 대형 기능 업데이트를 설치한 뒤에 자주 나타납니다. 용량이 수 GB에서 많게는 수십 GB까지 차지하기 때문에 “이 폴더를 삭제해도 되는지”, “삭제하면 문제가 생기지 않는지” 궁금할 수 있습니다. 결론부터 말하면 Windows.old 폴더는 삭제할 수 ...

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

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

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

윈도우 11 / 압축 하기, 압축 풀기 - Zip, 7z, TAR

꽤 오래전에는 윈도우에 압축 프로그램이 없었습니다. 압축 만들고 해제하기 위해서는 별도의 프로그램을 설치해야 했습니다. 하지만 지금은 윈도우에 Zip 형식, 7z 형식, TAR 형식으로 압축하고 해제하는 기능이 포함되어 있어, 별도의 프로그램 설치 필요 없이 작업할 수 있습니다. 압축 하기 압축을 하고 싶다면, 파일 또는 폴더를 선택하고 마우스 우클릭합니다. 에서 원하는 형식을 클릭하면... 우클릭 했던 ...

윈도우 11 / 터미널 / 사용법 / 원하는 폴더에서 여는 방법

윈도우 11 / 터미널 / 사용법 / 원하는 폴더에서 여는 방법

터미널은 사용자 폴더를 기준으로 열립니다. 예를 들어 사용자 이름이 ABC라면 C:\Users\ABC 에서 시작하게 됩니다. 윈도우 11은 윈도우 10과 다르게, 마우스 우클릭 메뉴에 가 있습니다. 이를 이용하면 원하는 폴더를 기준으로 터미널을 열 수 있습니다. 원하는 폴더에서 마우스 우클릭 후 를 클릭하면... 그 폴더를 기준으로 한 PowerShell이 열립니다. 만약 PowerShell이 아니라 명령 프롬프트가 열리게 하고 싶다면, ...

윈도우 10 / Microsoft Defender / 바이러스 검사하는 방법

윈도우 10 / Microsoft Defender / 바이러스 검사하는 방법

윈도우 10에는 디펜더라는 보안 프로그램이 기본적을 설치되어 있습니다. 특별한 설정을 하지 않았다면 실시간 검사를 하고 있을 겁니다. 만약 바이러스 감염이 의심된다면 수동으로 검사할 수 있습니다. 바이러스 검사를 하는 여러 방법을 알아보겠습니다. 파일 또는 폴더 검사 특정 파일 또는 폴더만 검사하고 싶다면, 파일 또는 폴더를 선택한 후 마우스 우클릭을 하세요. 팝업 메뉴에서 를 ...

윈도우 11 / 창의 그림자 효과 없애는 방법

윈도우 11 / 창의 그림자 효과 없애는 방법

윈도우 11은 윈도우 10에 비하여 디자인이 많이 바뀌었다. 뛰어난 디자이너들이 나름 의미를 부여하면서 작업한 것이겠지만, 아직은 좋은지 잘 모르겠다. 특히 작업표시줄 그룹 해제가 안되는 것은 너무 불편. 바탕화면 기본 이미지가 바뀌어서인지 창의 그림자 효과가 눈에 아주 잘 들어온다. 윈도우 10에서도 있던 것인데, 그림자가 더 진해졌나? 시각적으로 보기 좋게 만든 것이기는 한데, ...

윈도우 11 / 안전 모드로 부팅하는 방법

윈도우 11 / 안전 모드로 부팅하는 방법

윈도우에서 안전 모드로 부팅하는 이유는 시스템 문제를 해결하거나 진단하기 위해서입니다. 안전 모드는 필수적인 드라이버와 서비스만 로드하여 최소한의 환경으로 윈도우를 실행하므로, 일반적인 부팅 과정에서 발생할 수 있는 충돌이나 문제를 피할 수 있습니다. 윈도우 11에서 안전 모드로 부팅하는 방법은 다음과 같습니다. 윈도우 설정을 엽니다. 단축키는 WIN+I입니다. 로 이동합니다. 복구 옵션의 고급 시작 옵션에 있는 ...