Files
Chocolatey-tools/functions/Test-ChocoUpgradeTrigger.ps1
2019-04-26 11:57:46 -04:00

37 lines
1.6 KiB
PowerShell

<#
.SYNOPSIS
Short description
.DESCRIPTION
Long description
.EXAMPLE
Example of how to use this cmdlet
.EXAMPLE
Another example of how to use this cmdlet
#>
function Test-ChocoUpgradeTrigger {
[CmdletBinding()]
param(
[Parameter(Mandatory=$true,ValueFromPipeline=$True)]
[pscustomobject[]]$PackageNames,
[Parameter(Mandatory=$true)]
[string[]]$TriggerPackages,
[Parameter(Mandatory=$true)]
[string]$UpgradeScriptPath,
[Parameter(Mandatory=$true)]
[string]$TriggeredTime,
[Parameter(Mandatory=$true)]
[System.Management.Automation.PSCredential]$Credential
)
process {
foreach ($Package in $PackageNames){
if ($TriggerPackages -contains $Package.Name){
Write-Output "Creating scheduled task"
Disable-ScheduledTask -TaskName 'Triggered Choco Upgrade' | Unregister-ScheduledTask -Confirm:$False
$Time = New-ScheduledTaskTrigger -At $TriggeredTime -Once
$PS = New-ScheduledTaskAction -Execute 'Powershell.exe' -Argument "-file $UpgradeScriptPath"
Register-ScheduledTask -User $Credential.UserName -Description 'This task is created when a certain third party software should be updated on clients' -TaskName 'Triggered Choco Upgrade' -Trigger $Time -Action $PS -Password $Credential.GetNetworkCredential().password -RunLevel Highest
Exit
}
}
}
}