Check CSV Headers to make sure if expected CSV value is provided from selected CSV file
I am sharing two functions, which are extremely useful for your scripts. First function will use Dialog box and ask administrator to pick the import file, it will then load into selected variable.
Second Function will check expected CSV header to ensure desired header value is there.
# Select File to Import
#(1)_.Open GUI to locate import file Function Get-File($inDir) { [System.Reflection.Assembly]::LoadWithPartialName('System.windows.forms') | Out-Null $OpenFileDialog = New-Object System.Windows.Forms.OpenFileDialog $OpenFileDialog.initialDirectory = $inDir $OpenFileDialog.filter = 'All files (*.*)| *.*' $OpenFileDialog.ShowDialog() | Out-Null $OpenFileDialog.filename $inDir = 'C:\temp\Migration_CSV_Files\' }
#(2)_.Start reading selected file , load collected data into $variable $csvfile = Get-File -initialDirectory $inDir $UserList = Import-Csv -path $csvfile -ErrorAction Stop |
#(3)_.Function to check header information function Function-Check-Header { [cmdletbinding()] param( [parameter( Mandatory=$true)] [String]$CSVheader ) Begin { #(-)_.Set var for header $header = $UserList[0].psobject.Properties.Name } Process { #(-)_.Validate CSV Header value if (!($header -like $CSVheader) ){
Write-Host 'Header DOES NOT have correct value'-ForegroundColor Red -BackgroundColor White Write-Host "`t(1)_.Expected CSV header <value>:"$CSVheader -ForegroundColor DarkYellow }
} End { write-Host "`t(2)_.Script will STOP" -ForegroundColor DarkYellow write-Host "`t(3)_.Select correct file" -ForegroundColor DarkYellow Start-Sleep -Seconds 5 break; } }
|
Azure Solutions Architect
AWS Certified Cloud Practitioner
Azure Certified Security Engineer Associate
https://simplepowershell.blogspot.com
https://cloudsec365.blogspot.com
No comments:
Post a Comment