Private/VB-CSVReportGenerationScript.ps1
|
function Invoke-VBCSVReportGeneration { # ========================= # CONFIGURATION (EDIT HERE ONLY) # ========================= # Common Variables Used Across Multiple Reports $BasePath = "C:\Users\Vibhu.Bhatnagar\Nextcloud\Realtime-IT\Reports\DPC_Reports" $ExportReport = "C:\Realtime" # File patterns $CSC_Pattern = "*_CNC.csv" $UFR_Pattern = "*_UFR.csv" $UPM_Pattern = "*_UPM.csv" $NIC_Pattern = "*_NIC.csv" $GPO_Pattern = "*_GPO.csv" $ODFB_Pattern = "*_ODFB.csv" $UP_Pattern = "*_UP.csv" # Output files $CSC_Output = "DPC_CSC_WS_Report.csv" $UFR_Output = "DPC_UFR_WS_Report.csv" $UPM_Output = "DPC_UPM_WS_Report.csv" $NIC_Output = "DPC_NIC_WS_Status.csv" $GPO_Output = "DPC_GPO_WS_Report.csv" $ODFB_Output = "DPC_ODFB_WS_Report.csv" $UP_Output = "DPC_UP_WS_Report.csv" # ========================= # SCRIPT START # ========================= Set-Location $BasePath # ------------------------- # CSC Report # ------------------------- $CscFiles = Get-ChildItem -Path .\ -Filter $CSC_Pattern $CscData = $CscFiles | ForEach-Object { Import-Csv $_.FullName } $CscData | Export-Csv -Path (Join-Path $ExportReport $CSC_Output) -NoTypeInformation # ------------------------- # Folder Redirection Report # ------------------------- $UfrFiles = Get-ChildItem -Path .\ -Filter $UFR_Pattern $UfrData = $UfrFiles | ForEach-Object { Import-Csv $_.FullName } $UfrData | Export-Csv -Path (Join-Path $ExportReport $UFR_Output) -NoTypeInformation # ------------------------- # Network Printer Report # ------------------------- $UpmFiles = Get-ChildItem -Path .\ -Filter $UPM_Pattern $UpmData = $UpmFiles | ForEach-Object { Import-Csv $_.FullName } $UpmData | Export-Csv -Path (Join-Path $ExportReport $UPM_Output) -NoTypeInformation # ------------------------- # Network Details Report # ------------------------- $NicFiles = Get-ChildItem -Path .\ -Filter $NIC_Pattern $NicData = $NicFiles | ForEach-Object { Import-Csv $_.FullName } $NicData | Export-Csv -Path (Join-Path $ExportReport $NIC_Output) -NoTypeInformation # ------------------------- # GPO Report # ------------------------- $GpoFiles = Get-ChildItem -Path .\ -Filter $GPO_Pattern $GpoData = $GpoFiles | ForEach-Object { Import-Csv $_.FullName } $GpoData | Export-Csv -Path (Join-Path $ExportReport $GPO_Output) -NoTypeInformation # ------------------------- # OneDrive Status Report # ------------------------- $OdfbFiles = Get-ChildItem -Path .\ -Filter $ODFB_Pattern $OdfbData = $OdfbFiles | ForEach-Object { Import-Csv $_.FullName } $OdfbData | Export-Csv -Path (Join-Path $ExportReport $ODFB_Output) -NoTypeInformation # ------------------------- # User Profile Report # ------------------------- $UpFiles = Get-ChildItem -Path .\ -Filter $UP_Pattern $UpData = $UpFiles | ForEach-Object { Import-Csv $_.FullName } $UpData | Export-Csv -Path (Join-Path $ExportReport $UP_Output) -NoTypeInformation # ========================= # SUMMARY # ========================= Clear-Host Write-Host '==================================================================' Write-Host ' DSI Workstation Report -- Export Summary' Write-Host " $(Get-Date -Format 'dd-MM-yyyy HH:mm:ss')" Write-Host '==================================================================' Write-Host '' Write-Host (' {0,-6} {1,-26} {2,7} {3,10}' -f 'Report', 'Name', 'Files', 'Records') Write-Host (' {0,-6} {1,-26} {2,7} {3,10}' -f '------', '--------------------------', '-------', '----------') Write-Host (' {0,-6} {1,-26} {2,7} {3,10}' -f 'CSC', 'CSC Sync', $CscFiles.Count, $CscData.Count) Write-Host (' {0,-6} {1,-26} {2,7} {3,10}' -f 'UFR', 'User Folder Redirection', $UfrFiles.Count, $UfrData.Count) Write-Host (' {0,-6} {1,-26} {2,7} {3,10}' -f 'UPM', 'User Printer Management', $UpmFiles.Count, $UpmData.Count) Write-Host (' {0,-6} {1,-26} {2,7} {3,10}' -f 'NIC', 'Network Config Report', $NicFiles.Count, $NicData.Count) Write-Host (' {0,-6} {1,-26} {2,7} {3,10}' -f 'GPO', 'Group Policy Usage', $GpoFiles.Count, $GpoData.Count) Write-Host (' {0,-6} {1,-26} {2,7} {3,10}' -f 'ODFB', 'OneDrive Folder Report', $OdfbFiles.Count, $OdfbData.Count) Write-Host (' {0,-6} {1,-26} {2,7} {3,10}' -f 'UP', 'User Profile Details', $UpFiles.Count, $UpData.Count) Write-Host '' Write-Host ' All reports exported successfully.' Write-Host '==================================================================' } |