Skip to content

Instantly share code, notes, and snippets.

@bajpaik
Created September 29, 2019 13:39
Show Gist options
  • Save bajpaik/fcf287cf64733bc687e6c3aa78948c93 to your computer and use it in GitHub Desktop.
Save bajpaik/fcf287cf64733bc687e6c3aa78948c93 to your computer and use it in GitHub Desktop.
Revert ServiceNow CI data from the audit log within a date range.
$sncusername = "MisterMistersBusiness"
$sncpassword = ConvertTo-SecureString "BLAHBLAHBLAH" -AsPlainText -Force
$snccredentials = New-Object System.Management.Automation.PSCredential ($sncusername, $sncpassword)
$StartDate = ((Get-Date).Year).ToString() + "-" + ((Get-Date).Month).ToString() + "-" + ((Get-Date).AddDays(-01).Day).ToString()
$EndDate = ((Get-Date).Year).ToString() + "-" + ((Get-Date).Month).ToString() + "-" + ((Get-Date).Day).ToString()
$Results = (Invoke-RestMethod -Method Get -Uri "https://central1.service-now.com/api/now/table/sys_audit?sysparm_query=user=snc_discovery_user^fieldname!=DELETED^sys_created_on>javascript:gs.dateGenerate('$StartDate','23:00:00')^sys_created_on<javascript:gs.dateGenerate('$EndDate','01:00:00')" -Credential $snccredentials).Result
$ComputerIDs = $Results | Select documentkey -Unique
Foreach ($Record in $Results) {
$Table = $Record.tablename
$Sysid = $Record.documentkey
$Fieldname = $Record.fieldname
$Value = $Record.oldvalue
$Body = @{
"$Fieldname" = "$Value"
}
$json = $Body | ConvertTo-Json
Try {
$Output = Invoke-RestMethod -Method Patch -Uri "https://central1.service-now.com/api/now/table/cmdb_ci_computer/$Sysid" -Body $json -ContentType "application/json" -Credential $snccredentials
} Catch {
$Sysid
$json
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment