tests/general/FileIntegrity.Exceptions.ps1

# List of forbidden commands
$global:BannedCommands = @(
    'Write-Host'
    'Write-Verbose'
    'Write-Warning'
    'Write-Error'
    'Write-Output'
    'Write-Information'
    'Write-Debug'
    
    # Use CIM instead where possible
    'Get-WmiObject'
    'Invoke-WmiMethod'
    'Register-WmiEvent'
    'Remove-WmiObject'
    'Set-WmiInstance'

    # Use Get-WinEvent instead
    'Get-EventLog'

    # User Preference should not be used in automation
    'Clear-Host' # Console Screen belongs to the user
    'Set-Location' # Console path belongs to the user. Use $PSScriptRoot instead.

    # Dynamic Variables are undesirable. Use hashtable instead.
    'Get-Variable'
    'Set-Variable'
    'Clear-Variable'
    'Remove-Variable'
    'New-Variable'

    # Dynamic Code execution should not require this
    'Invoke-Expression' # Consider splatting instead. Yes, you can splat parameters for external applications!
)

<#
    Contains list of exceptions for banned cmdlets.
    Insert the file names of files that may contain them.
     
    Example:
    "Write-Host" = @('Write-PSFHostColor.ps1','Write-PSFMessage.ps1')
#>

$global:MayContainCommand = @{
    "Write-Host"  = @()
    "Write-Verbose" = @()
    "Write-Warning" = @()
    "Write-Error"  = @()
    "Write-Output" = @('Get-AhsPrivilegedPrincipal.ps1')
    "Write-Information" = @()
    "Write-Debug" = @()
}