Главная

Thursday, 7 December 2017

PowerShell и MS SCCM.

Всем привет.

Сегодня соединяем два мощных инструмента для сетевого администратора: PowerShell и MS SCCM.


Оказывается начиная с версии 3.0 PowerShell позволяет управлять ресурсами сети через MS SCCM. И я не преминул воспользоваться такой возможностью.


Для начала надо импортировать модуль из файла ConfigurationManager.psd1, который находится в папке консоли MS SCCM. Запускаем консоль PowerShell.

Переходим в папку консоли Microsoft Configuration Manager:
PS C :\> cd "C:\Program Files(x86)\Microsoft Configuration Manager\AdminConsole\bin"


Импортируем модуль для ConfigurationManаger:
PS C :\> Import-Module .\ConfigurationManager.psd1


Если все пройдет хорошо, то вы не получите никаких сообщений.


После этого мы имеем два способа подключения к сайту MS SCCM. Либо через консоль MS SCCM,
 
либо напрямую через PowerShell ISE.


В обоих случаях подгружается следующий авто-скрипт входа:

-------------------------------------------------
# Нажмите клавишу F5, чтобы запустить скрипт. При запуске скрипт загрузит модуль ConfigurationManager для Windows PowerShell и подключит его к сайту.
#
# Этот скрипт был автоматически создан "21.11.2017 17:26:48".
# Раскомментируйте строку ниже, если скрипт запущен в среде, которая требует подписать
# скрипт.
#Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
# Конфигурация сайта
$SiteCode = "PRM" # Код сайта
$ProviderMachineName = "sccmprm1.skyfleet.com.ua" # Имя компьютера поставщика SMS
# Настройки
$initParams = @{}
#$initParams.Add("Verbose", $true) # Раскомментируйте эту строку, чтобы включить подробное ведение журнала
#$initParams.Add("ErrorAction", "Stop") # Раскомментируйте эту строку, чтобы останавливать скрипт при любых ошибках
# Не изменяйте ничего под этой строкой
# Импорт модуля ConfigurationManager.psd1
if((Get-Module ConfigurationManager) -eq $null) {
    Import-Module "$($ENV:SMS_ADMIN_UI_PATH)\..\ConfigurationManager.psd1" @initParams
}
# Подключение к диску сайта, если оно еще отсутствует
if((Get-PSDrive -Name $SiteCode -PSProvider CMSite -ErrorAction SilentlyContinue) -eq $null) {
    New-PSDrive -Name $SiteCode -PSProvider CMSite -Root $ProviderMachineName @initParams
}
# Задание текущего расположения в качестве кода сайта.
Set-Location "$($SiteCode):\" @initParams
-------------------------------------------------
Запускаем его на выполнение и получаем приглашение
PS PRM:\>


Здесь можно сделать многое.


В импортированном модуле 264 команды для получения сведений
PS PRM:\> (GCM Get-CM*).count
264


и 237 для установки или создания новых параметров
PS PRM:\> (GCM Set-CM*).count
237


Например, так можно прочитать командную строку выполнения в пакете "MS Lync 2010"
PS PRM:\> (Get-CMProgram –PackageName "MS Lync 2010").CommandLine
LyncSetup_x86.exe /silent


Так можно получить список всех доступных коллекций
PS PRM:\> Get-CMDeviceCollection | Format-Table –AutoSize


Так прочитать свойства коллекции по ID
PS PRM:\> Get-CMDeviceCollection –CollectionId "PRM00089" -Verbose
ПОДРОБНО: Start: Execution of WQL query: SELECT * FROM SMS_Collection WHERE CollectionID = 'PRM00089' AND CollectionType = 2
Ключик Verbose дает возможность увидеть WQL-запрос и оценить скорость его выполнения.


Так прочитать свойства коллекции по имени
PS PRM:\> Get-CMDeviceCollection –Name "SAP branch"


SmsProviderObjectPath          : SMS_Collection.CollectionID="PRM00089"
CollectionID                   : PRM00089
CollectionRules                : {SMS_R_System, SMS_R_System}
CollectionType                 : 2
CollectionVariablesCount       : 0
Comment                        : SAP рабочие станции
CurrentStatus                  : 1
HasProvisionedMember           : True
IncludeExcludeCollectionsCount : 0
IsBuiltIn                      : False
IsReferenceCollection          : False
ISVDataSize                    : 0
LastChangeTime                 : 22.04.2016 8:22:12
LastMemberChangeTime           : 19.08.2016 21:08:09
LastRefreshTime                : 16.11.2017 9:03:53
LimitToCollectionID            : PRM00089
LimitToCollectionName          : Skynet
LocalMemberCount               : 2
MemberClassName                : SMS_CM_RES_COLL_PRM00089
MemberCount                    : 2
MonitoringFlags                : 0
Name                           : SAP branch
OwnedByThisSite                : True
PowerConfigsCount              : 0


И т.д.

Как с этим всем работать читайте в книге "Microsoft System Center PowerShell Essentials"
авторов Guruprasad HP и Harshul Patel от Packt Publishing. В электронном виде книгу находил здесь www.it-ebooks.info.


Сам изучаю, тестирую.
Успехов и вам.



No comments:

Post a Comment

А что вы думаете по этому поводу?