none
Передача параметров в скрипт RRS feed

  • Вопрос

  • Добрый день! Помогите разобраться..

    Имеем несколько скриптов 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: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»

     

    Посмотрите тут пример.

     


    Если сообщение было информативным, отметьте его как правильный ответ. Сразу видно ответ на вопрос :-)
    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: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.com
    6 апреля 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