PowerShell 스크립트 디버깅의 향상된 기능Improvements in PowerShell Script Debugging

PowerShell 5.0에서는 디버깅 환경을 개선하기 위해 다양한 기능이 향상되었습니다.A number of improvements were made in PowerShell 5.0 to enhance the debugging experience:

모두 중단Break All

이제 PowerShell 콘솔 및 Windows PowerShell ISE를 사용하면 스크립트를 실행하기 위해 디버거를 중단할 수 있습니다.The PowerShell console and Windows PowerShell ISE now allow you to break into the debugger for running scripts. 이 기능은 로컬 및 원격 세션에서 작동합니다.This works in both local and remote sessions.

콘솔에서 Ctrl+Break를 누릅니다.In the console, press Ctrl+Break.

ISE에서 Ctrl+B를 누르거나 디버그 -> 모두 중단 메뉴 명령을 사용합니다.In ISE, press Ctrl+B, or use the Debug -> Break All menu command.

Windows PowerShell ISE에서 원격 디버깅 및 원격 파일 편집Remote debugging and remote file editing in Windows PowerShell ISE

Windows PowerShell ISE를 사용하면 PSEdit 명령을 실행하여 원격 세션에서 파일을 열고 편집할 수 있습니다.Windows PowerShell ISE now lets you open and edit files in a remote session by running the PSEdit command. 예를 들어 다음과 같이 원격 세션의 명령줄에서 파일을 열어 편집할 수 있습니다.For example, you can open a file for editing from the command line in a remote session as follows:

[RemoteComputer1]: PS C:\> PSEdit C:\DebugDemoScripts\Test-GetMutex.ps1

또한 중단점을 누르면 Windows PowerShell ISE에서 자동으로 열리는 원격 파일에서 편집하고 변경 내용을 저장할 수 있습니다.In addition, you can now edit and save changes in a remote file that is automatically opened in Windows PowerShell ISE when you hit a breakpoint. 이제 원격 컴퓨터에서 실행되는 스크립트 파일을 디버그하고 파일을 편집하여 오류를 해결한 다음 수정된 스크립트를 다시 실행할 수 있습니다.Now, you can debug a script file that is running on a remote computer, edit the file to fix an error, and then rerun the modified script.

고급 스크립트 디버깅Advanced Script Debugging

Windows PowerShell을 로드한 로컬 컴퓨터 프로세스에 연결하고 해당 프로세스에서 임의 runspace를 디버그할 수 있는 새로운 고급 디버깅 기능이 있습니다.There are new, advanced debugging features that let you attach to any local computer process that has loaded Windows PowerShell, and debug arbitrary runspaces in that process.

Runspace 디버깅Runspace Debugging

프로세스의 현재 runspace를 나열하고 스크립트 디버깅을 위해 해당 runspace에 Windows PowerShell 콘솔이나 ISE 디버거를 연결할 수 있는 새로운 cmdlet이 추가되었습니다.New cmdlets have been added that let you list current runspaces in a process, and attach the Windows PowerShell console or ISE debugger to that runspace for script debugging:

  • Get-RunspaceGet-Runspace
  • Debug-RunspaceDebug-Runspace
  • Enable-RunspaceDebugEnable-RunspaceDebug
  • Disable-RunspaceDebugDisable-RunspaceDebug
  • Get-RunspaceDebugGet-RunspaceDebug

PowerShell을 호스트하는 프로세스에 연결Attach to Process hosting PowerShell

이제 Windows PowerShell이 로드된 모든 컴퓨터 프로세스에 연결할 수 있습니다.You can now attach to any computer process that has Windows PowerShell loaded. Enter-PSSession cmdlet을 실행하여 대화형 원격 세션을 시작하는 방법과 유사하게 프로세스에서 대화형 세션을 시작하여 연결합니다.You do this by entering into an interactive session with the process, similarly to how you enter into an interactive remote session by running the Enter-PSSession cmdlet:

  • Enter-PSHostProcessEnter-PSHostProcess
  • Exit-PSHostProcessExit-PSHostProcess