diff --git a/Hawk/internal/functions/Reset-HawkEnvironment.ps1 b/Hawk/internal/functions/Reset-HawkEnvironment.ps1 deleted file mode 100644 index cb0a9af..0000000 --- a/Hawk/internal/functions/Reset-HawkEnvironment.ps1 +++ /dev/null @@ -1,95 +0,0 @@ -Function Reset-HawkEnvironment { - <# - .SYNOPSIS - Resets all Hawk-related variables to allow for a fresh instance. - - .DESCRIPTION - This function removes all global variables used by Hawk, including the main Hawk object, - IP location cache, and Microsoft IP list. This allows you to start fresh with Hawk - without needing to close and reopen your PowerShell window. - - Variables removed: - - $Hawk (Main configuration object) - - $IPlocationCache (IP geolocation cache) - - $MSFTIPList (Microsoft IP address list) - - $HawkAppData (Application data) - - .PARAMETER Confirm - Prompts for confirmation before executing the command. - Specify -Confirm:$false to suppress confirmation prompts. - - .PARAMETER WhatIf - Shows what would happen if the command runs. - The command is not executed. - - .EXAMPLE - Reset-HawkEnvironment - - Removes all Hawk-related variables and confirms when ready for a fresh start. - - .EXAMPLE - Reset-HawkEnvironment -Verbose - - Removes all Hawk-related variables with detailed progress messages. - - .EXAMPLE - Reset-HawkEnvironment -WhatIf - - Shows what variables would be removed without actually removing them. - - .NOTES - Author: Jonathan Butler - Version: 1.0 - Last Modified: 2025-01-20 - - This function should be used when you need to start a fresh Hawk investigation - without closing your PowerShell session. - #> - [CmdletBinding(SupportsShouldProcess=$true, ConfirmImpact='Medium')] - param() - - # Store original preference - $originalInformationPreference = $InformationPreference - $InformationPreference = 'Continue' - - Write-Information "Beginning Hawk environment cleanup..." - - # List of known Hawk-related variables to remove - $hawkVariables = @( - 'Hawk', # Main Hawk configuration object - 'IPlocationCache', # IP geolocation cache - 'MSFTIPList', # Microsoft IP address list - 'HawkAppData' # Hawk application data - ) - - foreach ($varName in $hawkVariables) { - if (Get-Variable -Name $varName -ErrorAction SilentlyContinue) { - try { - if ($PSCmdlet.ShouldProcess("Variable $varName", "Remove")) { - Remove-Variable -Name $varName -Scope Global -Force -ErrorAction Stop - Write-Information "Successfully removed `$$varName" - } - } - catch { - Write-Warning "Failed to remove `$$varName : $_" - } - } - else { - Write-Information "`$$varName was not present" - } - } - - # Clear any PSFramework configuration cache - if ($PSCmdlet.ShouldProcess("PSFramework cache", "Clear")) { - if (Get-Command -Name 'Clear-PSFResultCache' -ErrorAction SilentlyContinue) { - Clear-PSFResultCache - Write-Information "Cleared PSFramework result cache" - } - } - - Write-Information "`nHawk environment has been reset!" - Write-Information "You can now run Initialize-HawkGlobalObject for a fresh start.`n" - - # Restore original preference - $InformationPreference = $originalInformationPreference -} \ No newline at end of file