Следующий код работает должным образом в PowerShell 5.1:
function Get-Say([String] $Message, [String] $Voice = "Microsoft Irina Desktop") {
Add-Type -AssemblyName System.speech
$speak = New-Object System.Speech.Synthesis.SpeechSynthesizer
$speak.SelectVoice($Voice)
$speak.Speak($Message)
}
Однако в PowerShell 7.1.0 (предварительная версия 5) выполнение завершается с ошибкой «ссылка на объект не установлена на экземпляр объекта» и I ' м действительно потеряно. Поиск в Google не очень помогает, поскольку похоже, что с этой ошибкой можно столкнуться в совершенно другом контексте. Итак, эксперты PowerShell, вопрос к вам, как это исправить.
введите описание изображения здесь
Я пытался объявить params внутри body (object reference not set to an instance of an object
) в слабой надежде, что может быть какая-то разница в semanti c, но это не помогло.