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

기타

 

같은 카테고리의 다른 글
윈도우 / du / 폴더별 사용량 확인

윈도우 / du / 폴더별 사용량 확인

윈도우에서 폴더별로 저장 공간을 얼마나 사용하고 있는지 확인하는 방법은 여러 가지가 있습니다. 그 중 가장 편하다고 생각되는 것은 du 명령어를 사용하는 것입니다. Du (disk usage) reports the disk space usage for the directory you specify. By default it recurses directories to show the total size of a directory and its subdirectories. du는 ...

윈도우 / 로그온 시도나 암호 변경 시도를 너무 많이 했기 때문에 보안을 위해 사용자 계정이 잠겼습니다

윈도우 / 로그온 시도나 암호 변경 시도를 너무 많이 했기 때문에 보안을 위해 사용자 계정이 잠겼습니다

집에서 사무실 컴퓨터에 원격 데스크톱으로 접속하여 작업할 때가 있다. 오랫동안 잘 사용했는데, 최근 들어 아래와 같은 메시지가 나오면서 연결이 되지 않을 때가 있다. 로그온 시도나 암호 변경 시도를 너무 많이 했기 때문에 보안을 위해 사용자 계정이 잠겼습니다. 잠시 기다렸다가 다시 시도하거나 시스템 관리자나 기술 지원 서비스에 문의하십시오. 로그온 실패가 많아서 계정을 잠가버린 ...

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

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

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

윈도우 10 / 터치 키보드(가상 키보드, 화면 키보드) 사용하는 방법

윈도우 10 / 터치 키보드(가상 키보드, 화면 키보드) 사용하는 방법

갑자기 키보드가 망가졌습니다. 그런데 급하게 메일을 보내야합니다. 그렇다면 터치 키보드를 사용하세요. 원래는 터치가 되는 모니터를 위한 기능인데, 마우스로도 가능합니다. 작업 표시줄에 마우스를 올리고 우클릭합니다. 를 클릭합니다. 글자를 입력해야하는 프로그램을 실행하고, 오른쪽 아래에 있는 키보드 아이콘을 클릭하면... 화면에 키보드가 만들어집니다. 이제 마우스로 자판을 클릭해서 글자를 입력할 수 있습니다. 키보드 설정 아이콘을 클릭해서... 키보드 모양을 ...

윈도우 11 / 인터넷 연결 속도 확인하는 방법

윈도우 11 / 인터넷 연결 속도 확인하는 방법

윈도우 11에서 인터넷 연결 속도를 확인하는 방법을 알아봅니다. 설정, 제어판, PowerShell을 이용한 링크 속도 확인 방법을 정리했습니다

윈도우 11 / 환경 변수의 뜻과 확인하는 방법

윈도우 11 / 환경 변수의 뜻과 확인하는 방법

윈도우 11 환경 변수의 뜻과 확인 방법을 정리했습니다. 사용자 변수와 시스템 변수의 차이, PATH 환경 변수의 역할, 설정 화면에서 확인하는 방법, 명령 프롬프트와 PowerShell 명령어로 환경 변수를 확인하는 방법까지 쉽게 알아봅니다.

윈도우 10 / 네트워크 어댑터 삭제하는 방법

윈도우 10 / 네트워크 어댑터 삭제하는 방법

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

윈도우 / hosts 파일 / 역할, 위치, 편집하는 방법

윈도우 운영체제에서 hosts 파일은 도메인 이름과 IP 주소 간의 매핑을 관리하는 중요한 시스템 파일입니다. 이 파일은 네트워크 트래픽을 제어하고, 특정 도메인 이름을 특정 IP 주소로 직접 연결하는 역할을 합니다. Hosts 파일이란? Hosts 파일은 텍스트 파일로, 도메인 이름을 IP 주소로 매핑하는 항목을 포함하고 있습니다. 네트워크 요청이 발생할 때, 윈도우 운영체제는 먼저 hosts 파일을 ...

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

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

윈도우를 사용하다 보면 C드라이브에 Windows.old라는 폴더가 생긴 것을 볼 수 있습니다. 특히 Windows 10에서 Windows 11로 업그레이드했거나, Windows 11의 대형 기능 업데이트를 설치한 뒤에 자주 나타납니다.

윈도우 11 / 작업 표시줄 / 위젯 끄는 방법

윈도우 11 / 작업 표시줄 / 위젯 끄는 방법

윈도우 11 작업 표시줄 왼쪽에 위젯 버튼이 있습니다. 마우스를 올리거나 클릭하면 위젯이 나옵니다. 위젯이 필요 없다면 설정에서 없앨 수 있습니다. 을 비활성화하면 됩니다.