Public/Inventory/Get-DomainInventory.ps1
|
function Get-DomainInventory { [CmdletBinding()] param( [ValidateScript({ Test-Path $_ })] [string]$ExportPath = $script:Config.ExportPath ) if (-not (Initialize-Environment)) { Write-Log "Environment initialization failed" -Level Error return } $startTime = Get-Date Write-Log "Starting AD Inventory at $startTime" -Level Info try { # Domain Information $domainInfo = [PSCustomObject]@{ ForestInfo = Get-ADForestInfo TrustInfo = Get-ADTrustInfo DomainInfo = Get-ADDomainInfo } Export-ADData -Data $domainInfo -ExportPath $ExportPath # Domain Objects $domainObject = [PSCustomObject]@{ ADUsers = Get-ADUsers ADComputers = Get-ADComputers ADGroups = Get-ADGroupsAndMembers } Export-ADData -Data $domainObject -ExportPath $ExportPath } catch { Write-Log "Error during inventory: $($_.Exception.Message)" -Level Error Show-ErrorBox "Error during inventory process" } $endTime = Get-Date $duration = $endTime - $startTime Write-Log "AD Inventory completed. Duration: $($duration.TotalMinutes) minutes" -Level Info } |