-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathUpdateGroupbyReport.ps1
More file actions
41 lines (32 loc) · 1.87 KB
/
UpdateGroupbyReport.ps1
File metadata and controls
41 lines (32 loc) · 1.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# Name: UpdateGroupbyReport.ps1
# Description: Script is designed to compare report endpoint information and update group based on what endpoints are found (or not found) in a report.
# NOTE BEFORE RUNNING: You will need to create a report in "Simple Report" in Action1 via Custom Reports that has Endpoint names as the primary sorting function.
# Documentation: https://github.com/Action1Corp/PSAction1/
# Use Action1 Roadmap system (https://roadmap.action1.com/) to submit feedback or enhancement requests.
# WARNING: Carefully study the provided scripts and components before using them. Test in your non-production lab first.
# Action1 Public Repository Material
# Subject to TERMS_OF_USE.md (https://github.com/Action1Corp/PSAction1/blob/main/TERMS_OF_USE.md)
# Provided AS IS
# Use at your own risk
# Review and test before production deployment
# © Action1 Corporation
# Comment out below import/set-action1credentials if not needed, or preformed prior
Install-Module -Name PSAction1
Set-Action1Credentials -APIKey '<Insert API Key Here>' -Secret '<Insert Secret Here>'
Set-Action1DefaultOrg -Org_ID '<Insert Org_ID here>'
Set-Action1Region -Region '<Enter Region Here>'
# Fetch report data and extract endpoint IDs/names
$reportId = '<Insert Report ID Here>'
$reportEndpointNames = Get-Action1 ReportData -Id $reportId | ForEach-Object { $_.fields.'Endpoint Name' }
# Dictionary for Name/ID lookup.
$Endpoints = @{}
Get-Action1 Endpoints | ForEach-Object {$Endpoints[$_.name] = $_.id}
# Fetch current members of the group
$groupId = '<Insert Group ID Here>' # Adjust to the correct group ID
$group = Get-Action1 Settings -For EndpointGroup -Clone $groupId
$group.ClearIncludeFilter()
$group.ClearExcludeFilter()
$reportEndpointNames | ForEach-Object{
$group.AddIncludeFilter('name',$_)
}
Update-Action1 Modify EndpointGroup -Id $groupID -Data $group