반응형
6.xxx 버전
1. SSH 원격 실행 지원
SSH 지원은 PowerShell Core 6에서 가장 중요한 기능 중 하나로, 기존 Windows PowerShell의 WinRM(Remote Management) 의존성을 줄이고 Linux 및 macOS와의 호환성을 강화했습니다.
주요 특징:
- SSH 프로토콜을 통한 원격 세션:
PowerShell Core 6는 SSH를 통해 Enter-PSSession 및 Invoke-Command 명령으로 원격 서버에 접속하고 명령을 실행할 수 있습니다. -
powershell코드 복사# SSH 원격 세션 열기 Enter-PSSession -HostName <RemoteServer> -UserName <Username> # 명령 실행 Invoke-Command -HostName <RemoteServer> -UserName <Username> -ScriptBlock { Get-Process }
- 플랫폼 간 상호운용성:
Windows, Linux, macOS 환경 간에 동일한 방식으로 원격 명령 실행 가능. - 보안:
SSH 키 기반 인증, 암호 기반 인증 등 표준 SSH 보안 기능을 활용.
요구 사항:
- 대상 시스템에 SSH 데몬(예: OpenSSH) 실행.
- PowerShell Core 설치 및 환경 설정.
2. 새로운 API 추가
PowerShell Core 6는 .NET Core를 기반으로 하며, 기존 Windows PowerShell 대비 새로운 API와 기능이 추가되었습니다.
주요 API 변경 및 추가 기능:
- 크로스 플랫폼 지원:
.NET Core를 사용함으로써 다양한 운영체제에서 실행 가능.- 예: Linux 및 macOS에서 파일 시스템, 프로세스 관리, 네트워크 작업 API 지원.
- 성능 최적화:
- 새로운 ForEach-Object -Parallel 매개변수는 스크립트 작업을 병렬로 실행하여 성능을 개선했습니다.
- JSON, XML 처리 속도 향상.
- 새로운 명령어 및 Cmdlet:
- Get-Error: 오류 처리 및 디버깅을 위한 명령어.
- JSON, REST API와의 상호작용 강화:
- SSH와 연계한 클라우드 리소스 관리.
- .NET Core API 활용 가능:
PowerShell Core 6의 스크립트에서 .NET Core API를 직접 호출하여 더 많은 기능을 구현 가능. -
powershell코드 복사[System.IO.File]::WriteAllText("example.txt", "Hello, PowerShell Core!")
이점:
- API 호출 및 네이티브 명령어 지원으로 더 넓은 자동화 및 관리 작업 가능.
- 클라우드, 컨테이너, DevOps 환경에 적합한 확장성 제공.
3. 실용 예제
SSH 기반 원격 관리:
Linux 서버에서 PowerShell 스크립트를 실행:
powershell
코드 복사
Invoke-Command -HostName linux-server -UserName admin -ScriptBlock { sudo apt update && sudo apt upgrade -y }
REST API 호출 및 데이터 처리:
REST API를 호출하고 JSON 데이터를 처리:
powershell
코드 복사
$response = Invoke-RestMethod -Uri "https://api.example.com/data" $response.items | ForEach-Object { $_.name }
7.xxx 버전
1. ForEach-Object -Parallel: 병렬 작업 처리 지원
ForEach-Object cmdlet에 -Parallel 매개변수가 추가되어 여러 작업을 동시에 실행할 수 있습니다. 이는 대량 데이터 처리나 반복 작업의 성능을 크게 향상시킵니다.
주요 특징:
- 병렬로 실행되는 작업의 개수를 -ThrottleLimit 매개변수로 제한 가능.
- 각 작업은 격리된 스크립트 블록에서 실행됨.
예제:
powershell
코드 복사
1..10 | ForEach-Object -Parallel { Start-Sleep -Seconds $_ "작업 $_ 완료" } -ThrottleLimit 3
- 이 코드는 숫자 1부터 10까지 병렬로 처리하며, 동시에 최대 3개의 작업이 실행됩니다.
2. Pipeline Chain Operators: ||와 &&로 조건부 파이프라인 지원
PowerShell 7에서는 파이프라인 작업에 조건부 논리 연산자를 추가하여 스크립트를 더 간단하고 읽기 쉽게 만듭니다.
작동 방식:
- && (AND): 이전 명령이 성공하면 다음 명령을 실행.
- || (OR): 이전 명령이 실패하면 다음 명령을 실행.
예제:
powershell
코드 복사
Test-Path "C:\파일.txt" && Write-Output "파일이 존재합니다." || Write-Output "파일이 존재하지 않습니다."
- 만약 Test-Path가 성공(파일 존재)하면 "파일이 존재합니다."가 출력됩니다.
- 실패(파일 없음) 시 "파일이 존재하지 않습니다."가 출력됩니다.
장점:
- 복잡한 조건문(if-else)을 줄이고, 코드 간결성 향상.
3. ErrorView 개선: 오류 메시지 가독성 향상
PowerShell 7에서는 오류 메시지를 더 읽기 쉽게 출력할 수 있는 ErrorView 옵션을 도입했습니다.
옵션:
- ConciseView (간결한 보기): 에러 메시지를 짧고 간결하게 출력.
- NormalView: 기존과 같은 상세한 에러 메시지 출력.
예제:
powershell
코드 복사
$ErrorView = "ConciseView" Get-Item "C:\존재하지않는파일.txt"
출력:
mathematica
코드 복사
Get-Item: 경로 'C:\존재하지않는파일.txt'을(를) 찾을 수 없습니다.
장점:
- 에러 메시지가 간결하여 디버깅 시 집중하기 쉬움.
- 필요에 따라 상세 정보 보기로 전환 가능.
4. 자동 업데이트 알림: 새 버전 릴리스 알림
PowerShell 7은 새로운 버전이 출시되면 이를 자동으로 알려줍니다.
작동 방식:
- 새 PowerShell 세션을 열 때 업데이트가 있는지 확인.
- 새 버전이 있으면 다음과 같은 메시지가 출력:
scss코드 복사새 PowerShell 버전(7.x.x)이 사용 가능합니다.
- 알림 끄기:
powershell코드 복사$env:POWERSHELL_UPDATECHECK = 'Off'
5. Azure 및 Docker 통합 모듈 지원 강화
PowerShell 7은 Azure 및 Docker와의 연동을 쉽게 하기 위해 통합 모듈을 제공하며, DevOps 환경에서 특히 유용합니다.
Azure와의 통합:
- Az 모듈: Azure 리소스(VM, 스토리지, 네트워크 등)를 관리하는 명령어 모음.
powershell코드 복사Connect-AzAccount Get-AzResourceGroup
Docker와의 통합:
- Docker 컨테이너 관리 명령어 지원.
powershell코드 복사# 모든 Docker 컨테이너 보기 Get-Container
장점:
- 클라우드와 컨테이너 작업을 단일 스크립트 환경에서 처리 가능.
- DevOps 및 IT 관리 워크플로를 단순화.
반응형
'Windows' 카테고리의 다른 글
windows 에서 IP주소로 원격 할때 확인해야하는 것 (0) | 2024.12.10 |
---|---|
WinRM 설정 확인 (0) | 2024.12.10 |
[windows] 터미널 2147942667 (0x8007010b) 오류 (1) | 2023.12.12 |
WSL 설치 경로 변경 (0) | 2023.08.23 |
윈도우 system_service_exception, kmode exception not handled 에러 (0) | 2023.06.29 |
댓글