none
Небольшое решение по уведомлению запрошенных приложений. RRS feed

  • Вопрос

  • Добрый день.

    Может кому пригодится. 

    Имеем SCCM 2012 .

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

    Как многие знают у кого добавлен "Каталог приложений", запросы нужно вручную мониторить через консоль, что не всегда удобно.   

    Говорить о том что оповещения можно реализовать через SCOM и.т.д. не буду, это немного другая история.

    Для такой простенькой задачки я написал небольшой скрипт на PowerShell:

     
    param (
        [string]$SmtpServer="fqdn.your.mailserver",
        [string]$pthCMPSmodule='C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\bin\ConfigurationManager.psd1',
        [string]$cm_from_mail="cmRobot@domain.local",
        [string]$cm_to_mail="cmMailApproveApp@domain.local",
        [string[]]$cmAdmins=("admin1@domain.local","admin2@domain.local"),
        [string]$ccm_site_drive='P01:' # должен совпадать с артикулом вашего сайта
    )
    
    $encoding=[system.text.encoding]::UTF8
    
    try
    {
        if ( !([bool](Get-Module -Name ConfigurationManager)) )
        {
            Import-Module $pthCMPSmodule -ErrorAction Stop
        }
        Set-Location $ccm_site_drive -ErrorAction Stop
        $bodyMail=Get-CMApprovalRequest -ErrorAction Stop | ?{$_.CurrentState -eq 1} | fl @{Label="Status";Expression={"Запрос"}},Application,User,Comments | Out-String
    }
    
    catch
    {
        Send-MailMessage -Subject "Ошибка выполнения скрипта SCCM" -Body $error[0] -SmtpServer $SmtpServer -From $cm_from_mail -To $cmAdmins -Encoding $encoding -ErrorAction SilentlyContinue
    }
    
    if ($bodyMail)
    {
        Send-MailMessage -Subject "Поступил запрос на приложение в SCCM" -Body $bodyMail -SmtpServer $SmtpServer -From $cm_from_mail -To $cm_to_mail -Encoding $encoding -ErrorAction SilentlyContinue
    }

    В нем ничего сложного нет, он отправляет на почту администратора(ов), сообщение о том что поступил запрос на приложение. Данный скрипт добавляете в планировщик заданий на сервере, и выбираете наиболее оптимальное для вас время, у меня стоит "каждый час". Если sccm установлен на сервер ниже Windows Server 2012, то позаботитесь об установки Powershell выше 2.0  

    Скрипт поддается оптимизации, спасибо за внимание :). Все удачи.  

     
    • Изменено Oleg1982 22 июня 2015 г. 9:33
    22 июня 2015 г. 9:28

Ответы

Все ответы