Skip to content

Instantly share code, notes, and snippets.

@joshivey
Created April 3, 2015 12:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save joshivey/ac3cd02a4ecb62fb9608 to your computer and use it in GitHub Desktop.
Save joshivey/ac3cd02a4ecb62fb9608 to your computer and use it in GitHub Desktop.
param($msgID, $AssignmentID)
trap { $_ | Out-File -FilePath C:\TEMP\sccm_scripting_error.txt -Force }
## USER CONFIG ##############################################
#$email_to = "joe@northwinds.local"
#$email_from = "noreply@northwinds.local"
#$email_server = "192.168.1.1"
# SQL\SERVERNAME\INSTANCE\Databases\DATABASENAME
$sqlString = "SQL\SCCMCAS\DEFAULT\Databases\CM_CAS"
#############################################################
New-EventLog -LogName Application -Source "SMS Scripting" -ErrorAction SilentlyContinue
Import-Module SQLPS
Set-Location $sqlString
$query = Invoke-Sqlcmd -Query "SELECT VCIA.AssignmentId, VCIA.AssignmentName, VCIA.UseGMTTimes, VCIA.CreationTime,
VCIA.LastModifiedBy, VCIA.LastModificationTime, VCIA.StartTime, VCIA.EnforcementDeadline,
VCIA.SourceSite, COLS.CollectionName, SRV.SiteCode, CMC.AssignedCount, VCIA.AssignmentType
FROM vCI_CIAssignments VCIA INNER JOIN Collections COLS ON COLS.CollectionID = VCIA.TargetCollectionID
INNER JOIN CollectionMemberCounts CMC ON CMC.CollectionID = COLS.COllectionID
INNER JOIN ServerData SRV ON SRV.ID = CMC.SiteNumber
WHERE VCIA.AssignmentID = $AssignmentID;"
$info = ""
if($query[0].AssignmentId -eq $AssignmentID) { $info = $query[0] } else { $info = $query }
if($info.AssignmentType -eq 5)
{
$totalCount = 0
foreach($rec in $query) { $totalCount += $rec.AssignedCount }
$message = ""
switch($msgID)
{
30196 { $message = "Updates Deployment CREATED on '$($info.CollectionName)' targeting $totalCount machine(s).`r`n`r`n" }
30197 { $message = "Updates Deployment MODIFIED on '$($info.CollectionName)' targeting $totalCount machine(s).`r`n`r`n" }
Default { $message = "Unhandled msgID was passed." }
}
$message += "AssignmentID: $($info.AssignmentID)`r`n"
$message += "AssignmentName: $($info.AssignmentName)`r`n"
$message += "CreationTime: $($info.CreationTime)`r`n"
$message += "LastModifiedBy: $($info.LastModifiedBy)`r`n"
$message += "LastModificaitonTime: $($info.LastModificationTime)`r`n"
$message += "StartTime: $($info.StartTime)"
if($info.UseGMTTimes) { $message += " UTC" }
$message += "`r`n"
if($info.EnforcementDeadline.ToString().Trim() -eq "")
{
$message += "EnforcementDeadLine: (None - Available Deployment)`r`n"
} else {
$message += "EnforcementDeadLine: $($info.EnforcementDeadline)"
if($info.UseGMTTimes) { $message += " UTC" }
$message += "`r`n"
}
$message += "CollectionName: $($info.CollectionName)`r`n"
foreach($rec in $query) { $message += "$($rec.SiteCode) AssignedCount: $($rec.AssignedCount)`r`n" }
$message += "TotalCount: $totalCount`r`n"
Write-EventLog -LogName Application -Source "SMS Scripting" -EntryType Information -EventId $msgID -Message $message
#$email = New-Object System.Net.Mail.MailMessage
#$email.To.Add($email_to)
#$email.From = $email_from
#$email.Subject = "SCCM 2012 | $($info.SourceSite) Updates Deployment | $totalCount Targets"
#$email.Body = $message
#$smtp = New-Object System.Net.Mail.SmtpClient $email_server
#$smtp.Send($email)
}
#
#
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment