Top.Mail.Ru
Ответы

Работа с переменными в PowerShell

Те кто умеет работать с PowerShell, помогите,
как выполнить определенную задачу в переменной PowerShell и сохранить в этой переменной выведенные данные для дальнейшего использования?

Вот пример моего скрипта как я его сделал, но он так не работает:
$password = C:\Users\Administrator\Desktop\AIM_Address.bat;
$Username = C:\Users\Administrator\Desktop\AIM_username.bat;
$password = C:\Users\Administrator\Desktop\AIM_Password.bat;
$SSMS = C:\Users\Administrator\Desktop\SSMS.bat;
$SSMS

В первом действии открывается батник в котором вот такой скрипт:

"C:\Program Files (x86)\CyberArk\ApplicationPasswordSdk\CLIPasswordSDK.exe" GetPassword /p AppDescs.AppID=PresentationAAM /p Query="Safe=Presentation;Folder=root;Object=DBAdmin01" /o PassProps.Address

Это такой себе скрипт для получения данных с файла который хранится на сервере. Если его выполнить то он выдаст значение адреса которое хранится в файле на сервере (пример на скриншоте 1), точно такие же скрипты на вывод имени и пароля (переменные Username и Password)

В последней переменной я открываю скрипт SSMS.bat, вот его значение:
"C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\ManagementStudio\Ssms.exe" -S $address -U $username -P $password

Это команда открытия SQL Managment Studio с указными данными, как видно я хочу в флаг -S подставить переменную $address и т. д. но в итоге у меня подставляются не переменные а просто вставляются слова $address, $username и $password (скрин 2).

Подскажите пожалуйста как можно реализовать мою задачу с запуском SQL Managment Studio с параметрами полученными с сервера

Спасибо

По дате
По рейтингу
Аватар пользователя
Новичок
6лет

Может это поможет.
Переменные в PowerShell
https://riptutorial.com/ru/powershell/topic/3457/переменные-в-powershell

Аватар пользователя
Гений
6лет

Зачем вызывать bat-файлы из PowerShell? Пиши всё на PowerShell.
bat-файл можно запустить так:
$password = cmd /c C:\Users\Administrator\Desktop\AIM_Address.bat
но лучше сделать так:
$password = "C:\Program Files (x86)\CyberArk\ApplicationPasswordSdk\CLIPasswordSDK.exe" GetPassword /p AppDescs.AppID=PresentationAAM /p Query="Safe=Presentation;Folder=root;Object=DBAdmin01" /o PassProps.Address