PowerShell Script Monitor
Function Get-RegistryValue12 {
param (
[parameter(Mandatory=$true)][ValidateNotNullOrEmpty()]$Path,
[parameter(Mandatory=$true)][ValidateNotNullOrEmpty()]$Name
)
Return (Get-ItemProperty -Path $Path -Name $Name -ErrorAction SilentlyContinue).$Name
}
$compliance = "Compliant"
$Registry = "HKLM:\SOFTWARE\SOFTWARE\WOW6432Node\Notepad++"
$name = "InstallerLanguage"
$value = Get-RegistryValue12 -path $registry -name $name
$Ver = (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").currentBuild
If ($Ver -like '1033')
{
$compliance = 'Non-Compliant'
}
$compliance
PowerShell Script Remediation
Function Execute-TaskSequence {
Param (
[parameter(Mandatory = $true)]
[string]$Name
)
Try {
Write-Host "Connecting to the SCCM client Software Center..."
$softwareCenter = New-Object -ComObject "UIResource.UIResourceMgr"
}
Catch {
Throw "Could not connect to the client Software Center."
}
If ($softwareCenter) {
Write-Host "Searching for deployments for task sequence [$name]..."
$taskSequence = $softwareCenter.GetAvailableApplications() | Where-Object { $_.PackageName -eq "$Name" }
If ($taskSequence) {
$taskSequenceProgramID = $taskSequence.ID
$taskSequencePackageID = $taskSequence.PackageID
Write-Host "Found task sequence [$name] with package ID [$taskSequencePackageID]."
# Execute the task sequence
Try {
Write-Host "Executing task sequence [$name]..."
$softwareCenter.ExecuteProgram($taskSequenceProgramID,$taskSequencePackageID,$true)
Write-Host "Task Sequence executed."
}
Catch {
Throw "Failed to execute the task sequence [$name]"
}
}
Else {
Write-Host "No Deployments found matching name = [$name]!"
exit 100
}
}
}
Execute-TaskSequence -name "Custom Task Sequence"
No comments:
Post a Comment