Skip to content

Instantly share code, notes, and snippets.

@Nillth
Last active June 20, 2023 03:26
Show Gist options
  • Save Nillth/811007030844c9b7b85403c4fab975ad to your computer and use it in GitHub Desktop.
Save Nillth/811007030844c9b7b85403c4fab975ad to your computer and use it in GitHub Desktop.
#$PFXPath = ''
#$QlikClient = Get-PfxCertificate -FilePath $PFXPath
$QlikClient = Get-ChildItem Cert:\CurrentUser\My|?{$_.Subject -eq 'CN=QlikClient'}
Connect-QlikSense -Certificate $QlikClient -Username "Internal\sa_api"
$ArchivedLogsFolder = (Get-QSDataconnection -Filter "name eq 'ArchivedLogsFolder'") | Select-Object -First 1
#$ResourceTypes = "AnalyticConnection", "App", "App.Object", "CompositeEvent", "ContentLibrary", "CustomPropertyDefinition", "DataConnection", "OdagLink", "OdagLinkUsage", "OdagRequest", "ReloadTask", "SchemaEvent", "Stream", "Tag"
$ResourceTypes = "Stream", "App", "ContentLibrary", "ReloadTask"
foreach ($ResourceType in $ResourceTypes) {
[system.io.fileinfo]$CSVFile = "$($ArchivedLogsFolder.Connectionstring)\Audit\$($ResourceType).csv"
$CSVFile.Directory.Create()
$paramNewQSAuditMatrixParameters = @{
ResourceType = $ResourceType
Actions = [Enum]::GetNames([QlikSenseCLI.Model.SecurityActions])
OutputObjectsPrivileges = [QlikSenseCLI.Model.SecurityActions]::All
ResourceProperties = "Name", "id"
SubjectProperties = "name", "userid", "userdirectory", "id"
AuditLimit = 1000
}
$QSAuditMatrixParameters = New-QSAuditMatrixParameters @paramNewQSAuditMatrixParameters
$QSAuditMatrix = Add-QSSystemrule -AuditMatrixParametersObj $QSAuditMatrixParameters -SecurityAuditMatrix
$Props = [System.Collections.Generic.List[Hashtable]]::new()
$Props.Add(@{ Name = "SubjectId"; Expression = { $_.SubjectId } })
$Props.Add(@{ Name = "ResourceId"; Expression = { $_.ResourceId } })
[Enum]::GetNames([QlikSenseCLI.Model.SecurityActions]) | % { Invoke-Expression "`$Props.Add(@{ Name = '$_'; Expression = {`$([QlikSenseCLI.Model.SecurityActions]`$_.Audit.access).HasFlag([QlikSenseCLI.Model.SecurityActions]::$($_)) } })" }
$QSAuditMatrix.Matrix | Select-Object $Props | Export-Csv -NoTypeInformation -Path $CSVFile.FullName
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment