Using PowerShell to display denied requests
Summary When you troubleshoot access problems, it might be helpful to review whether denied requests exits on your system. The objective of this script is to display them. #---------------------------------------------------------------------------------------------------------- Function GetReferenceValue { Param($ObjectId) End { If($ObjectId.Length -eq 0) {Return ""} If($ObjectId.StartsWith("urn:uuid:") -eq $true) {$ObjectId = ($ObjectId.split(":"))[2]} $exportObject = export-fimconfig -uri "http://localhost:5725/resourcemanagementservice" ` -customconfig ("/*[ObjectID='$ObjectId']") ` -onlyBaseResources ` -ErrorVariable Err ` -ErrorAction SilentlyContinue If($Err){Throw $Err} If($exportObject -eq $null) {Return ""} Return ($ExportObject.ResourceManagementObject.ResourceManagementAttributes | ` Where-Object {$_.AttributeName -eq "DisplayName"}).Value } } #---------------------------------------------------------------------------------------------------------- Function GetAttribute { Param($ExportObject, $AttributeName) End { $attributeValue = ($ExportObject.ResourceManagementObject.ResourceManagementAttributes | ` Where-Object {$_.AttributeName -eq $AttributeName}).Value If($attributeValue -eq $null) {$attributeValue = ""} Return $attributeValue } } #---------------------------------------------------------------------------------------------------------- If(@(Get-PSSnapin | Where-Object {$_.Name -eq "FIMAutomation"} ).count -eq 0) {Add-PSSnapin FIMAutomation} $dataList = @() $exportObjects = export-fimconfig -uri "http://localhost:5725/resourcemanagementservice" ` -customconfig ("/Request[RequestStatus = 'Denied']") ` -onlyBaseResources ` -ErrorVariable Err ` -ErrorAction SilentlyContinue If($Err){Throw $Err} If($exportObjects -eq $null) { Write-Host "No matching requests found" Exit 0 } $exportObjects | Where-Object {$_.ResourceManagementObject.ObjectType -eq "Request"} | ForEach{ $newRecord = new-object psobject $attrValue = GetAttribute -ExportObject $_ -AttributeName "DisplayName" $newRecord | add-member noteproperty "DisplayName" $attrValue $attrValue = GetAttribute -ExportObject $_ -AttributeName "CreatedTime" $newRecord | add-member noteproperty "Date-Submitted" $attrValue $refAttr = GetAttribute -ExportObject $_ -AttributeName "Creator" $refVal = GetReferenceValue -ObjectId $refAttr $newRecord | add-member noteproperty "Originator" $refVal $attrValue = GetAttribute -ExportObject $_ -AttributeName "Operation" $newRecord | add-member noteproperty "Operation" $attrValue $attrValue = GetAttribute -ExportObject $_ -AttributeName "TargetObjectType" $newRecord | add-member noteproperty "Target-Resource-Type" $attrValue $refAttr = GetAttribute -ExportObject $_ -AttributeName "Target" $refVal = GetReferenceValue -ObjectId $refAttr $newRecord | add-member noteproperty "Target-Resource" $refVal $dataList += $newRecord } #---------------------------------------------------------------------------------------------------------- Clear-Host Write-Host "Denied Requests" Write-Host "===============" $dataList | Format-List Write-Host "Command completed successfully`n" #---------------------------------------------------------------------------------------------------------- Trap { Write-Host "`nError: $($_.Exception.Message)`n" -foregroundcolor white -backgroundcolor darkred Exit 1 } #---------------------------------------------------------------------------------------------------------- Go to the FIM ScriptBox Markus Vilcinskas, Knowledge Engineer, Microsoft Corporation
June 10th, 2010 7:19pm

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics