Лучший отвечающий
Передача параметров в скрипт

Вопрос
-
Добрый день! Помогите разобраться..
Имеем несколько скриптов Powershell, работающие с SQL сервером и запускаемые через планировщик. Возможно, что количество их (скриптов) увеличится. В каждом скрипте имеются переменные для подключения к SQL серверу. Соответственно, при изменениях самого SQL сервера (например, переехал на другой хост) эти переменные надо менять. Есть ли возможность в Powershell применять параметры запуска скрипта из какого-нибудь конфигурационного файла, что-то типа ini файла. Поменял переменные в конфиг-файле - они применились для всех скриптов.. Возможно?
6 апреля 2010 г. 5:11
Ответы
-
Или вы хотите прям засасывать из файла ?
ну тогда используйте текстовый файл для хранения настроек.
А данные затягивайте через Get-Content
текстовый файл:
параметр1
параметр2
параметр3
в скрипте:
$Temp =Get-content c:\parm.txt
$param1 = $temp[0]
$param2 = $temp[1]
$param3 = $temp[2]
Если сообщение было информативным, отметьте его как правильный ответ. Сразу видно ответ на вопрос :-)- Помечено в качестве ответа Дугин Сергей 6 апреля 2010 г. 6:12
6 апреля 2010 г. 6:01
Все ответы
-
легко, в перую строчку вашего скрипта добавьте
param ( $TargetGroup = "G_VPN_Users", $TargetShare ="\\srv015\pub", $TargetMapDisk = "i:", $username="bakanov", $pass)
Вызывать можно будет так:
Check-UserMemberGroup.ps1 «G_VPN_Users» «\\srv015\pub» «i:» «bakanov» «password_for_user»
Посмотрите тут пример.
Если сообщение было информативным, отметьте его как правильный ответ. Сразу видно ответ на вопрос :-)- Изменено Bakanov Denis 6 апреля 2010 г. 6:01
6 апреля 2010 г. 5:44 -
Вызывать можно будет так:
Check-UserMemberGroup.ps1 «G_VPN_Users» «\\srv015\pub» «i:» «bakanov» «password_for_user»
Соответственно, нужно будет поправить передачу параметров во всех вызовах скриптов. А если их 20 штук?
Цель немного иная - поменяв все параметры в одном конфигурационном файле - применить их ко всем скриптам. Это похоже даже не на переменные, а на некие константы, которые необходимо задать для всех скриптов..
6 апреля 2010 г. 5:54 -
Или вы хотите прям засасывать из файла ?
ну тогда используйте текстовый файл для хранения настроек.
А данные затягивайте через Get-Content
текстовый файл:
параметр1
параметр2
параметр3
в скрипте:
$Temp =Get-content c:\parm.txt
$param1 = $temp[0]
$param2 = $temp[1]
$param3 = $temp[2]
Если сообщение было информативным, отметьте его как правильный ответ. Сразу видно ответ на вопрос :-)- Помечено в качестве ответа Дугин Сергей 6 апреля 2010 г. 6:12
6 апреля 2010 г. 6:01 -
А данные затягивайте через Get-Content
Так и делаю сейчас. Думал, может как через param можно...6 апреля 2010 г. 6:12 -
А данные затягивайте через Get-Content
Так и делаю сейчас. Думал, может как через param можно...6 апреля 2010 г. 6:12 -
Можно еще в профиле прописать...
AKA Xaegr, MCSE: Security, Messaging; MCITP: Server\Enterprise Administrator; Блог: http://xaegr.wordpress.com6 апреля 2010 г. 6:54Модератор -
А подробнее про профили можно?6 апреля 2010 г. 7:00
-
man about_Profiles
AKA Xaegr, MCSE: Security, Messaging; MCITP: Server\Enterprise Administrator; Блог: http://xaegr.wordpress.com- Предложено в качестве ответа Angel-Keeper 7 апреля 2010 г. 2:06
6 апреля 2010 г. 7:12Модератор -
Все то, что вам посоветовал Bakanov Denis пропишите в файле профиля Microsoft.PowerShell_profile.ps1
- Предложено в качестве ответа Angel-Keeper 7 апреля 2010 г. 2:06
7 апреля 2010 г. 2:06 -
Ну можно и непосредстввенно профиль использовать в качестве конфига.
AKA Xaegr, MCSE: Security, Messaging; MCITP: Server\Enterprise Administrator; Блог: http://xaegr.wordpress.com- Предложено в качестве ответа Angel-Keeper 8 апреля 2010 г. 0:11
7 апреля 2010 г. 5:54Модератор -
Можно, но я делал именно в отдельный файл, ну что б портировать было проще, при необходимости.
Если сообщение было информативным, отметьте его как правильный ответ. Сразу видно ответ на вопрос :-)7 апреля 2010 г. 7:11