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

기타

 

같은 카테고리의 다른 글

윈도우 / 메모

시작 프로그램 폴더 여는 방법 로 실행 창 연 후 다음 명령을 실행합니다. shell:startup 환경 변수 윈도우를 C 드라이브에 설치하였고, 사용자 이름이 JB라는 가정 하에... %UserProfile% : C:\Users\JB - 파일 탐색기 주소 표시줄에 사용자 이름만 나옴 %HomePath% : C:\Users\JB %Temp% : C:\Users\JB\AppData\Local\Temp %LocalAppData% : C:\Users\JB\AppData\Local %AppData% : C:\Users\JB\AppData\Roaming 윈도우 11 / 환경 변수의 뜻과 확인하는 방법 기본 공유 중지 [컴퓨터 ...

윈도우 10 / 비밀번호 변경하는 방법, 자동 로그인 하는 방법

윈도우 10 / 비밀번호 변경하는 방법, 자동 로그인 하는 방법

비밀번호 변경하는 방법 여럿이 같이 사용하는 PC라면 비밀번호를 주기적으로 변경하는 것이 좋습니다. 귀찮기는 하지만, 어디서 변경하는지만 알면 금방 끝낼 수 있습니다. Windows 설정을 엽니다. 단축키는 WIN+I입니다. 을 클릭합니다. 왼쪽에서 를 클릭합니다. 을 클릭합니다. 현재 암호를 입력하고 을 클릭합니다. 새로운 암호와 암호 힌트를 입력합니다. 암호 힌트는 필수 항목이어서 입력하지 않으면 다음 단계로 가지 못합니다. 입력을 ...

윈도우 10 / 파일 암호화하는 방법

윈도우 10 / 파일 암호화하는 방법

나만 봐야 하는 중요한 파일이 있다면 파일을 암호화하는 것이 좋습니다. 파일을 암호화하는 방법은 여러 가지가 있으나, 윈도우 10이라면 내장된 기능으로 암호화할 수 있습니다. 만약 파일 또는 폴더가 아니라 드라이브 전체는 보호하고 싶다면 BitLocker를 사용하세요. Windows 10 Pro 이상에서 사용할 수 있습니다. 파일 암호화 하기 암호화하려는 파일을 선택하고 마우스 우클릭합니다. 을 클릭합니다. 을 클릭하고... [데이터 보호를 위해 ...

윈도우 / Hyper-V / 가상 머신 1세대와 2세대 차이

윈도우 / Hyper-V / 가상 머신 1세대와 2세대 차이

Hyper-V에서 가상 컴퓨터를 만들 때 1세대와 2세대애서 선택하게 되어 있습니다. 1세대(Generation 1)와 2세대(Generation 2)는 가상 머신의 펌웨어 및 부트 방식, 하드웨어 기능 지원 방식에 차이가 있습니다.

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

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

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

윈도우 / 명령어 / SC - 서비스를 관리하는 명령어

윈도우 운영체제에서는 다양한 시스템 서비스가 백그라운드에서 실행되며, 이러한 서비스는 시스템의 성능과 안정성을 유지하는 데 중요한 역할을 합니다. SC(Service Controller) 명령어는 이러한 서비스를 관리하는 강력한 도구로, 서비스를 시작, 중지, 설정 변경, 삭제 등 다양한 작업을 수행할 수 있습니다. SC를 사용할 때 일부 명령은 관리자 권한을 필요로 합니다. 따라서 관리자 권한으로 명령 프롬프트(CMD)를 ...

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

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

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

윈도우 10 / 사용자 계정 추가하는 방법, 제거하는 방법

윈도우 10 / 사용자 계정 추가하는 방법, 제거하는 방법

사용자 계정 추가하는 방법 Windows 설정을 엽니다. 단축키는 입니다. 을 클릭합니다. 를 클릭합니다. 를 클릭합니다. 마이크로소프트 계정을 추가하거나 로컬 계정을 추가할 수 있습니다. 마이크로소프트 계정 추가는 여기를 참고하세요. 이 글에서는 로컬 계정을 추가하겠습니다. 를 클릭합니다. 를 클릭합니다. 사용자 이름을 입력합니다. 암호는 선택 사항입니다. ...

Windows 10 ESU(Extended Security Updates)

Windows 10 ESU(Extended Security Updates)

Windows 10의 공식 지원은 2025년 10월 14일에 종료됩니다. 지원 종료 이후에는 새로운 기능 업데이트는 물론 일반적인 보안 패치도 제공되지 않습니다. 하지만 기업이나 개인이 Windows 11로 즉시 전환하기 어려운 경우를 위해 ESU 프로그램이 제공됩니다.

윈도우 10 / PING 허용하는 방법

윈도우 10 / PING 허용하는 방법

네트워크에 잘 연결되어 있는지 확인하는 방법 중의 하나는 ping을 날리는 것입니다. 그런데 윈도우 10은 기본적으로 ping에 대하여 응답하지 않는 것으로 설정되어 있습니다. 그래서 네트워크에 잘 연결되어 있어도 ping으로 확인을 할 수가 없습니다. 만약 ping으로 연결 상태를 확인해야 한다면, 다음의 방법으로 응답하도록 설정합니다. 제어판을 엽니다. 을 클릭합니다. 을 클릭합니다. 을 클릭합니다. 왼쪽에서 ...