Patch/Send-PatchInfo.ps1
<#
.SYNOPSIS Sends information about installed patch to a remote server .DESCRIPTION Sends information about installed patch to a remote server defined by Register-PatchHelper command .EXAMPLE Send-PatchInfo -patchLevel "NC" -patchNumber 123 .NOTES #> function Send-PatchInfo { [Alias("sdpai")] [CmdletBinding()] param( [Parameter(Mandatory, ParameterSetName = "patch")] [string]$patchLevel, [Parameter(Mandatory, ParameterSetName = "patch")] [int]$patchNumber, [Parameter(Mandatory, ParameterSetName = "extension")] [string]$ExtensionName, [Parameter(Mandatory, ParameterSetName = "extension")] [string]$ExtensionVersion ) begin { $ErrorActionPreference = "Stop" # Fetching certificate $cert = Get-ChildItem -Path "Cert:\CurrentUser\My" | Where-Object -Property Issuer -EQ -Value "CN=ADS Russia LLC" if (!$cert) { $cert = Get-ChildItem -Path "Cert:\LocalMachine\My" | Where-Object -Property Issuer -EQ -Value "CN=ADS Russia LLC" if (!$cert) { throw "Certificate not found." } } $cert | Write-Verbose #endregion } process { if ($patchLevel -eq 1) { $patchLevel = "NC" } else { $patchLevel = "NML" } $reportUrl = "$($PatchHelperConfig.ReportURL)/report" $body = @{} if ($PSCmdlet.ParameterSetName -eq 'patch') { $reportUrl += "/patches" $body = @{ "CustomerName" = $PatchHelperConfig.CustomerName "PatchLevel" = $patchLevel "PatchNumber" = $patchNumber } | ConvertTo-Json } else { $reportUrl += "/extensions" $body = @{ "CustomerName" = $PatchHelperConfig.CustomerName "ExtensionName" = $ExtensionName "ExtensionVersion" = $ExtensionVersion } | ConvertTo-Json } $ProgressPreferenceBack = $ProgressPreference; $ProgressPreference = "SilentlyContinue"; Invoke-WebRequest -Uri $reportUrl -UseDefaultCredentials -Method Post -ContentType "application/json" -Body $body -Certificate $cert | Out-Null $ProgressPreference = $ProgressPreferenceBack; } end { } } Export-ModuleMember -Alias * -Function * |