Использование StrictMode в PowerShell
`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 | С 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 помогает избежать трудноуловимых багов