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 / Xbox Game Bar로 특정 창 동영상으로 녹화하는 방법

윈도우 10 / Xbox Game Bar로 특정 창 동영상으로 녹화하는 방법

예를 들어 엑셀 사용법에 대한 글을 적는다고 합시다. 화면을 캡처하고 텍스트를 넣어서 설명하는 방법도 있지만, 어떤 기능은 동영상으로 보여주는 게 더 효율적일 수 있습니다. 그런 경우 전체 화면이 아니라 엑셀이 실행되는 엑셀 창만 녹화하는 게 좋을 수 있는데요... 윈도우 10의 녹화 기능을 이용하면 쉽게 윈도우 녹화가 가능합니다. 단, 사용을 위해서는 기능을 활성화해야 ...

윈도우 10 / 자동 업데이트 끄는 방법

윈도우 10 / 자동 업데이트 끄는 방법

윈도우 10을 설치한 후 별도의 설정을 하지 않았다면 업데이트를 자동으로 합니다. 업데이트를 한 후에 사용자가 컴퓨터를 사용하지 않으면 스스로 재부팅을 하기도 하죠. 잠시 자리를 비웠는데 컴퓨터가 재부팅을 하고 한참동안 업데이트를 설치하는 일이 발생할 수 있습니다. 급하게 작업할 게 있다면 아주 당황스런 상황이 되는 거죠. 중요한 업데이트를 자동으로 하는 것이 좋기는 하지만, ...

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

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

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

윈도우 11 / 최신 대기 모드(Modern Standby)

윈도우 11 / 최신 대기 모드(Modern Standby)

예전 노트북은 절전 모드에 들어가면 거의 모든 부품 전원이 꺼졌습니다. 그래서 다시 켤 때 시간이 조금 걸렸죠. 하지만 최신 대기 모드는 다릅니다. 화면은 꺼져 있지만 아주 적은 전력만 사용하면서 일부 기능은 계속 동작합니다.

윈도우 / 서비스 / SysMain

윈도우 운영체제에서 SysMain 서비스는 이전 버전의 운영체제에서 SuperFetch로 알려진 서비스의 새로운 이름입니다. 이 서비스는 시스템 성능을 최적화하고, 응용 프로그램의 로딩 시간을 단축하며, 전반적인 시스템 응답성을 향상시키는 역할을 합니다. SysMain 서비스의 주요 역할 응용 프로그램 로딩 시간 단축 SysMain 서비스는 사용자가 자주 사용하는 응용 프로그램과 데이터를 미리 메모리에 로드합니다. 이를 통해 사용자가 프로그램을 실행할 ...

윈도우 10 / 원격 데스크톱 / 연결 허용하는 방법, 연결하는 방법

윈도우 10 / 원격 데스크톱 / 연결 허용하는 방법, 연결하는 방법

내 PC를 원격에서 접속하여 제어하는 가장 간단한 방법은 원격 데스크톱을 이용하는 것이다. 접속을 받는 PC에서는 원격 데스크톱 연결을 허용해주고, 접속을 하는 PC에서는 원격 데스크톱 연결 앱으로 접속한다. 접속은 받는 PC는 Windows Pro 이상의 에디션이어야 한다. 즉, Windows Home은 지원하지 않는다. 원격 데스크톱 연결 허용하는 방법 접속을 받는 PC에서 Windows 설정을 연다. 단축키는 WIN+I이다. 을 클릭합니다. 왼쪽에서 ...

윈도우 10 / 제품 키 변경, 제품 에디션 변경

윈도우 10 / 제품 키 변경, 제품 에디션 변경

윈도우 10의 제품 키를 변경해야 할 때가 있습니다. 메인보드 등 주요 부품이 바뀌어서 새 라이선스 키를 넣어야 할 때도 있고, Windows 10 Home에서 Windows 10 Pro로 에디션 업그레이드를 해야 할 때도 있고... 흔한 경우는 아니지만 작업이 필요할 때가 있습니다. Windows 10에서는 Windows Home에서 Windows Pro로, Windows Pro에서 Windows Enterprise로 변경할 때 포맷하고 ...

윈도우 11 / 휴지통

윈도우 11 / 휴지통

윈도우 11의 휴지통 기능은 사용자들이 삭제한 파일을 임시로 보관하여, 필요할 경우 복구할 수 있게 해줍니다. 즉, 기본적으로 삭제는 휴지통이라는 폴더로 이동하는 것입니다. 기본 기능 삭제 파일 또는 폴더를 선택 후 Delete 키를 누르거나, 마우스 우클릭 후 휴지통 아이콘을 클릭하면, 해당 파일 또는 폴더는 휴지통으로 이동합니다. 휴지통에 파일 또는 폴더가 있으면 휴지통 아이콘이 휴지가 있는 ...

윈도우 11 / PowerToys / 사용법 / FancyZones

윈도우 11 / PowerToys / 사용법 / FancyZones

PowerToys의 FancyZones는 창을 배치를 도와주는 앱이다. 이다. 미리 정의된 레이아웃을 사용해도 되고, 새로 만들 수도 있다. 그리드 또는 캔버스 형식으로 만들 수 있고... 키보드와 마우스로 원하는 배치를 만들고 을 클릭한다. 레이아웃을 선택하면... 영역이 표시되고... Shift 키를 누른 채 창을 이동하면 그 영역에 배치된다. 더욱 자세한 사용법은 https://docs.microsoft.com/ko-kr/windows/powertoys/fancyzones에서 볼 수 있다.

윈도우 10 / 사진 / 사진을 동영상으로 만드는 방법

윈도우 10 / 사진 / 사진을 동영상으로 만드는 방법

사진을 동영상으로 만드는 프로그램은 여러 가지가 있습니다. 그 중 즐겨 사용했던 것이 마이크로소프트의 무비 메이커인데, 현재는 개발이 중단되었습니다.(MS에서는 더 이상 개발하지 않지만, 여기에서 구할 수 있습니다.) 무비 메이커를 대체할 소프트웨어를 찾다가 윈도우 10의 사진 앱으로도 사진을 동영상으로 만들 수 있다는 것을 알게되었습니다. 새 소프트웨어를 설치하는 것보다는 이미 설치되어 있는 것을 활용하는 게 ...