PowerShell - распределенное решение
Я новичок в PS, так что я могу неправильно понять некоторые термины.
Если вы хотите развернуть пользовательскую среду PowerShell (оснастку) для команды из 30 разработчиков / администраторов баз данных. Каков наилучший способ сделать это... если вы собираетесь внедрять новые функции раз в неделю? Помогает ли PowerShell 2.0 в этом отношении?
Предположение:
Нет проблем со всеми в команде, устанавливающей PowerShell (v1 или v2)
Обновление: также см. Ответ Джеффри Сновера о v2 ниже.
3 ответа
Это будет в определенной степени зависеть от того, какие функциональные изменения вы собираетесь сделать. Для нашей среды мы запускаем довольно стандартную установку PS, а затем добавляем одну строку в профиль каждого, чтобы запустить скрипт из общей папки на сервере. Затем в этом сценарии я могу выполнить любую настройку, которую я хочу применить ко всем.
Мы добавляем строку в профиль MS для конкретной машины (в%Windir%), это был намеренный выбор. Мы делаем это таким образом, чтобы пользователи по существу получали это только на своих производственных коробках. Таким образом, когда они что-то пишут, они могут быстро войти в тестовую коробку и запустить скрипт, чтобы убедиться, что скрипт будет развернут без каких-либо зависимостей от этих настроек.
В настоящее время настройки довольно обыденные. В основном только некоторые добавленные функции и псевдонимы. У меня также есть регистратор, который я написал на C# специально для powershell, поэтому он загружает его из библиотеки DLL, которая находится в той же сетевой папке.
Потому что я так много играю со своим окружением, у меня это есть в моем профиле:)
$ProfileDir = ([System.IO.Directory]::GetParent($profile)).FullName
$localMSProfile = "$PShome\Microsoft.Powershell_profile.ps1"
$localAllProfile = "$PShome\profile.ps1"
$userAllProfile = "$ProfileDir\profile.ps1"
$userMSProfile = "$ProfileDir\Microsoft.Powershell_profile.ps1"
$allProfiles = ($localAllProfile, $localMSProfile, $userAllProfile, $userMSProfile)
Вот почему мы добавили поддержку MODULE в PowerShell V2 - это самый простой механизм для развертывания наборов функций xcopy. На данный момент документация по модулю довольно легкая, но через месяц или два она станет намного лучше.
Эксперимент! Наслаждайтесь! Engage!
Джеффри Сновер [MSFT] Архитектор-партнер по управлению Windows
Если вы выпускаете новую версию оснастки еженедельно, переключение версий, вероятно, не поможет в этой части. Тем не менее, вы будете разрабатывать на более новой платформе с преимуществами расширенной функциональности, которая поставляется вместе с ней.
Как уже предлагалось, некоторые сценарии могут облегчить развертывание до такой степени, что вам не нужно ничего делать, кроме как правильно поддерживать эти сценарии и продолжать создавать новые сборки.