Форум программистов, компьютерный форум, киберфорум
Наши страницы
PowerShell
Войти
Регистрация
Восстановить пароль
 
hiddenRaum
1 / 1 / 1
Регистрация: 02.12.2009
Сообщений: 153
1

Информирование о совместимости установленной версии powershell

03.07.2019, 16:48. Просмотров 348. Ответов 4
Метки нет (Все метки)

Хочу перед выполнением скрипта выводить информацию в строку powershell о том тестировалась ли версия PS для скрипта.
Для этого создал переменную считывающую версию установленного PS:
PowerShell
1
$netver=Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -recurse | Get-ItemProperty -name Version -EA 0 | Where { $_.PSChildName -match '^(?!S)\p{L}'} | Select PSChildName, Version
Затем пытаюсь сделать проверку:
PowerShell
1
2
3
4
5
6
if ("2.1.21022", "2.0.50727.4927", "3.0.30729.4926", "3.0.4506.4926", "3.0.6920.4902", "3.5.30729.4926", "4.8.03752", "4.0.0.0" -eq $netver.Version ) {
Write-host "version .Net true" -Foregroundcolor blue  -Backgroundcolor white
} else{
$neterrcount=1
Write-host "version .Net false" -Foregroundcolor black  -Backgroundcolor red
}
Но это работает некорректно. Пробовал использовать match, like, contains скрипт выдает неверную информацию, что версии PS которая установлена на машине нет в условии. Это неверно.
Пробовал работать через такой способ:
PowerShell
1
$PSVersionTable.Version -Contains("2.1.21022", "2.0.50727.4927", "3.0.30729.4926", "3.0.4506.4926", "3.0.6920.4902", "3.5.30729.4926", "4.8.03752", "4.0.0.0")
Но метод Contains работает только если указана только одна строковая переменная. Мне же хочется добиться хоть какой-то универсальности. Чтобы можно было вписывать версии в будущем после тестирования.
Можно подсказать мне выход? Как работают с объектами в таком случае?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.07.2019, 16:48
Ответы с готовыми решениями:

вопрос о совместимости 1.0 версии на движке 1.5
доброе время суток, Ребят. скачал нужный для меня шаблон но он на версии 1.0 а движок у меня...

Как правильно обновить PowerShell до версии 3.0
Стоит Windows 7. PowerShell 2.0 Как правильно обновить PowerShell до версии 3.0 хотя бы? Дело в...

Проекты более новой версии не имеют обратной совместимости с предыдущими студиями
Добрый вечер, форумчане. Сидел на Вин8 и пользовался 12 версией (11 версией, если быть точным)...

Обсуждение кода "Определение версии установленной Java"
Собственно, код: http://www.cyberforum.ru/cmd-bat/thread671391-page7.html#post5597872 Может...

Информирование пользователей
Снова задаю здесь этот же вопрос. Снова буду мучать местных своей глупостью. В сети ничего не...

4
KDE777
1531 / 973 / 387
Регистрация: 22.01.2016
Сообщений: 2,720
03.07.2019, 17:02 2
Цитата Сообщение от hiddenRaum Посмотреть сообщение
Информирование о совместимости установленной версии powershell
Это читали - About Requires?
0
hiddenRaum
1 / 1 / 1
Регистрация: 02.12.2009
Сообщений: 153
03.07.2019, 17:06  [ТС] 3
Нет, был не знаком с эти оператором.
Не хотелось бы запрещать выполнение скрипта. Лучше перед его выполнением проинформировать, что скрипт не тестировался и пусть отработает.
У меня не критичный для работы ОС сбор информации о установленных программах. Информирование может дать понять почему например не попали какие-то программы в выборку.
0
KDE777
1531 / 973 / 387
Регистрация: 22.01.2016
Сообщений: 2,720
03.07.2019, 17:11 4
Цитата Сообщение от hiddenRaum Посмотреть сообщение
Пробовал работать через такой способ:

PowerShell
1
$PSVersionTable.Version -Contains("2.1.21022", "2.0.50727.4927", "3.0.30729.4926", "3.0.4506.4926", "3.0.6920.4902", "3.5.30729.4926", "4.8.03752", "4.0.0.0")
Верно будет вот так:

PowerShell
1
"2.1.21022","2.0.50727.4927","3.0.30729.4926","3.0.4506.4926","3.0.6920.4902","3.5.30729.4926","4.8.03752","4.0.0.0","5.1.14409.1018" -contains $PSVersionTable.PSVersion.ToString()
0
hiddenRaum
1 / 1 / 1
Регистрация: 02.12.2009
Сообщений: 153
03.07.2019, 17:19  [ТС] 5
Да, это сработало.
Огромное спасибо!
Я уже нос повесил
0
03.07.2019, 17:19
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.07.2019, 17:19

Операция в потоке и информирование об окончании
Имеется форма, где при нажатии кнопки запускается метод класса, который подтормаживает работу...

Информирование о неудачном исполнении команды
Есть cmd файл качающий по SSH данные через программу PSCP. Этот файл запускается по расписанию...

Информирование поисковиков о новом материале
Здравствуйте! Я делаю сайт на Ucoz.После того,как он будет добавлен в поисковики, будет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru