Π Π°Π·Π½ΠΎΠ΅

ΠžΡ‚Π»Π°Π΄ΠΊΠ° powershell: ΠžΡ‚Π»Π°Π΄ΠΊΠ° сцСнариСв Π² ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ срСдС сцСнариСв Windows PowerShell — PowerShell

22.03.2023

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

ΠžΡ‚Π»Π°Π΄ΠΊΠ° сцСнариСв Π² ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ срСдС сцСнариСв Windows PowerShell — PowerShell

  • Π‘Ρ‚Π°Ρ‚ΡŒΡ
  • Π§Ρ‚Π΅Π½ΠΈΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 7Β ΠΌΠΈΠ½

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ описано, ΠΊΠ°ΠΊ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ сцСнарии Π½Π° локальном ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ инструмСнтами ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ срСды сцСнариСв (ISE) Windows PowerShell.

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ останова

Π’ΠΎΡ‡ΠΊΠ° останова — это назначСнная Ρ‚ΠΎΡ‡ΠΊΠ° Π² сцСнарии, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ останавливаСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ срСды, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ выполняСтся сцСнарий. ПослС приостановки сцСнария Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ останова ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² области консоли для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π΅Π³ΠΎ состояния. МоТно Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. МоТно Π΄Π°ΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ значСния Π»ΡŽΠ±Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π²ΠΈΠ΄ΠΈΠΌΡ‹Ρ… Π² контСкстС Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ выполняСмого сцСнария. ПослС получСния Π½ΡƒΠΆΠ½Ρ‹Ρ… свСдСний ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ сцСнария.

Π’ срСдС ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Windows PowerShell ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚Ρ€ΠΈ Π²ΠΈΠ΄Π° Ρ‚ΠΎΡ‡Π΅ΠΊ останова:

  1. Π’ΠΎΡ‡ΠΊΠ° останова ΠΏΠΎ строкС. Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ приостанавливаСтся ΠΏΡ€ΠΈ достиТСнии Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠΉ строки.

  2. Π’ΠΎΡ‡ΠΊΠ° останова ΠΏΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ приостанавливаСтся ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ значСния, Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

  3. Π’ΠΎΡ‡ΠΊΠ° останова ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅. Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ приостанавливаСтся ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. МоТно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ для Ρ‚ΠΎΡ‡ΠΊΠΈ останова Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΡƒΠΆΠ½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ. Команда Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ созданной Π²Π°ΠΌΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ.

Π’ срСдС ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ срСды сцСнариСв Windows PowerShell Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΡ‡ΠΊΠΈ останова ΠΏΠΎ строкС ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ мСню ΠΈΠ»ΠΈ сочСтаний клавиш. Π’ΠΎΡ‡ΠΊΠΈ останова Π΄Π²ΡƒΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ, Π½ΠΎ Π² области консоли, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚ Set-PSBreakpoint. Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ описано, ΠΊΠ°ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π² ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ срСдС сцСнариСв Windows PowerShell, ΠΏΠΎ возмоТности ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ мСню, ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈΠ· области консоли, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ сцСнарии.

Π—Π°Π΄Π°Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ останова

Π’ΠΎΡ‡ΠΊΡƒ останова ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Π² сцСнарии Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС Π΅Π³ΠΎ сохранСния. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ строку, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова, ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡƒΠ½ΠΊΡ‚

Π’ΠΎΡ‡ΠΊΠ° останова. Π”Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚: Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ строку, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова, ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ F9 Π»ΠΈΠ±ΠΎ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π’ΠΎΡ‡ΠΊΠ° останова Π² мСню ΠžΡ‚Π»Π°Π΄ΠΊΠ°.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ сцСнарий — ΠΏΡ€ΠΈΠΌΠ΅Ρ€ создания Ρ‚ΠΎΡ‡ΠΊΠΈ останова ΠΏΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ· области консоли с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚Π° Set-PSBreakpoint:

# This command sets a breakpoint on the Server variable in the Sample.ps1 script.
Set-PSBreakpoint -Script sample.ps1 -Variable Server

ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅ всСх Ρ‚ΠΎΡ‡Π΅ΠΊ останова

ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ всС Ρ‚ΠΎΡ‡ΠΊΠΈ останова Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ сСансС Windows PowerShell.

Π’ мСню ΠžΡ‚Π»Π°Π΄ΠΊΠ° Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡƒΠ½ΠΊΡ‚ ВывСсти список Ρ‚ΠΎΡ‡Π΅ΠΊ останова. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ сцСнарий — ΠΏΡ€ΠΈΠΌΠ΅Ρ€ пСрСчислСния всСх Ρ‚ΠΎΡ‡Π΅ΠΊ останова ΠΈΠ· области консоли с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚Π° Get-PSBreakpoint:

# This command lists all breakpoints in the current session.
Get-PSBreakpoint

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ останова

УдаляСт ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ останова.

Если Π²Ρ‹ считаСтС, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΡ‡ΠΊΠ° останова ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ, Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π΅Π΅. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ строку, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова, ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡƒΠ½ΠΊΡ‚ ToggleBreakpoint (Π’ΠΎΡ‡ΠΊΠ° останова). Π”Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚: Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ строку, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова, ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡƒΠ½ΠΊΡ‚

Π’ΠΎΡ‡ΠΊΠ° останова Π² мСню ΠžΡ‚Π»Π°Π΄ΠΊΠ°. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ сцСнарий — ΠΏΡ€ΠΈΠΌΠ΅Ρ€ удалСния Ρ‚ΠΎΡ‡ΠΊΠΈ останова с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΈΠ· области консоли с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚Π° Remove-PSBreakpoint:

# This command deletes the breakpoint with breakpoint ID 2.
Remove-PSBreakpoint -Id 2

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ всСх Ρ‚ΠΎΡ‡Π΅ΠΊ останова

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС Ρ‚ΠΎΡ‡ΠΊΠΈ останова, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ сСансС, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π£Π΄Π°Π»ΠΈΡ‚ΡŒ всС Ρ‚ΠΎΡ‡ΠΊΠΈ останова Π² мСню ΠžΡ‚Π»Π°Π΄ΠΊΠ°.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ сцСнарий — ΠΏΡ€ΠΈΠΌΠ΅Ρ€ удалСния всСх Ρ‚ΠΎΡ‡Π΅ΠΊ останова ΠΈΠ· области консоли с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚Π° Remove-PSBreakpoint:

# This command deletes all of the breakpoints in the current session.
Get-PSBreakpoint | Remove-PSBreakpoint

ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ останова

ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ останова Π½Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π΅Π΅ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ. Она просто остаСтся Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π°. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ строку, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова, ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова.

Π”Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚: Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ строку, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова, ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ F9 Π»ΠΈΠ±ΠΎ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова Π² мСню ΠžΡ‚Π»Π°Π΄ΠΊΠ°. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ сцСнарий — ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ‚ΠΎΡ‡ΠΊΠΈ останова с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΈΠ· области консоли с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚Π° Disable-PSBreakpoint.

# This command disables the breakpoint with breakpoint ID 0.
Disable-PSBreakpoint -Id 0

ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ всСх Ρ‚ΠΎΡ‡Π΅ΠΊ останова

ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π΅Π΅ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ; ΠΎΠ½Π° просто остаСтся Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π°. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС Ρ‚ΠΎΡ‡ΠΊΠΈ останова Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ сСансС, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС Ρ‚ΠΎΡ‡ΠΊΠΈ останова Π² мСню ΠžΡ‚Π»Π°Π΄ΠΊΠ°. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ сцСнарий — ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ всСх Ρ‚ΠΎΡ‡Π΅ΠΊ останова ΠΈΠ· области консоли с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚Π° Disable-PSBreakpoint:

# This command disables all breakpoints in the current session.
# You can abbreviate this command as: "gbp | dbp".
Get-PSBreakpoint | Disable-PSBreakpoint

Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ останова

Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ строку, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова, ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова. Π”Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚: Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ строку, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова, ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ F9 Π»ΠΈΠ±ΠΎ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова Π² мСню ΠžΡ‚Π»Π°Π΄ΠΊΠ°. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ сцСнарий — ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ останова ΠΈΠ· области консоли с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚Π° Enable-PSBreakpoint:

# This command enables breakpoints with breakpoint IDs 0, 1, and 5.
Enable-PSBreakpoint -Id 0, 1, 5

Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ всСх Ρ‚ΠΎΡ‡Π΅ΠΊ останова

Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС Ρ‚ΠΎΡ‡ΠΊΠΈ останова, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ сСансС, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС Ρ‚ΠΎΡ‡ΠΊΠΈ останова Π² мСню ΠžΡ‚Π»Π°Π΄ΠΊΠ°. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ сцСнарий — ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ всСх Ρ‚ΠΎΡ‡Π΅ΠΊ останова ΠΈΠ· области консоли с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚Π° Enable-PSBreakpoint:

# This command enables all breakpoints in the current session.
# You can abbreviate the command by using their aliases: "gbp | ebp".
Get-PSBreakpoint | Enable-PSBreakpoint

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сСансом ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ

ΠŸΠ΅Ρ€Π΅Π΄ запуском ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈΠ»ΠΈ нСсколько Ρ‚ΠΎΡ‡Π΅ΠΊ останова. Π’ΠΎΡ‡ΠΊΠΈ останова нСльзя Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ, Ссли ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ сцСнарий Π½Π΅ сохранСн. Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ ΠΏΠΎ заданию Ρ‚ΠΎΡ‡Π΅ΠΊ останова см. Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ останова ΠΈΠ»ΠΈ Set-PSBreakpoint. ПослС Π½Π°Ρ‡Π°Π»Π° ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ сцСнарий нСльзя Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎ Π΅Π΅ окончания. Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ, содСрТащий ΠΎΠ΄Π½Ρƒ ΠΈΠ»ΠΈ нСсколько Ρ‚ΠΎΡ‡Π΅ΠΊ останова, автоматичСски сохраняСтся ΠΏΠ΅Ρ€Π΅Π΄ запуском.

Начало ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ

НаТмитС ΠΊΠ»Π°Π²ΠΈΡˆΡƒ F5, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡ΠΎΠΊ Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ сцСнарий Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов ΠΈΠ»ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ/ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Π² мСню ΠžΡ‚Π»Π°Π΄ΠΊΠ°. Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ выполняСтся Π΄ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ останова. Π’ Π½Π΅ΠΉ ΠΎΠ½ приостанавливаСтся ΠΈ выдСляСт ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ строку.

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ

НаТмитС ΠΊΠ»Π°Π²ΠΈΡˆΡƒ F5, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡ΠΎΠΊ Run Script (Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ сцСнарий) Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Run/Continue (Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ/ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ) Π² мСню Debug (ΠžΡ‚Π»Π°Π΄ΠΊΠ°) Π»ΠΈΠ±ΠΎ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ C Π² области консоли ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Π’Π’ΠžΠ”. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ продолТаСтся Π΄ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ останова, Π° ΠΏΡ€ΠΈ Π΅Π΅ отсутствии — Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° сцСнария.

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ стСка Π²Ρ‹Π·ΠΎΠ²ΠΎΠ²

Π‘Ρ‚Π΅ΠΊ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ располоТСниС выполнСния Π² сцСнарии. Если сцСнарий выполняСтся Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²Ρ‹Π·Π²Π°Π½Π½ΠΎΠΉ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ, это отраТаСтся ΠΏΡƒΡ‚Π΅ΠΌ добавлСния строк Π² Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. Π’ самой Π½ΠΈΠΆΠ½Π΅ΠΉ строкС отобраТаСтся исходный сцСнарий ΠΈ Π΅Π³ΠΎ строка, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±Ρ‹Π»Π° Π²Ρ‹Π·Π²Π°Π½Π° функция. ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π°Ρ строка ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ Π΅Π΅ строку, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠ³Π»Π° Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Π° другая функция. Π’ самой Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ строкС отобраТаСтся Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ контСкст для Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строки, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π°Π΄Π°Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° останова.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ стСк Π²Ρ‹Π·ΠΎΠ²ΠΎΠ², ΠΏΠΎΠΊΠ° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ приостановлСно, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ клавиши CTRL+SHIFT+D, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Display Call Stack (ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ стСка Π²Ρ‹Π·ΠΎΠ²ΠΎΠ²) Π² мСню Debug (ΠžΡ‚Π»Π°Π΄ΠΊΠ°) ΠΈΠ»ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ K Π² области консоли ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Π’Π’ΠžΠ”.

ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ

НаТмитС клавиши SHIFT+F5, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Stop Debugger (ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ) Π² мСню Debug (ΠžΡ‚Π»Π°Π΄ΠΊΠ°) ΠΈΠ»ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Q Π² области консоли ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Π’Π’ΠžΠ”.

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ шагов с ΠΎΠ±Ρ…ΠΎΠ΄ΠΎΠΌ, Π·Π°Ρ…ΠΎΠ΄ΠΎΠΌ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ Π²ΠΎ врСмя ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ

ПошаговоС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ сцСнария — это ΠΏΠΎΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π° любой строкС ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ состояниС систСмы. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ описаны Π·Π°Π΄Π°Ρ‡ΠΈ, часто выполняСмыС ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ шаги с ΠΎΠ±Ρ…ΠΎΠ΄ΠΎΠΌ, Π·Π°Ρ…ΠΎΠ΄ΠΎΠΌ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ:

Π—Π°Π΄Π°Ρ‡Π° ΠΎΡ‚Π»Π°Π΄ΠΊΠΈDescriptionБпособ выполнСния Π² ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ срСдС сцСнариСв PowerShell
Π¨Π°Π³ с заходомВыполняСт Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈ останавливаСтся Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅. Если Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ являСтся Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ сцСнария, ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ выполняСт ΠΈΡ… ΠΏΠΎ шагам. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΎΠ½ останавливаСтся Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅.НаТмитС ΠΊΠ»Π°Π²ΠΈΡˆΡƒ
F11
, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Step Into (Π¨Π°Π³ с Π·Π°Ρ…ΠΎΠ΄ΠΎΠΌ) Π² мСню Debug (ΠžΡ‚Π»Π°Π΄ΠΊΠ°) ΠΈΠ»ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ S Π² области консоли ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Π’Π’ΠžΠ”.
Π¨Π°Π³ с обходомВыполняСт Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈ останавливаСтся Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅. Если Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ являСтся Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ сцСнария, ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ выполняСт ΠΈΡ… ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈ останавливаСтся Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ послС этого Π²Ρ‹Π·ΠΎΠ²Π°.НаТмитС ΠΊΠ»Π°Π²ΠΈΡˆΡƒ F10, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Step Over (Π¨Π°Π³ с ΠΎΠ±Ρ…ΠΎΠ΄ΠΎΠΌ) Π² мСню Debug (ΠžΡ‚Π»Π°Π΄ΠΊΠ°) ΠΈΠ»ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ V Π² области консоли ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Π’Π’ΠžΠ”.
Π¨Π°Π³ с Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌΠ’Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π½Π° ΠΎΠ΄ΠΈΠ½ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π²Ρ‹ΡˆΠ΅, Ссли функция являСтся Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ. Если выполняСтся Ρ‚Π΅Π»ΠΎ Π³Π»Π°Π²Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, сцСнарий выполняСтся Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° ΠΈΠ»ΠΈ Π΄ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ останова. ΠŸΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ, Π½ΠΎ Π² Π½ΠΈΡ… ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Π½Π΅ останавливаСтся.НаТмитС клавиши SHIFT+F11, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Step Out (Π¨Π°Π³ с Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ) Π² мСню Debug (ΠžΡ‚Π»Π°Π΄ΠΊΠ°) ΠΈΠ»ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ O Π² области консоли ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Π’Π’ΠžΠ”.
ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° ΠΈΠ»ΠΈ Π΄ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ останова. ΠŸΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ, Π½ΠΎ Π² Π½ΠΈΡ… ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Π½Π΅ останавливаСтся.НаТмитС ΠΊΠ»Π°Π²ΠΈΡˆΡƒ F5, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Run/Continue (Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ/ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ) Π² мСню Debug (ΠžΡ‚Π»Π°Π΄ΠΊΠ°) ΠΈΠ»ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ C Π² области консоли ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Π’Π’ΠžΠ”.

ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅

ΠŸΡ€ΠΈ пошаговом Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² сцСнарии.

ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ стандартных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

ВсС области Π² ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ срСдС сцСнариСв всСгда относятся ΠΊ ΠΎΠ΄Π½ΠΎΠΉ области дСйствия. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ сцСнария ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π² области консоли, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² области сцСнариСв. Π­Ρ‚ΠΎ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ консоли для поиска Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² сцСнарии.

ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ автоматичСских ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

ΠžΠΏΠΈΡΠ°Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ позволяСт ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ значСния ΠΏΠΎΡ‡Ρ‚ΠΈ всСх ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ сцСнария. Однако ΠΎΠ½ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ для ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… автоматичСских ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…:

  • $_

  • $Input

  • $MyInvocation

  • $PSBoundParameters

  • $Args

ΠŸΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ любой ΠΈΠ· этих ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… отобраТаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ· Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π° ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°, Π° Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² сцСнарии. Для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ($_, $Input, $MyInvocation, $PSBoundParameters ΠΈ $Args) это ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

  1. ΠŸΡ€ΠΈΡΠ²ΠΎΠΉΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ автоматичСской ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² сцСнарии Π½ΠΎΠ²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

  2. ΠžΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, навСдя Π½Π° Π½Π΅Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΌΡ‹ΡˆΠΈ Π² области сцСнариСв ΠΈΠ»ΠΈ ввСдя Π΅Π΅ имя Π² области консоли.

НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $MyInvocation Π² сцСнарии, присвойтС Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ $scriptName, Π° Π·Π°Ρ‚Π΅ΠΌ Π½Π°Π²Π΅Π΄ΠΈΡ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΌΡ‹ΡˆΠΈ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ $scriptName ΠΈΠ»ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Π΅Π΅ для отобраТСния значСния.

# In C:\ps-test\MyScript.ps1
$scriptName = $MyInvocation.MyCommand.Path
# In the Console Pane:
.\MyScript.ps1
$scriptName
C:\ps-test\MyScript.ps1

Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅:

ΠžΠ±Π·ΠΎΡ€ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ срСды скриптов Windows PowerShell

ΠžΡ‚Π»Π°Π΄ΠΊΠ° сцСнариСв Windows PowerShell — Π‘Π°Π·Π° ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… Π·Π½Π°Π½ΠΈΠΉ

Windows Server 2016 прСдоставил для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ сцСнариСв Windows PowerShell нСсколько ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ:

  • Break All
  • Π£Π΄Π°Π»Ρ‘Π½Π½ΠΎΠ΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
  • Удалённая ΠΎΡ‚Π»Π°Π΄ΠΊΠ°
  • ΠžΡ‚Π»Π°Π΄ΠΊΠ° Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ³ΠΎ задания
  • ΠžΡ‚Π»Π°Π΄ΠΊΠ° Runspaces
  • Удалённая ΠΎΡ‚Π»Π°Π΄ΠΊΠ° Desired State Configuration

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅:

Break All

Break All (ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ всё) — ΠΎΡ‡Π΅Π½ΡŒ полСзная ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‰Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ скрипт функция, Π΄Π°ΡŽΡ‰Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ ΠΈ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ этот скрипт ΠΈ ΠΊΠ°ΠΊΠΎΠ²ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… элСмСнтов. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π±Ρ‹Π»Π° Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° для консоли Windows PowerShell ΠΈ ISE.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Π² сСансС консоли, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Ctrl+Break

Π’ Windows PowerShell ISE ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ Ctrl+B ΠΈΠ»ΠΈ, Ρ‰Ρ‘Π»ΠΊΠ½ΡƒΡ‚ΡŒ Π² мСню «ΠžΡ‚Π»Π°Π΄ΠΊΠ°» ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ «Break All».

Π£Π΄Π°Π»Ρ‘Π½Π½ΠΎΠ΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Π’ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Windows PowerShell ISE ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΌ сСансС Windows PowerShell. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ «PSEdit», Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ нСпосрСдствСнно Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠ°ΠΊ локально, Ρ‚Π°ΠΊ ΠΈ Π² ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Ρ… сСансах.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² дСйствии:

[Cloud01]: PS C:\> PSEdit C:\WinDemo\Get-ComputerInfo.ps1

ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ PSEdit, ΠΎΠ½ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ Ρ„Π°ΠΉΠ» Π² ISE, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ внСсти измСнСния, ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡ… Π½Π° ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄.

Удалённая ΠΎΡ‚Π»Π°Π΄ΠΊΠ°

Π Π°ΡΡˆΠΈΡ€ΡΡ возмоТности ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ рСдактирования, Π²Ρ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΉ Π½Π° ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΌ сСансС с ISE скрипт.

ΠšΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚ Set-PsBreakpoint Π·Π°Π΄Π°Ρ‘Ρ‚ Π² ΠΊΠΎΠ΄Π΅ Ρ‚ΠΎΡ‡ΠΊΡƒ останова, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚ Write-Debug ΠΈ вывСсти ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ для использования Π² Π²Π°ΡˆΠΈΡ… сцСнариях, Ссли Π²Ρ‹ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π΅Ρ‚Π΅ΡΡŒ с Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ останова, ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. Π’ этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ вас пСрСмСстит Π² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ, Π³Π΄Π΅ потрСбуСтся ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° ΠΈΠΌΠ΅ΡŽΡ‰ΡƒΡŽΡΡ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ. Рисунок Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ эту ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΉ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π² Windows Powershell ISE

Когда скрипт встрСчаСт Π² ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΌ сСансС Ρ‚ΠΎΡ‡ΠΊΡƒ останова, ΠΎΠ½ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ сообщСниС, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅, Ρ‡Ρ‚ΠΎ это сдСлано. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ рисунок ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ сообщСния.

ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎΠ± остановС Π² ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΌ сСансС

НС всС ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Π΅ сСансы Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ сСанс ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΉ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, Π½ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΊ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΌΡƒ сСансу с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚Π° Connect-PSSession, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π½Π° рисункС Π½ΠΈΠΆΠ΅. Π’Ρ‹Π²ΠΎΠ΄ Ρ‚Π°ΠΊΠΆΠ΅ позволяСт ΡƒΠ·Π½Π°Ρ‚ΡŒ Π΅Ρ‘ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ.

Π”ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΉ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ

Если удалённая ΠΎΡ‚Π»Π°Π΄ΠΊΠ° доступна, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ сСансу с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚Π° Enter-PSSession, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ вас нСпосрСдствСнно ΠΊ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΡƒ.

Π£Π΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΉ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Π² дСйствии

ΠžΡ‚Π»Π°Π΄ΠΊΠ° Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ³ΠΎ задания

Одной ΠΈΠ· ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Windows PowerShell являСтся ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ скрипты ΠΊΠ°ΠΊ Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Π΅ задания. Π­Ρ‚ΠΈ задания ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π±Π΅Π· отобраТСния Π½Π° экранС Π³Π»Π°Π²Π½ΠΎΠΉ консоли, позволяя ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡. Иногда задания для устранСния Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ слоТными ΠΈ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π°Π΄Ρ‘ΠΆΠ½Ρ‹Ρ… сцСнариСв, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ с Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ мСста, потрСбуСтся ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ± ΠΈ ошибок.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Π² Server 2016, Windows PowerShell Π²Π²ΠΎΠ΄ΠΈΡ‚ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚ Debug-Job, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π°Ρ‘Ρ‚ Π²Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΈΡ‚ΡŒ эти Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Π΅ задания Π±ΠΎΠ»Π΅Π΅ эффСктивно. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ рисунок ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ использованиС этого ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚Π°. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, ΠΊΠ°ΠΊ Debug-Job ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Π°ΠΌ линию ΠΈ характСристики прСрывания Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

ΠšΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚ Debug-Job, выводящий сообщСниС ΠΎΠ± ошибкС Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Π·Π°Π΄Π°Π½ΠΈΠΈ

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π΄ΠΎ этого состояния останова, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚ΠΎΠΌ Set-PSBreakPoint ΠΈΠ»ΠΈ Wait-Debugger. Они ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для «приостановки» сцСнария ΠΈ Π²Π²ΠΎΠ΄Π° ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ввСсти эти ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚Ρ‹ Π² свой скрипт, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ состояниС задания. Π’Π°ΠΊ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, столкнулся Π»ΠΈ ΠΎΠ½ с Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ останова ΠΈ Π³ΠΎΡ‚ΠΎΠ²Π° Π»ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ°. Рисунок Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ этого.

БостояниС Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ³ΠΎ задания

ΠžΡ‚Π»Π°Π΄ΠΊΠ° Runspaces

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ нСсколько, связанных с Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… Π·Π°Π΄Π°Π½ΠΈΠΉ, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с рСсурсами ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ, Π±Ρ‹Π» Π²Π²Π΅Π΄Ρ‘Π½ Runspaces. Runspaces отличаСтся ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… мСст Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ для ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π΅ΠΉ срСды Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ выполнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ нСсёт Ρ‚Π΅Ρ… ΠΆΠ΅ Π·Π°Ρ‚Ρ€Π°Ρ‚, Ρ‡Ρ‚ΠΎ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅. Π‘ΠΎΠ»ΡŒΡˆΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Runspaces ΠΈ Π΅Π³ΠΎ использовании Π½Π° http://blogs.technet.microsoft.com/heyscriptingguy/2015/11/26/beginning-use-of-powershell- runspaces-part-1/.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ рисунок ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ созданиС Runspaces.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Runspaces

Для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Runspaces Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Β«IDΒ», рисунок Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ доступныС runspaces, Π° Π·Π°Ρ‚Π΅ΠΌ ввСсти сСанс ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚Π° Debug-Runspace.

ΠžΡ‚Π»Π°Π΄ΠΊΠ° runspace

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ runspace, ID 1, всСгда исходный сСанс Windows PowerShell, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ. Для Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ изучСния runspacees Π² вашСй срСдС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ ссылки.

Как ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ сцСнарии Π² Windows PowerShell ISE β€” PowerShell

  • Π‘Ρ‚Π°Ρ‚ΡŒΡ
  • 9 ΠΌΠΈΠ½ΡƒΡ‚ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ описываСтся ΠΎΡ‚Π»Π°Π΄ΠΊΠ° сцСнариСв Π½Π° локальном ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Windows PowerShell. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Integrated Scripting Environment (ISE).

Как ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ останова

Π’ΠΎΡ‡ΠΊΠ° останова β€” это мСсто Π² сцСнарии, Π³Π΄Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ срСду, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ваш сцСнарий. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ваш сцСнарий Π±ΡƒΠ΄Π΅Ρ‚ приостановлСн Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ останова, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ консоли, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ состояниС вашСго скрипта. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π’Ρ‹ Π΄Π°ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π»ΡŽΠ±Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π²ΠΈΠ΄ΠΈΠΌΡ‹Ρ… Π² контСкстС Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ сцСнария. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρƒ вас Π΅ΡΡ‚ΡŒ просмотрСв Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ скрипта.

Π’ срСдС ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Windows PowerShell ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚Ρ€ΠΈ Ρ‚ΠΈΠΏΠ° Ρ‚ΠΎΡ‡Π΅ΠΊ останова:

  1. Π’ΠΎΡ‡ΠΊΠ° останова строки . Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ приостанавливаСтся, ΠΊΠΎΠ³Π΄Π° Π²ΠΎ врСмя ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ достигаСтся указанная строка. скрипта

  2. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Ρ‚ΠΎΡ‡ΠΊΠ° останова. Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ приостанавливаСтся всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° измСняСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

  3. Π’ΠΎΡ‡ΠΊΠ° останова ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ приостанавливаСтся всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° назначСнная ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π°. Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ скрипта. Он ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ для дальнСйшСй Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ останова. Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π° опСрация, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅. Команда Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ создали.

Из Π½ΠΈΡ… Π² срСдС ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Windows PowerShell ISE Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΡ‡ΠΊΠΈ останова строки ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ установлСны с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ мСню ΠΈΠ»ΠΈ горячих клавиш. Π”Ρ€ΡƒΠ³ΠΈΠ΅ Π΄Π²Π° Ρ‚ΠΈΠΏΠ° Ρ‚ΠΎΡ‡Π΅ΠΊ останова ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ установлСны, Π½ΠΎ ΠΎΠ½ΠΈ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ консоли с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠšΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚ Set-PSBreakpoint. Π­Ρ‚ΠΎΡ‚ Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ описываСтся, ΠΊΠ°ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π² Windows PowerShell ISE с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ мСню. Ρ‚Π°ΠΌ, Π³Π΄Π΅ это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ консоли с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сцСнариСв.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова

Π’ΠΎΡ‡ΠΊΡƒ останова ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π² сцСнарии Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС Π΅Π³ΠΎ сохранСния. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ строку, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова строки, Π° Π·Π°Ρ‚Π΅ΠΌ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Toggle Breakpoint . Или Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ строку, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ прСрывания строки ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ F9 ΠΈΠ»ΠΈ Π² мСню Debug Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Toggle Π’ΠΎΡ‡ΠΊΠ° останова .

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ сцСнарий являСтся ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ останова ΠΈΠ· ΠΏΠ°Π½Π΅Π»ΠΈ консоли с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Set-PSBreakpoint ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚.

 # Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° устанавливаСт Ρ‚ΠΎΡ‡ΠΊΡƒ останова Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ сСрвСра Π² сцСнарии Sample.ps1.
Set-PSBreakpoint -Script sample.ps1 -Variable Server
 

Бписок всСх Ρ‚ΠΎΡ‡Π΅ΠΊ останова

ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ всС Ρ‚ΠΎΡ‡ΠΊΠΈ останова Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ сСансС Windows PowerShell.

Π’ мСню ΠžΡ‚Π»Π°Π΄ΠΊΠ° Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Бписок Ρ‚ΠΎΡ‡Π΅ΠΊ останова . Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ сцСнарий являСтся ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ вывСсти список всСх Ρ‚ΠΎΡ‡Π΅ΠΊ останова Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ консоли с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠšΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚ Get-PSBreakpoint.

 # Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ список всСх Ρ‚ΠΎΡ‡Π΅ΠΊ останова Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ сСансС.
Get-PSBreakpoint
 

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ останова

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ останова удаляСт Π΅Π΅.

Если Π²Ρ‹ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎΠ·ΠΆΠ΅, рассмотритС ВмСсто этого ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΡƒ останова. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ строку, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΡƒ останова ΠΈ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ToggleBreakpoint . Или Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ строку, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΡƒ останова ΠΈ Π² мСню Debug Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Toggle Breakpoint . Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ сцСнарий ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΈΠ· ΠΏΠ°Π½Π΅Π»ΠΈ консоли с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠšΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚ Remove-PSBreakpoint.

 # Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° удаляСт Ρ‚ΠΎΡ‡ΠΊΡƒ останова с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ Ρ‚ΠΎΡ‡ΠΊΠΈ останова 2.
Π£Π΄Π°Π»ΠΈΡ‚ΡŒ-PSBreakpoint-Id 2
 

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ всС Ρ‚ΠΎΡ‡ΠΊΠΈ останова

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС Ρ‚ΠΎΡ‡ΠΊΠΈ останова, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ сСансС, Π² мСню ΠžΡ‚Π»Π°Π΄ΠΊΠ° Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π£Π΄Π°Π»ΠΈΡ‚ΡŒ всС Π’ΠΎΡ‡ΠΊΠΈ останова .

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ сцСнарий являСтся ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС Ρ‚ΠΎΡ‡ΠΊΠΈ останова ΠΈΠ· ΠΏΠ°Π½Π΅Π»ΠΈ консоли с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚ΠΎΡ‡ΠΊΠ° останова Remove-PSBreakpoint ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚.

 # Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° удаляСт всС Ρ‚ΠΎΡ‡ΠΊΠΈ останова Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ сСансС.
Get-PSBreakpoint | Remove-PSBreakpoint
 

ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ останова

ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ останова Π½Π΅ удаляСт Π΅Π΅. Он ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π΅Π³ΠΎ, ΠΏΠΎΠΊΠ° ΠΎΠ½ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ останова строки, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ строку, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова, Π° Π·Π°Ρ‚Π΅ΠΌ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова .

Или Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ строку, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова, ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ F9 ΠΈΠ»ΠΈ Π½Π° Π’ мСню Β«ΠžΡ‚Π»Π°Π΄ΠΊΠ° Β» Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Β«ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова Β». Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ сцСнарий являСтся ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΈΠ· ΠΏΠ°Π½Π΅Π»ΠΈ консоли с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠšΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚ Disable-PSBreakpoint.

 # Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ‚ΠΎΡ‡ΠΊΡƒ останова с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ Ρ‚ΠΎΡ‡ΠΊΠΈ останова 0.
Disable-PSBreakpoint-Id 0
 

ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС Ρ‚ΠΎΡ‡ΠΊΠΈ останова

ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ останова Π½Π΅ удаляСт Π΅Π΅; ΠΎΠ½ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π΅Π³ΠΎ, ΠΏΠΎΠΊΠ° ΠΎΠ½ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС Ρ‚ΠΎΡ‡Π΅ΠΊ останова Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ сСансС, Π² мСню ΠžΡ‚Π»Π°Π΄ΠΊΠ° Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС Ρ‚ΠΎΡ‡ΠΊΠΈ останова . ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ сцСнарий являСтся ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС Ρ‚ΠΎΡ‡ΠΊΠΈ останова Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ консоли с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Disable-PSBreakpoint ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚.

 # Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ всС Ρ‚ΠΎΡ‡ΠΊΠΈ останова Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ сСансС.
# Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΊΠ°ΠΊ: "gbp | dbp".
Get-PSBreakpoint | Disable-PSBreakpoint
 

Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова

Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ останова, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ строку, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова, ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова . Или Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ строку, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова, Π° Π·Π°Ρ‚Π΅ΠΌ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ F9 ΠΈΠ»ΠΈ Π² мСню Debug Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Enable Breakpoint . Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ сцСнарий ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ останова ΠΈΠ· ΠΏΠ°Π½Π΅Π»ΠΈ консоли с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠšΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚ Enable-PSBreakpoint.

 # Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ останова с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ Ρ‚ΠΎΡ‡Π΅ΠΊ останова 0, 1 ΠΈ 5.
Enable-PSBreakpoint-Id 0, 1, 5
 

Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС Ρ‚ΠΎΡ‡ΠΊΠΈ останова

Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС Ρ‚ΠΎΡ‡ΠΊΠΈ останова, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ сСансС, Π² мСню ΠžΡ‚Π»Π°Π΄ΠΊΠ° Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС Π’ΠΎΡ‡ΠΊΠΈ останова . Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ сцСнарий являСтся ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС Ρ‚ΠΎΡ‡ΠΊΠΈ останова ΠΈΠ· ПанСль консоли с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠšΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚ Enable-PSBreakpoint.

 # Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ всС Ρ‚ΠΎΡ‡ΠΊΠΈ останова Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ сСансС.
# Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈΡ… псСвдонимы: "gbp | ebp".
Get-PSBreakpoint | Enable-PSBreakpoint
 

Как ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ сСансом ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ

ΠŸΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈΠ»ΠΈ нСсколько Ρ‚ΠΎΡ‡Π΅ΠΊ останова. Π’Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова, Ссли сцСнарий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚Π»Π°Π΄ΠΈΡ‚ΡŒ, сохраняСтся. Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ ΠΏΠΎ установкС Ρ‚ΠΎΡ‡ΠΊΠΈ останова см. Как ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ останова ΠΈΠ»ΠΈ Set-PSBreakpoint. ПослС Вас Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ, Π²Ρ‹ Π½Π΅ смоТСтС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ скрипт, ΠΏΠΎΠΊΠ° Π½Π΅ остановитС ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ. Π‘ΠΊΡ€ΠΈΠΏΡ‚, содСрТащий ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько Π½Π°Π±ΠΎΡ€ Ρ‚ΠΎΡ‡Π΅ΠΊ останова автоматичСски сохраняСтся ΠΏΠ΅Ρ€Π΅Π΄ запуском.

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ

НаТмитС F5 ΠΈΠ»ΠΈ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡ΠΎΠΊ Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сцСнарий ΠΈΠ»ΠΈ Π² мСню ΠžΡ‚Π»Π°Π΄ΠΊΠ° Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ/ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ . Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ встрСтит ΠΏΠ΅Ρ€Π²ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ останова. Он Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΠ°ΡƒΠ·Ρƒ опСрация Ρ‚Π°ΠΌ ΠΈ выдСляСт строку, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½Π° ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ»Π°ΡΡŒ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ

НаТмитС F5 ΠΈΠ»ΠΈ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡ΠΎΠΊ Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сцСнарий ΠΈΠ»ΠΈ Π² мСню ΠžΡ‚Π»Π°Π΄ΠΊΠ° , Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ/ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ консоли Π²Π²Π΅Π΄ΠΈΡ‚Π΅ C , Π° Π·Π°Ρ‚Π΅ΠΌ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ENTER . Π­Ρ‚ΠΎΡ‚ заставляСт сцСнарий ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ останова ΠΈΠ»ΠΈ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° сцСнария, Ссли Π½Π΅Ρ‚ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ останова.

Для просмотра стСка Π²Ρ‹Π·ΠΎΠ²ΠΎΠ²

Π’ стСкС Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² отобраТаСтся Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ мСсто выполнСния сцСнария. Если скрипт Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² функция, которая Π±Ρ‹Π»Π° Π²Ρ‹Π·Π²Π°Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ, Ρ‚ΠΎ ΠΎΠ½Π° прСдставлСна ​​на дисплСС ΠΊΠ°ΠΊ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ строки Π² Π²Ρ‹Π²ΠΎΠ΄Π΅. Π’ самой Π½ΠΈΠΆΠ½Π΅ΠΉ строкС отобраТаСтся исходный сцСнарий ΠΈ строка Π² Π½Π΅ΠΌ. Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±Ρ‹Π»Π° Π²Ρ‹Π·Π²Π°Π½Π° функция. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ строка ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ строку Π² Π½Π΅ΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠ³Π»Π° Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Π° другая функция. Бамая вСрхняя строка ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ контСкст Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ строка, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ установлСна ​​точка останова.

Π’ΠΎ врСмя ΠΏΠ°ΡƒΠ·Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ стСк Π²Ρ‹Π·ΠΎΠ²ΠΎΠ², Π½Π°ΠΆΠΌΠΈΡ‚Π΅ CTRL + SHIFT + D ΠΈΠ»ΠΈ, Π² мСню Debug Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Display Call Stack ΠΈΠ»ΠΈ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ консоли Π²Π²Π΅Π΄ΠΈΡ‚Π΅ K , Π° Π·Π°Ρ‚Π΅ΠΌ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π’Π’Π•Π”Π˜Π’Π• .

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ

НаТмитС SHIFT + F5 ΠΈΠ»ΠΈ Π² мСню ΠžΡ‚Π»Π°Π΄ΠΊΠ° Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ ΠΈΠ»ΠΈ Π² мСню ПанСль консоли, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Q , Π° Π·Π°Ρ‚Π΅ΠΌ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ .Π’Π’Π•Π”Π˜Π’Π• .

Как ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ, Π²Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅

ПошаговоС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ β€” это процСсс выполнСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π·Π° Ρ€Π°Π·. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ Π½Π° строкС ΠΊΠΎΠ΄Π° ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ состояниС систСмы. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ описаны ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° Π·Π°Π΄Π°Ρ‡, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄, Π²Ρ…ΠΎΠ΄ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄.

Π—Π°Π΄Π°Ρ‡Π° ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ОписаниС Как это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π² PowerShell ISE
Π’ΠΎΠΉΠ΄ΠΈΡ‚Π΅ Π²Π½ΡƒΡ‚Ρ€ΡŒ ВыполняСт Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ, Π° Π·Π°Ρ‚Π΅ΠΌ останавливаСтся Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ инструкции. Если Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ являСтся Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ скрипта, ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ скрипту, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΎΠ½ останавливаСтся Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅. НаТмитС F11 ΠΈΠ»ΠΈ Π² мСню Debug Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Step Into ΠΈΠ»ΠΈ Π² ΠΏΠ°Π½Π΅Π»ΠΈ консоли Π²Π²Π΅Π΄ΠΈΡ‚Π΅ S ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ENTER .
ΠŸΠ΅Ρ€Π΅ΡˆΠ°Π³Π½ΡƒΡ‚ΡŒ ВыполняСт Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ, Π° Π·Π°Ρ‚Π΅ΠΌ останавливаСтся Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ инструкции. Если Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ являСтся Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ скрипта, Ρ‚ΠΎ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ выполняСт всю Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ»ΠΈ скрипт Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ ΠΈ останавливаСтся Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ послС Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. НаТмитС F10 ΠΈΠ»ΠΈ Π² мСню Debug Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Step Over ΠΈΠ»ΠΈ Π² ΠΏΠ°Π½Π΅Π»ΠΈ консоли Π²Π²Π΅Π΄ΠΈΡ‚Π΅ V ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ENTER .
Π’Ρ‹Ρ…ΠΎΠ΄ Π’Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° ΠΎΠ΄ΠΈΠ½ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π²Π²Π΅Ρ€Ρ…, Ссли функция Π²Π»ΠΎΠΆΠ΅Π½Π°. Если Π² основном Ρ‚Π΅Π»Π΅, скрипт выполняСтся Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° ΠΈΠ»ΠΈ Π΄ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ останова. ΠŸΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ, Π½ΠΎ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ. НаТмитС SHIFT + F11 , ΠΈΠ»ΠΈ Π² мСню ΠžΡ‚Π»Π°Π΄ΠΊΠ° Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π’Ρ‹Ρ…ΠΎΠ΄ , ΠΈΠ»ΠΈ Π² области консоли Π²Π²Π΅Π΄ΠΈΡ‚Π΅ O ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ENTER .
ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ : ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° ΠΈΠ»ΠΈ Π΄ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ останова. ΠŸΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ, Π½ΠΎ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ. НаТмитС F5 ΠΈΠ»ΠΈ Π² мСню ΠžΡ‚Π»Π°Π΄ΠΊΠ° Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ/ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ Π² области консоли Π²Π²Π΅Π΄ΠΈΡ‚Π΅ C ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ENTER .

Как ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² сцСнарии ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ выполнСния ΠΊΠΎΠ΄Π°.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ значСния стандартных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… способов:

  • На ΠΏΠ°Π½Π΅Π»ΠΈ сцСнариСв Π½Π°Π²Π΅Π΄ΠΈΡ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΌΡ‹ΡˆΠΈ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π²ΠΈΠ΄Π΅ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ подсказки.

  • Π’ области консоли Π²Π²Π΅Π΄ΠΈΡ‚Π΅ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ENTER .

ВсС ΠΏΠ°Π½Π΅Π»ΠΈ Π² ISE всСгда находятся Π² ΠΎΠ΄Π½ΠΎΠΉ области. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, ΠΏΠΎΠΊΠ° Π²Ρ‹ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Π΅Ρ‚Π΅ скрипт, ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π²Π²ΠΎΠ΄ΠΈΡ‚Π΅ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ консоли, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² области сцСнария. Π­Ρ‚ΠΎ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ консоль ПанСль для поиска Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²Ρ‹Π·ΠΎΠ²Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² скриптС.

Для отобраТСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ автоматичСских ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ для отобраТСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎΡ‡Ρ‚ΠΈ всСх ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π²ΠΎ врСмя ΠΎΡ‚Π»Π°Π΄ΠΊΠ° скрипта. Однако эти ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ для ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… автоматичСских ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

  • $_

  • $Π’Π²ΠΎΠ΄

  • $MyInvocation

  • $PSBoundParameters

  • $Args

Если Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ любой ΠΈΠ· этих ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ для in Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ, Π° Π½Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² скриптС. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π²ΠΎΠΊΡ€ΡƒΠ³ этого для Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ( $_ , $Input , $MyInvocation , $PSBoundParameters ΠΈ $Args ) с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°:

  1. Π’ сцСнарии присвойтС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ автоматичСской ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½ΠΎΠ²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

  2. ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π»ΠΈΠ±ΠΎ навСдя ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΌΡ‹ΡˆΠΈ Π½Π° Π½ΠΎΠ²ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² скриптС ΠΈΠ»ΠΈ ввСдя Π½ΠΎΠ²ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ консоли.

НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $MyInvocation , Π² сцСнарии присвойтС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π½ΠΎΠ²ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ $scriptName , Π° Π·Π°Ρ‚Π΅ΠΌ Π½Π°Π²Π΅Π΄ΠΈΡ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΌΡ‹ΡˆΠΈ ΠΈΠ»ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ $scriptName , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

 # Π’ C:\ps-test\MyScript.ps1
$scriptName = $MyInvocation.MyCommand.Path
 
 # Π’ ΠΏΠ°Π½Π΅Π»ΠΈ консоли:
.\MyScript.ps1
$scriptName
 
 C:\ps-тСст\MyScript.ps1
 

Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅

Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Windows PowerShell ISE

ΠΎΠ± ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°Ρ… — PowerShell | Microsoft Learn

  • Π‘Ρ‚Π°Ρ‚ΡŒΡ
  • 15 ΠΌΠΈΠ½ΡƒΡ‚ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅

ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС

ΠžΠΏΠΈΡΡ‹Π²Π°Π΅Ρ‚ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ PowerShell.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС

ΠžΡ‚Π»Π°Π΄ΠΊΠ° β€” это процСсс ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ сцСнария Π²ΠΎ врСмя Π΅Π³ΠΎ ΠΈ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ошибки Π² инструкциях скрипта. ΠžΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ PowerShell ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Ρ‹ исслСдуСтС ΠΈ выявляСтС ошибки ΠΈ Π½Π΅ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Π² Π²Π°ΡˆΠΈΡ… сцСнариях, функциях, ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ PowerShell Desired State Configuration (DSC) ΠΈΠ»ΠΈ выраТСния.

Начиная с PowerShell 5.0, ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ PowerShell Π±Ρ‹Π» ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ сцСнарии, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ выраТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π»ΠΈΠ±ΠΎ Π² консоли, Π»ΠΈΠ±ΠΎ Π² Windows PowerShell ISE Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ…. Π’Ρ‹ моТСшь Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Enter-PSSession для запуска ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ сСанса PowerShell Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ останова ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ сцСнариСв ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Enter-PSSession Π±Ρ‹Π»Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΈ Π²ΠΎΠΉΡ‚ΠΈ Π² ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΉ сСанс, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ выполняСтся сцСнарий ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€. Если Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΉ скрипт достигаСт Ρ‚ΠΎΡ‡ΠΊΠΈ останова, сСанс ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° автоматичСски запускаСт ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ. Если ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΉ сСанс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСтся скрипт ΡƒΠΆΠ΅ достиг Ρ‚ΠΎΡ‡ΠΊΠΈ останова ΠΈ останавливаСтся Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ останова, Enter-PSSession автоматичСски запускаСт ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ сСансу.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° PowerShell для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ PowerShell сцСнарий, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈΠ»ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΎ врСмя Π΅Π³ΠΎ выполнСния. PowerShell ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚ΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ останова, ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ останова ΠΈ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ стСк Π²Ρ‹Π·ΠΎΠ²ΠΎΠ².

ΠšΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚Ρ‹ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°

ΠžΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ PowerShell Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚ΠΎΠ²:

  • Set-PSBreakpoint : УстанавливаСт Ρ‚ΠΎΡ‡ΠΊΠΈ останова Π² строках, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ….
  • Get-PSBreakpoint : ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ останова Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ сСансС.
  • Disable-PSBreakpoint : ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ останова Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ сСансС.
  • Enable-PSBreakpoint : ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ останова Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ сСансС.
  • Remove-PSBreakpoint : УдаляСт Ρ‚ΠΎΡ‡ΠΊΠΈ останова ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ сСанса.
  • Get-PSCallStack : ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ стСк Π²Ρ‹Π·ΠΎΠ²ΠΎΠ².

Запуск ΠΈ остановка ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ, установитС ΠΎΠ΄Π½Ρƒ ΠΈΠ»ΠΈ нСсколько Ρ‚ΠΎΡ‡Π΅ΠΊ останова. Π—Π°Ρ‚Π΅ΠΌ запуститС скрипт, ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚Π»Π°Π΄ΠΈΡ‚ΡŒ.

ΠŸΡ€ΠΈ достиТСнии Ρ‚ΠΎΡ‡ΠΊΠΈ останова Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ останавливаСтся, ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пСрСдаСтся ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ, запуститС сцСнарий, ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ. Или Π²Π²Π΅Π΄ΠΈΡ‚Π΅ стоп ΠΈΠ»ΠΈ t .

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°

ΠŸΡ€ΠΈ использовании ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° Π² консоли PowerShell ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для контроля исполнСния. Π’ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ срСдС сцСнариСв Windows PowerShell ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. мСню.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Для получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± использовании ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… хост-прилоТСниях см. см. Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ хост-прилоТСния.

  • s , StepInto : ВыполняСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠΈ Π·Π°Ρ‚Π΅ΠΌ останавливаСтся.

  • v , StepOver : ВыполняСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, Π½ΠΎ пропускаСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΈΠ·Ρ‹Π²Ρ‹. ΠŸΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ, Π½ΠΎ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ.

  • Ctrl+Break : (Π Π°Π·Π±ΠΈΡ‚ΡŒ всС Π² ISE) ΠŸΡ€Π΅Ρ€Ρ‹Π²Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ сцСнария Π²Π½ΡƒΡ‚Ρ€ΠΈ консоль PowerShell ΠΈΠ»ΠΈ Windows PowerShell ISE. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Ctrl + ΠŸΠ΅Ρ€Π΅Ρ€Ρ‹Π² Π² Windows PowerShell 2.0, 3.0 ΠΈ 4.0 Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Break All Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ локально, Ρ‚Π°ΠΊ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ сцСнарии.

  • o , StepOut : Π’Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ; Π²Π²Π΅Ρ€Ρ… Π½Π° ΠΎΠ΄ΠΈΠ½ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ, Ссли ΠΎΠ½ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Ρ‹. Если Π² основном Ρ‚Π΅Π»Π΅ ΠΎΠ½ продолТаСтся Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° ΠΈΠ»ΠΈ Π΄ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ останова. ΠŸΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ, Π½ΠΎ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ.

  • c , ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ : ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π΄ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ сцСнария ΠΈΠ»ΠΈ Π΄ΠΎ достигнута ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ Ρ‚ΠΎΡ‡ΠΊΠ° останова. ΠŸΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ, Π½ΠΎ Π½Π΅ ΠΏΠ΅Ρ€Π΅ΡˆΠ°Π³Π½ΡƒΠ» Ρ‡Π΅Ρ€Π΅Π·.

  • l , Бписок : ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ скрипта. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΎΠ½ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ строку, ΠΏΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… строк ΠΈ 10 ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… строк. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ сцСнария, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ENTER.

  • Π» <ΠΌ> , Бписок : ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ 16 строк сцСнария, начиная со строки Π½ΠΎΠΌΠ΅Ρ€, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ .

  • l , Бписок : ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ строк сцСнария, начиная с Π½ΠΎΠΌΠ΅Ρ€ строки, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ .

  • q , Π‘Ρ‚ΠΎΠΏ , Π’Ρ‹Ρ…ΠΎΠ΄ : ΠŸΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ выполнСния скрипта ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°. Если Π²Ρ‹ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Π΅Ρ‚Π΅ Π·Π°Π΄Π°Π½ΠΈΠ΅, запуская ΠšΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚ Debug-Job , ΠΊΠΎΠΌΠ°Π½Π΄Π° Exit ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ ΠΈ позволяСт ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ задания.

  • k , Get-PsCallStack : ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ стСк Π²Ρ‹Π·ΠΎΠ²ΠΎΠ².

  • : ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΡΠ΅Ρ‚ послСднюю ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Ссли это Π±Ρ‹Π» Π¨Π°Π³ (s), StepOver (v) ΠΈΠ»ΠΈ Бписок (Π»). Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС прСдставляСт дСйствиС ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ.

  • ? , h : ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ справку ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°.

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Stop (q).

Начиная с PowerShell 5.0, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Exit, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ сСанс ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Π½Π°Ρ‡Π°Π»ΠΈ, запустив Debug-Job ΠΈΠ»ΠΈ ΠžΡ‚Π»Π°Π΄ΠΊΠ°-пространство выполнСния .

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ эти ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сцСнарий, ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ²ΡˆΠΈΡΡŒ Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ ΠΎΠ·Π°Π±ΠΎΡ‡Π΅Π½Π½ΠΎΡΡ‚ΡŒ, ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ состояниС систСмы, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ сцСнарий, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

ΠŸΠ Π˜ΠœΠ•Π§ΠΠΠ˜Π•. Если Π²Ρ‹ Π²Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ пСрСнаправлСния, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ «>», ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ PowerShell ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅Ρ‚ всС ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ сцСнария.

ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… сцСнария

Пока Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ΅, Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚Ρ‹ ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ сцСнарии Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ всСх ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² скриптС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСтся ΠΎΡ‚Π»Π°ΠΆΠ΅Π½ΠΎ, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… автоматичСских ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…:

 $_
$Аргс
$Π’Π²ΠΎΠ΄
$MyInvocation
$PSBoundParameters
 

Если Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ любой ΠΈΠ· этих ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ эта пСрСмСнная для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ, Π° Π½Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ пСрСмСнная Π² скриптС.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этих ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… для ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ скрипта, Π² скрипт, присвойтС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ автоматичСской ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½ΠΎΠ²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

НапримСр,

 $scriptArgs = $Args
$scriptArgs
 

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π² этом Ρ€Π°Π·Π΄Π΅Π»Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $MyInvocation Ρ€Π°Π²Π½ΠΎ пСрСназначаСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

 $scriptname = $MyInvocation.MyCommand.Path
 

Π‘Ρ€Π΅Π΄Π° ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°

ΠŸΡ€ΠΈ достиТСнии Ρ‚ΠΎΡ‡ΠΊΠΈ останова Π²Ρ‹ Π²Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π² срСду ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°. Команда Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ измСнСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Π»ΠΈΡΡŒ с «[DBG]:».

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΎ настройкС подсказки см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ about_Prompts.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… хост-прилоТСниях, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ консоль PowerShell (Π½ΠΎ Π½Π΅ Π² Windows PowerShell Integrated Scripting Environment [ISE]), влоТСнная подсказка открываСтся для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ подсказку ΠΏΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰Π΅ΠΌΡƒΡΡ символов большС (ASCII 62), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС.

НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² PowerShell консоль:

 [DBG]: PS (get-location)>>>
 

Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ влоТСнности ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ $NestedPromptLevel автоматичСского пСрСмСнная.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² локальном объСм. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ $PsDebugContext для опрСдСлСния Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π»ΠΈ Π²Ρ‹ Π² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ΅.

НапримСр:

 if ($PSDebugContext) {"ΠžΡ‚Π»Π°Π΄ΠΊΠ°"} else {"НС ΠΎΡ‚Π»Π°Π΄ΠΊΠ°"}
 

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $PSDebugContext ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅.

 [DBG]: PS>>> $PSDebugContext. InvocationInfo
Имя CommandLineParameters UnboundArguments ΠœΠ΅ΡΡ‚ΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
---- -------------------- ---------------- --------
= {} {} C:\ps-test\vote.ps1 (1)
 

ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΈ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия

Π’Π·Π»ΠΎΠΌ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° Π½Π΅ мСняСт области дСйствия, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π½ΠΎ ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ достигаСтС Ρ‚ΠΎΡ‡ΠΊΠΈ останова Π² сцСнарии, Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π² ΠΎΠ±Π»Π°ΡΡ‚ΡŒ сцСнария. ΠžΠ±Π»Π°ΡΡ‚ΡŒ сцСнария являСтся Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ запустили скрипт. ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ.

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ псСвдонимы, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² области сцСнария, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ области дСйствия ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚ΠΎΠ² Get-Alias ​​ ΠΈΠ»ΠΈ Get-Variable .

НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² локальном (скрипт) ΠΎΠ±Π»Π°ΡΡ‚ΡŒ:

 Get-Variable-scope 0
 

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΊΠ°ΠΊ:

 gv -s 0
 

Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ способ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ Π² скриптС. ΠΈ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ Π²ΠΎ врСмя ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.

ΠžΡ‚Π»Π°Π΄ΠΊΠ° Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС

Когда Π²Ρ‹ устанавливаСтС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ останова ΠΈΠ»ΠΈ Ρ‚ΠΎΡ‡ΠΊΡƒ останова ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠ° останова Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ„Π°ΠΉΠ»Π΅ скрипта. Однако ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ‚ΠΎΡ‡ΠΊΠ° останова установлСна ​​на всС, Ρ‡Ρ‚ΠΎ выполняСтся Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ сСансС.

НапримСр, Ссли ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $name , ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ прСрываСтся Π½Π° любой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $name Π² любом сцСнарии, ΠΊΠΎΠΌΠ°Π½Π΄Π΅, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚Π΅ сцСнария ΠΈΠ»ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ запускаСтС, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ Π½Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΡƒ останова.

Π­Ρ‚ΠΎ позволяСт ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ сцСнарии Π² Π±ΠΎΠ»Π΅Π΅ рСалистичном контСкстС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹ функциями, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ сцСнариями Π² сСансС ΠΈ Π² ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π’ΠΎΡ‡ΠΊΠΈ останова строки Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹ для Ρ„Π°ΠΉΠ»ΠΎΠ² скриптов, поэтому ΠΎΠ½ΠΈ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² скриптС Ρ„Π°ΠΉΠ»Ρ‹.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ

ΠŸΡ€ΠΈ установкС Ρ‚ΠΎΡ‡ΠΊΠΈ останова Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΉ Начало , ΠŸΡ€ΠΎΡ†Π΅ΡΡ ΠΈ ΠšΠΎΠ½Π΅Ρ† Ρ€Π°Π·Π΄Π΅Π»Ρ‹, ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ прСрываСтся Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π°.

НапримСр:

 function test-cmdlet {
    Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ {
        запись-Π²Ρ‹Π²ΠΎΠ΄ "Начало"
    }
    процСсс {
        запись-Π²Ρ‹Π²ΠΎΠ΄ "ΠŸΡ€ΠΎΡ†Π΅ΡΡ"
    }
    ΠΊΠΎΠ½Π΅Ρ† {
        запись-Π²Ρ‹Π²ΠΎΠ΄ "ΠšΠΎΠ½Π΅Ρ†"
    }
}
C:\PS> Set-PSBreakpoint -ΠΊΠΎΠΌΠ°Π½Π΄Π° test-cmdlet
C:\PS> тСстовый ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚
ΠΠ°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ
Π’Ρ…ΠΎΠ΄ Π² Ρ€Π΅ΠΆΠΈΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.  Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‡ ΠΈΠ»ΠΈ ? для ΠΏΠΎΠΌΠΎΡ‰ΠΈ.
НаТмитС Ρ‚ΠΎΡ‡ΠΊΡƒ останова ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π° Β«ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅: тСст-ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚Β»
тСстовый ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚
[DBG]: C:\PS> c
ΠŸΡ€ΠΎΡ†Π΅ΡΡ
Π’Ρ…ΠΎΠ΄ Π² Ρ€Π΅ΠΆΠΈΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‡ ΠΈΠ»ΠΈ ? для ΠΏΠΎΠΌΠΎΡ‰ΠΈ.
НаТмитС Ρ‚ΠΎΡ‡ΠΊΡƒ останова ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π° Β«ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅: тСст-ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚Β»
тСстовый ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚
[DBG]: C:\PS> c
ΠšΠΎΠ½Π΅Ρ†
Π’Ρ…ΠΎΠ΄ Π² Ρ€Π΅ΠΆΠΈΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‡ ΠΈΠ»ΠΈ ? для ΠΏΠΎΠΌΠΎΡ‰ΠΈ.
НаТмитС Ρ‚ΠΎΡ‡ΠΊΡƒ останова ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π° Β«ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅: тСст-ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚Β»
тСстовый ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚
# [Π”Π‘Π“]: C:\PS>
 

ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… сцСнариСв

Начиная с PowerShell 5.0, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ PowerShell Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ сСанс Π»ΠΈΠ±ΠΎ Π² консоли, Π»ΠΈΠ±ΠΎ Π² Windows PowerShell ISE. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Enter-PSSession Π±Ρ‹Π»Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΈ Π²ΠΎΠΉΡ‚ΠΈ Π² ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΉ сСанс, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, ΠΈ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ скрипт. Если Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ скрипт достигаСт Ρ‚ΠΎΡ‡ΠΊΠΈ останова, ваш клиСнтский сСанс автоматичСски запускаСт ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, с Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ останова, установлСнными Π² скрипт Π² строках 6, 11, 22 ΠΈ 25. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΊΠΎΠ³Π΄Π° запустится ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ, появятся Π΄Π²Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ подсказки: имя ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π°ΠΏΡƒΡ‰Π΅Π½ сСанс, ΠΈ подсказка DBG, которая сообщаСт, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π² Ρ€Π΅ΠΆΠΈΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.

 Enter-Pssession -Cn Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ хост
[localhost]: PS C:\psscripts> Set-PSBreakpoint .\ttest19.ps1 6,11,22,25
ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ строки сцСнария ID ДСйствиС
-- ------ ---- ------- -------- ------
0 ttest19.ps1 6
1 ttest19.ps1 11
2 ttest19.ps1 22
3 ttest19.ps1 25
[localhost]: PS C:\psscripts> .\ttest19.ps1
НаТмитС Ρ‚ΠΎΡ‡ΠΊΡƒ останова строки Π½Π° Β«C:\psscripts\ttest19.ps1:11Β»
Π’ C:\psscripts\ttest19.ps1:11 символ:1
+ $winRMName = "WinRM"
# + ~
[localhost]: [DBG]: PS C:\psscripts>> список
6:1..5 | foreach { ΡΠΏΠ°Ρ‚ΡŒ 1; Π—Π°ΠΏΠΈΡΡŒ-Π²Ρ‹Π²ΠΎΠ΄ "hello2day $_" }
7: }
β„– 8:
9: $количСство = 10
10: $psName = "PowerShell"
11:* $winRMName = "WinRM"
12: $myVar = 102
β„– 13:
14: for ($i=0; $i -lt $count; $i++)
15: {
16: ΡΠΏΠ°Ρ‚ΡŒ 1
17: Π—Π°ΠΏΠΈΡΡŒ-Π²Ρ‹Π²ΠΎΠ΄ Β«Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΡ Ρ†ΠΈΠΊΠ»Π°: $iΒ»
18: Π—Π°ΠΏΠΈΡΡŒ-Π²Ρ‹Π²ΠΎΠ΄ "MyVar is $myVar"
β„– 19:
20: ΠΏΡ€ΠΈΠ²Π΅Ρ‚2дСнь
β„– 21:
[localhost]: [DBG]: PS C:\psscripts>> ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄
Π’ C:\psscripts\ttest19. ps1:12 символ:1
+ $myVar = 102
# + ~
[localhost]: [DBG]: PS C:\psscripts>> Π²Ρ‹ΠΉΡ‚ΠΈ
[localhost]: PS C:\psscripts> Exit-PSSession
PS C:\psscripts>
 

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

Π­Ρ‚ΠΎΡ‚ тСстовый сцСнарий опрСдСляСт Π²Π΅Ρ€ΡΠΈΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ систСмноС сообщСниС. Он Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ пСрСмСнная.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ содСрТимоС Ρ„Π°ΠΉΠ»Π° тСстового сцСнария:

 PS C:\PS-test> Get-Content test.ps1
функция PSвСрсия {
  "PowerShell" + $PSVersionTable.PSVersion
  Ссли ($PSVersionTable.PSVersion.Major -lt 6) {
    Β«ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ Π΄ΠΎ PowerShell 6.0!Β»
  }
  Π΅Ρ‰Π΅ {
    Β«Π’Ρ‹ запускали Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ сСгодня (Π½Π°Ρ‡Π°Π»ΠΎ задания)?Β»
  }
}
$scriptName = $MyInvocation.MyCommand.Path
PSвСрсия
"Π“ΠΎΡ‚ΠΎΠ²ΠΎ $scriptName."
 

Для Π½Π°Ρ‡Π°Π»Π° установитС Ρ‚ΠΎΡ‡ΠΊΡƒ останова Π² ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ скрипта, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ строку, ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ.

НачнитС с создания Ρ‚ΠΎΡ‡ΠΊΠΈ останова Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС сцСнария Test.ps1 Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³.

 PS C:\ps-test> Set-PSBreakpoint -line 1 -script test. ps1
 

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΊΠ°ΠΊ:

 PS C:\ps-test> spb 1 -s test.ps1
 

Команда Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ прСрывания строки ( System.Management.Automation.LineBreakpoint ).

 Π‘Ρ‚ΠΎΠ»Π±Π΅Ρ†: 0
Линия 1
ДСйствиС     :
Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ: ΠΏΡ€Π°Π²Π΄Π°
ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠΉ : 0
Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€: 0
Π‘ΠΊΡ€ΠΈΠΏΡ‚: C:\ps-test\test.ps1
Имя сцСнария : C:\ps-test\test.ps1
 

Π’Π΅ΠΏΠ΅Ρ€ΡŒ запуститС скрипт.

 PS C:\ps-test> .\test.ps1
 

Когда сцСнарий достигаСт ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ останова, сообщСниС ΠΎ Ρ‚ΠΎΡ‡ΠΊΠ΅ останова ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Π°ΠΊΡ‚ΠΈΠ²Π΅Π½. Он описываСт Ρ‚ΠΎΡ‡ΠΊΡƒ останова ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ просматриваСт ΠΏΠ΅Ρ€Π²ΡƒΡŽ строка скрипта, которая являСтся объявлСниСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Командная строка Ρ‚Π°ΠΊΠΆΠ΅ измСняСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ ΠΈΠΌΠ΅Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅.

Π‘Ρ‚Ρ€ΠΎΠΊΠ° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ просмотра Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ имя сцСнария ΠΈ Π½ΠΎΠΌΠ΅Ρ€ строки просматриваСмого ΠΊΠΎΠΌΠ°Π½Π΄Π°.

 Π’Ρ…ΠΎΠ΄ Π² Ρ€Π΅ΠΆΠΈΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‡ ΠΈΠ»ΠΈ ? для ΠΏΠΎΠΌΠΎΡ‰ΠΈ.
НаТмитС Ρ‚ΠΎΡ‡ΠΊΡƒ останова строки Π½Π° Β«C:\ps-test\test. ps1:1Β»
test.ps1:1 функция psversion {
# Π”Π‘Π“>
 

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠΎΡˆΠ°Π³ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ (ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹) для выполнСния ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π² сцСнарии ΠΈ для ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ просмотр ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ утвСрТдСния. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ $MyInvocation автоматичСская пСрСмСнная для установки значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $scriptName Π½Π° ΠΏΡƒΡ‚ΡŒ ΠΈ имя Ρ„Π°ΠΉΠ»Π° сцСнария.

 Π”Π‘Π“> с
test.ps1:11 $scriptName = $MyInvocation.MyCommand.Path
 

На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ пСрСмСнная $scriptName Π½Π΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π°, Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, отобраТая Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π’ этом случаС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ $Π½ΡƒΠ»ΡŒ .

 Π‘Π”> $имя_сцСнария
# Π”Π‘Π“>
 

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΏΠΎΡˆΠ°Π³ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ (ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹) для выполнСния Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ просмотра ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π² сцСнарии. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ PsVersion функция.

 Π”Π‘Π“> с
test.ps1:12 psвСрсия
 

Π’ этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ пСрСмСнная $scriptName Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π°, Π½ΠΎ Π²Ρ‹ провСряСтС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, отобраТая Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π’ этом случаС устанавливаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊ ΠΏΡƒΡ‚ΠΈ сцСнария.

 Π‘Π”> $scriptName
C:\ps-тСст\test.ps1
 

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΏΠΎΡˆΠ°Π³ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ для выполнСния Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. НаТмитС ENTER ΠΈΠ»ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ «s» для шага.

 Π”Π‘Π“> с
test.ps1:2 "PowerShell" + $PSVersionTable.PSVersion
 

ΠžΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠ΅ сообщСниС содСрТит ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ просмотр инструкции Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. К Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ этот ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Команда шага . Но Π² этом случаС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ StepOut (o). Π­Ρ‚ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Ссли ΠΎΠ½Π° Π½Π΅ достигаСт Ρ‚ΠΎΡ‡ΠΊΠΈ останова) ΠΈ шагов ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ Π² сцСнарии.

 Π”Π‘Π“> ΠΎ
Windows PowerShell 2.0
Запускали Π»ΠΈ Π²Ρ‹ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ сСгодня (стартовоС Π·Π°Π΄Π°Π½ΠΈΠ΅)?
test.ps1:13 "Π“ΠΎΡ‚ΠΎΠ²ΠΎ $scriptName"
 

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ находимся Π½Π° послСднСм ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ сцСнария, шаги Step, StepOut ΠΈ ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ продолТСния ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ эффСкт. Π’ этом случаС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ StepOut (o).

 Π“ΠΎΡ‚ΠΎΠ²ΠΎ C:\ps-test\test. ps1
PS C:\ps-тСст>
 

Команда StepOut выполняСт послСднюю ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ. Бтандартная командная строка ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ» Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈ Π²Π΅Ρ€Π½ΡƒΠ» ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ процСссор.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ снова запуститС ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ останова, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠšΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚Ρ‹ Get-PsBreakpoint ΠΈ Remove-PsBreakpoint . (Если Π²Ρ‹ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚ Disable-PsBreakpoint вмСсто Remove-PsBreakpoint .)

 PS C:\ps-test> Get-PSBreakpoint| Remove-PSBreakpoint
 

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΊΠ°ΠΊ:

 PS C:\ps-test> gbp | Ρ€Π±ΠΏ
 

Или запуститС ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, написав Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ функция:

 функция delbr { gbp | Ρ€Π±ΠΏ }
 

Π’Π΅ΠΏΠ΅Ρ€ΡŒ создайтС Ρ‚ΠΎΡ‡ΠΊΡƒ останова для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $scriptname .

 PS C:\ps-test> Set-PSBreakpoint -variable scriptname -script test.ps1
 

ΠšΠΎΠΌΠ°Π½Π΄Ρƒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

 PS C:\ps-test> sbp -v scriptname -s test. ps1
 

Π’Π΅ΠΏΠ΅Ρ€ΡŒ запуститС сцСнарий. Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ достигаСт ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ останова. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ€Π΅ΠΆΠΈΠΌ записи, поэтому Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ останавливаСтся нСпосрСдствСнно ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ измСняСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

 PS C:\ps-test> .\test.ps1
НаТмитС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ останова Π½Π° Β«C:\ps-test\test.ps1:$scriptNameΒ»
(доступ для записи)
test.ps1:11 $scriptName = $MyInvocation.MyCommand.Path
# Π”Π‘Π“>
 

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $scriptName , Ρ€Π°Π²Π½ΠΎΠ΅ $null .

 Π‘Π”> $scriptName
# Π”Π‘Π“>
 

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠΎΡˆΠ°Π³ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ (ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹) для выполнСния инструкции, Π·Π°ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π΅ΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ. Π—Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚Π΅ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $scriptName .

 Π‘Π”> $scriptName
C:\ps-тСст\test.ps1
``PowerShell
Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠΎΡˆΠ°Π³ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ (ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹) для ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ просмотра ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π² сцСнарии.
``PowerShell
Π”Π‘Π“> с
test.ps1:12 psвСрсия
 

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ являСтся Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ PsVersion. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π½ΠΎ всС ΠΆΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ StepOver (v). Если Π²Ρ‹ ΡƒΠΆΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π² функция ΠΏΡ€ΠΈ использовании StepOver Π½Π΅ эффСктивна. Π’Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ отобраТаСтся, Π½ΠΎ Π½Π΅ выполняСтся.

 Π”Π‘Π“> v
Windows PowerShell 2.0
Запускали Π»ΠΈ Π²Ρ‹ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ сСгодня (стартовоС Π·Π°Π΄Π°Π½ΠΈΠ΅)?
test.ps1:13 "Π“ΠΎΡ‚ΠΎΠ²ΠΎ $scriptName"
 

Команда StepOver выполняСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ просматриваСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Π² скриптС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ послСднюю строку.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Stop (t) для Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°. Командная строка возвращаСтся ΠΊ стандартная командная строка.

 C:\ps-тСст>
 

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ останова, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Get-PsBreakpoint ΠΈ Remove-PsBreakpoint ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚Ρ‹.

 PS C:\ps-test> Get-PSBreakpoint| Remove-PSBreakpoint
 

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ останова ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ PsVersion.

 PS C:\ps-test> Set-PSBreakpoint -command psversion -script test.ps1
 

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π΄ΠΎ:

 PS C:\ps-test> sbp -c psversion -s test.ps1
 

Π’Π΅ΠΏΠ΅Ρ€ΡŒ запуститС скрипт.

 PS C:\ps-test> .\test.ps1
НаТмитС Ρ‚ΠΎΡ‡ΠΊΡƒ останова ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π° Β«C:\ps-test\test.ps1:psversionΒ»
test.ps1:12 psвСрсия
# Π”Π‘Π“>
 

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ достигаСт Ρ‚ΠΎΡ‡ΠΊΠΈ останова ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’ этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ функция Π΅Ρ‰Π΅ Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π»Π°ΡΡŒ. Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ дСйствия Set-PSBreakpoint для установки условий выполнСния Ρ‚ΠΎΡ‡ΠΊΠΈ останова ΠΈΠ»ΠΈ для выполнСния ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ»ΠΈ диагностичСских Π·Π°Π΄Π°Ρ‡, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ запуск ΠΆΡƒΡ€Π½Π°Π» ΠΈΠ»ΠΈ Π²Ρ‹Π·ΠΎΠ² сцСнария диагностики ΠΈΠ»ΠΈ бСзопасности.

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π΄Π°Ρ‚ΡŒ дСйствиС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β«ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒΒ» (c) для Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· сцСнария, Π° Команда Remove-PsBreakpoint для удалСния Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ останова. (ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния, поэтому Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ дСйствиС ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ останова.)

 Π”Π‘Π“> с
Windows PowerShell 2.0
Запускали Π»ΠΈ Π²Ρ‹ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ сСгодня (стартовоС Π·Π°Π΄Π°Π½ΠΈΠ΅)?
Π“ΠΎΡ‚ΠΎΠ²ΠΎ C:\ps-test\test.ps1
PS C:\ps-test> Get-PSBreakpoint| Remove-PSBreakpoint
PS C:\ps-тСст>
 

Π’Π΅ΠΏΠ΅Ρ€ΡŒ создайтС Π½ΠΎΠ²ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ останова ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ с дСйствиСм. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ Ρ‚ΠΎΡ‡ΠΊΠ° останова ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ с дСйствиСм, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ рСгистрируСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ $scriptName пСрСмСнная ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Break Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² дСйствиС, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ останавливаСтся. (обратная Π³Π°Π»ΠΎΡ‡ΠΊΠ° ( ` ) являСтся символ продолТСния строки.)

 PS C:\ps-test> Set-PSBreakpoint -command psversion -script test.ps1 `
-action { add-content "Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ `$scriptName Ρ€Π°Π²Π½ΠΎ $scriptName." `
-path action.log}
 

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ дСйствия, ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ условия для Ρ‚ΠΎΡ‡ΠΊΠΈ останова. Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Ρ‚ΠΎΡ‡ΠΊΠ° останова ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ выполняСтся, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ установлСна ​​политика RemoteSigned, самая ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°, которая ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Π²Π°ΠΌ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ скрипты. (обратная Π³Π°Π»ΠΎΡ‡ΠΊΠ° ( ` ) являСтся символом продолТСния.)

 PS C:\ps-test> Set-PSBreakpoint -script test.ps1 -command psversion `
-action { if ((Get-ExecutionPolicy) -eq "RemoteSigned") { break }}
 

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Break Π² дСйствии ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΡƒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Continue, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π±Π΅Π· Π»ΠΎΠΌΠ°Ρ‚ΡŒ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ β€” Β«ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒΒ», Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Β«Π Π°Π·Ρ€Ρ‹Π²Β», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ запуститС скрипт.

 PS C:\ps-test> .\test.ps1
НаТмитС Ρ‚ΠΎΡ‡ΠΊΡƒ останова ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π° Β«C:\ps-test\test.ps1:psversionΒ»
test.ps1:12 psвСрсия
 

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ для ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ выполнСния Π·Π°Π΄Π°Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ RemoteSigned , Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ останавливаСтся Π² Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π’ этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ стСк Π²Ρ‹Π·ΠΎΠ²ΠΎΠ². Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠšΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚ Get-PsCallStack ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° Get-PsCallStack (k). ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ стСк Π²Ρ‹Π·ΠΎΠ²ΠΎΠ².

 Π”Π‘Π“> ΠΊ
2: подсказка
1: .\test.ps1: $args=[]
0: подсказка: $args=[]
 

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ лишь Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΈΡ… способов использования PowerShell. ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ.

Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… свСдСний ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚Π°Ρ… ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

 help <имя-ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ‚Π°> -full
 

НапримСр, Π²Π²Π΅Π΄ΠΈΡ‚Π΅:

 help Set-PSBreakpoint -full
 

Π”Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π² PowerShell

Помимо ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° PowerShell, PowerShell Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ нСсколько Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ скриптов ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *