Functions/Install-SCCMUpdate.ps1
|
function Install-SCCMUpdate { <# .SYNOPSIS Short description .DESCRIPTION Long description .PARAMETER ComputerName Specifies the name of one or more computers. .PARAMETER Path Specifies a path to one or more locations. .EXAMPLE C:\PS>Install-SCCMUpdate Example of how to use this cmdlet .EXAMPLE C:\PS>Install-SCCMUpdate -PARAMETER Another example of how to use this cmdlet but with a parameter or switch. .INPUTS System.String .OUTPUTS System.Management.Automation.PSCustomObject .COMPONENT WSTools .FUNCTIONALITY The functionality (keywords) that best describes this cmdlet .NOTES Author: Skyler Hart Created: 2023-03-29 22:42:28 Last Edit: 2023-03-29 22:42:28 Other: Requires: -Module ActiveDirectory -PSSnapin Microsoft.Exchange.Management.PowerShell.Admin -RunAsAdministrator .LINK https://wanderingstag.github.io #> [CmdletBinding()] [Alias()] param( [Parameter( #HelpMessage = "Enter one or more computer names separated by commas.", Mandatory=$false#, #Position=0, #ValueFromPipeline = $true )] [Alias('Host','Name','Computer','CN')] [string[]]$ComputerName = "$env:COMPUTERNAME" ) Begin {} Process { foreach ($Comp in $ComputerName) { if ($Comp -eq $env:COMPUTERNAME) { ([wmiclass]'ROOT\ccm\ClientSDK:CCM_SoftwareUpdatesManager').InstallUpdates([System.Management.ManagementObject[]] (get-wmiobject -query 'SELECT * FROM CCM_SoftwareUpdate' -namespace 'ROOT\ccm\ClientSDK')) } else { Invoke-Command -ComputerName $Comp -ScriptBlock {#DevSkim: ignore DS104456 ([wmiclass]'ROOT\ccm\ClientSDK:CCM_SoftwareUpdatesManager').InstallUpdates([System.Management.ManagementObject[]] (get-wmiobject -query 'SELECT * FROM CCM_SoftwareUpdate' -namespace 'ROOT\ccm\ClientSDK')) } }#not local } } End {} } |