(강추)참고1: https://github.com/janikvonrotz/awesome-powershell
참고2: https://richardspowershellblog.wordpress.com/2017/10/24/powershell-v6-1-major-differences/
PowerShell v6은 PowerShell 5.1의 업그레이드 버전이 아니다.
하나의 컴퓨터에 PowerShell 5.1과 PowerShell 6.0을 동시에 설치할 수 있다
Windows PowerShell (v1 – v5.1)은 Windows에서만 사용하는 버전이다
PowerShell core (v6)은 Windows, Linux, macOS 및 docker에서도 사용 가능한 cross-platform 버전이다
(참고: https://github.com/PowerShell/PowerShell)
<긴급 변경 사항>
Allow * to be used in registry paths
Remove -ShowWindow from Get-Help
Fix incorrect position of a parameter which resulted in the args passed as input instead of as args for InvokeScript()
Change positional parameter for powershell.exe from -Command to -File
<일반적인 변경 사항>
원격 관리 기술로서 WSMAN뿐 아니라 SSH 기술 지원
OS,H/W,설치된 App에 대한 정보 수집에 사용하는 WMI 명령은 완전히 제거. 하지만 CIM은 여전히 사용 가능
*-Counter 명령어들 제거
Move-Item에 -Include, -Exclude, -Filter 포함시킴
Remove-Service 명령어 추가
Set-Service에 credentials 기능 추가함
Get-Date에 좀 더 많은 Argument를 추가함
Workflows 제거
enums을 string으로 convert하는 것 지원
*nix에 case sensitivity 지원
Pipeline의 제일 마지막에 &을 추가하여 PowerShell job으로 변경할 수 있음(Pipeline을 background 작업 가능)
Split-Path에 -Extension 및 -LeafBase을 사용하여 파일 이름 확장자와 파일 이름의 나머지 사이의 경로를 분리할 수 있음
비 Windows OS에도 transcription을 사용할 수 있다
Exclude -ComObject parameter of New-Object on unsupported (currently non-Windows)
Get-Content -Delimiter to not include the delimiter in the array elements returned
Fix Get-Help to not return multiple instances of the same help file
<Linux의 PowerShell core에서의 변화>
Linux의 bash에서 powershell로 변경할 때는 pwsh.exe를 사용하도록 변경했다. (Not powershell.exe)
Linux에서 Remoting을 할 때(e.g. *-Service & *-Process) DCOM 기술을 사용한 -ComputerName을 제거했다. 반드시 SSH 및 WSMAN만 사용하도록 했다.