`StrictMode` — это специальный режим в PowerShell, который усиливает проверку кода и помогает находить ошибки, которые могли бы остаться незамеченными в обычном режиме.

Команда Описание
`Set-StrictMode -Version Latest` Включает строгий режим с самой последней версией
`Set-StrictMode -Version 2.0` Включает режим с указанной версией (1.0, 2.0, 3.0, 4.0, 5.0)
`Set-StrictMode -Off` Отключает строгий режим
Поведение Без StrictMode С StrictMode
Обращение к необъявленной переменной Возвращает `$null` Ошибка
Неинициализированные свойства/поля Работает Ошибка
Ошибки типов данных Часто молча проходит Ошибка
Ссылки на переменные в скриптоблоках Могут игнорироваться Ошибка
Присваивание значения `readonly`-свойствам Часто проходит Ошибка

Пример, вызывающий ошибки в StrictMode:

Set-StrictMode -Version Latest
 
$x += 1      # Ошибка: переменная не инициализирована
 
$hash = @{}
$val = $hash.NotExists   # Ошибка: такого ключа нет
 
$readonly = "abc"
$readonly.Length = 5     # Ошибка: нельзя присвоить значение свойству только для чтения

Включайте StrictMode в производственном коде и функциях

Используйте Set-StrictMode -Version Latest — он включает все последние проверки

В скриптах с логированием и параметрами StrictMode помогает избежать трудноуловимых багов