Можете ли вы использовать скрипт powershell для создания сценария powershell? - PullRequest
0 голосов
/ 27 марта 2019

Так что это может быть странный запрос, и, возможно, я все делаю неправильно, но у меня также есть уникальная ситуация. У меня есть серверы, которые иногда клонируются, и мне нужно запустить скрипт, который я создал на серверах клонов. Из-за природы клонов они не могут быть подключены к сети.

В настоящее время я вручную размещаю общий сценарий на каждом сервере перед клонированием, а затем запускаю сценарий на сервере-клоне.

То, что я хотел бы сделать, - это запустить скрипт, который собирает и собирает всю информацию, например, установленные программы, и генерировать пользовательскую версию моего текущего скрипта на серверах перед их клонированием.

У меня есть и сценарий powershell, который получает информацию о сервере, и общий сценарий, который вносит изменения в клон, но я не нашел способа объединить два или любую документацию, поэтому я не знаю, поражаю ли я ограничение с этим.

Изменить для более подробного объяснения и примеров. Я делаю это с моего телефона, поэтому у меня нет примера, который я могу опубликовать.

В настоящее время у меня есть скрипт, который имеет установленное количество приложений для удаления, ключи реестра для удаления, службы для остановки и т. Д. В другом приложении у меня есть список всего программного обеспечения, которое у нас есть для каждого сервера, и я могу получить эти данные для каждого сервера. Что мне нужно сделать, это получить данные для каждого сервера и разместить скрипт на каждом сервере, который будет удалять только программы для этого сервера.

В настоящее время сценарий должен пройти через все потенциальные программы и попытаться удалить его, а затем проверить другое приложение, чтобы узнать, есть ли какие-либо дополнительные программы, которые необходимо удалить.

Надеюсь, эта дополнительная информация поможет.

Спасибо.

1 Ответ

1 голос
/ 27 марта 2019

Перестаньте думать об этом как о коде.

Используйте скрипт 1 для экспорта блоков текста в новый файл.например, у вас может быть конфигурация, которая говорит, что на всех серверах Dell должна быть запущена эта строка кода:

Set-DELL -attribute1 unmanaged

, где на HP сценарий был бы

Set-HP -attribute1 unmanaged

в Интернетесерверы, вы хотите:

set-web -active yes

где, если не веб-сервер, вы ничего не хотите .. так, ваш код родительского скрипта будет выглядеть так:

$Dell = "Set-DELL -attribute1 unmanaged"
$HP = "Set-HP -attribute1 unmanaged"
$web = "set-web -active yes"

if (Get-servermake -eq "Dell")
{
    $dell | out-file Child.ps1 -append
}

if (Get-servermake -eq "HP")
{
    $HP | out-file Child.ps1 -append
}

if (Get-webserver -eq $true)
{
    $web | out-file Child.ps1 -append
}

В результате пользовательскийскрипт для конкретного сервера child.ps1.

Теперь вы можете взять его и запустить с ним.Вы могли бы сказать, добавить функциональность к дочернему сценарию, как «Это контроллер AD» и т. Д.

Однако вам может быть лучше иметь все это в одном сценарии, и просто заблокировать разделы, которые ненапример, в заявлении if.

Я все еще не совсем уверен, что понимаю, о чем вы спрашиваете.Если я пропустил отметку, скажи мне, как, и я скажу тебе, как это лучше настроить.(И, надеюсь, очевидно, что Get-what - это пример кода. Я не ожидаю, что это будет то, что вы используете для определения компьютера / модели / etc)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...