Tests/VerboseExplorer.ps1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
#Load standard arguments from file (even evaluate code) #Run code from PSM-file? #scriptfilename -> domain name/server name -> global settings [CmdletBinding(SupportsShouldProcess = $True)] param ( $pstring, [string]$one, [int64]$isint, [string[]]$two, #[ValidateScript({ $_.GetType().FullName -eq 'System.Management.Automation.PSScriptCmdlet' })] $sessionParam ) #region Init #Load default arguemts for this script. #Command prompt arguments will override file settings function GetLocalDefaultsFromDfpFiles($CallerInvocation) { #Load script default settings foreach($settingsFile in (Get-SettingsFiles $CallerInvocation ".dfp")) { Write-Verbose "File: [$settingsFile]" if (Test-Path $settingsFile) { $settings = Get-Content $settingsFile #Enumerate settingsfile rows foreach($row in $settings) { #Remarked lines are not processed if (($row -match "=") -and ($row.Trim().SubString(0,1) -ne "#")) { $key = $row.Split('=')[0] $var = Get-Variable $key -ErrorAction SilentlyContinue if ($var -and !($var.Value)) { try { Write-Host "Var: $key" $var.Value = Invoke-Expression $row.SubString($key.Length+1) } Catch { $ex = $PSItem $ex.ErrorDetails = "Err adding $key from $settingsFile. " + $PSItem.Exception.Message throw $ex } } #Write-Host "$($var.Value)" } } } } } get-module PSJumpStart | Remove-Module; #PATH: C:\Users\%userID%\Documents\WindowsPowerShell\Modules\PSJumpStart?? #Import-Module "PSJumpStart" -Force $scriptPath = Split-Path -Parent $MyInvocation.MyCommand.Definition Import-Module PSJumpStart -Force #Get Local variable default values from external DFP-files GetLocalDefaultsFromDfpFiles($MyInvocation) #Get global deafult settings when calling modules $PSDefaultParameterValues = Get-GlobalDefaultsFromDfpFiles($MyInvocation) #endregion Msg "Start Execution" Write-Verbose "Value for One is [$one]" $TheHash = @{} #Test nesting verbose messages AddToHash $TheHash "test" "First value to have." AddToHash $TheHash "test" " Add this as well" #Simple nested test verboseTest "This will NOT show if parameter -Verbose is used for the script. BUT it will if Verbose=$true is used in a dfp file." Msg "End Execution" |