Запуск скрипта самостоятельно выводит одно, а запуск его из установщика выводит другое.

Запуск скрипта самостоятельно выводит одно, а запуск его из установщика выводит другое.

Надеюсь, это не общая проблема, у меня сейчас есть задача на работе, которая ведет себя странно. У нас есть приложение (Установщик), которые управляют некоторымилетучая мышьфайлы. Ничего странного. Теперь мы хотели бы установить Sql Server Native на случай, если на машине его нет.

Поэтому мы создали скрипт, который проверяет, установлено ли программное обеспечение или нет.

param ([Parameter(Mandatory)]$softwareName, $minimumVersion) 

Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* |  Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table -AutoSize
[array]$matchingInstalledSoftware = Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Where-Object {$_.DisplayName -Like $softwareName -and $_.VersionMajor -ge $minimumVersion}

return $matchingInstalledSoftware.Count

Мы вызываем его вот так из bat-файла

powershell.exe -NoProfile -ExecutionPolicy RemoteSigned -File  checkInstalledSoftware.ps1 -softwareName "Microsoft SQL Server 2012 Native Client*"'

Вот тут-то и возникает проблема.

Если я сам запущу это на виртуальной машине, на которой установлен собственный клиент Microsoft SQL Server 2012, то выведу «1» (true)

Тот же bat, который я запускаю, запускается из нашего установщика (вызывает тот же самый bat-файл), но теперь он выводит «0» (ложь)

Это заставляет меня думать, что что-то связано с вызывающим скриптом, но я понятия не имею, что именно? Есть идеи?

Связанный контент