renamed file and removed directory
This commit is contained in:
217
Powershell/Registry Key Search And Remove.ps1
Normal file
217
Powershell/Registry Key Search And Remove.ps1
Normal file
@@ -0,0 +1,217 @@
|
||||
param([switch]$Elevated)
|
||||
function Write-ProgressHelper {
|
||||
param (
|
||||
[int]$StepNumber,
|
||||
[string]$Message
|
||||
)
|
||||
Write-Progress -Activity 'Microsoft Registry Fix' -Status $Message -PercentComplete (($StepNumber / $steps) * 100)
|
||||
|
||||
}
|
||||
$script:steps = ([System.Management.Automation.PsParser]::Tokenize((gc "$PSScriptRoot\$($MyInvocation.MyCommand.Name)"), [ref]$null) | where { $_.Type -eq 'Command' -and $_.Content -eq 'Write-ProgressHelper' }).Count
|
||||
$stepCounter = 0
|
||||
|
||||
|
||||
function Check-Admin {
|
||||
$currentUser = New-Object Security.Principal.WindowsPrincipal $([Security.Principal.WindowsIdentity]::GetCurrent())
|
||||
$currentUser.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
|
||||
}
|
||||
if ((Check-Admin) -eq $false) {
|
||||
if ($elevated)
|
||||
{
|
||||
# could not elevate, quit
|
||||
}
|
||||
else {
|
||||
Start-Process powershell.exe -Verb RunAs -ArgumentList ('-noprofile -noexit -file "{0}" -elevated' -f ($myinvocation.MyCommand.Definition))
|
||||
}
|
||||
exit
|
||||
}
|
||||
|
||||
Write-ProgressHelper -Message 'Firing Up The Mouse Wheel' -StepNumber ($stepCounter++)
|
||||
|
||||
Write-Host "Please Reboot After This Is Complete For The Changes To Work" -ForegroundColor Red
|
||||
Start-Sleep -Seconds 3
|
||||
|
||||
Write-ProgressHelper -Message 'Applying Environment Variables... For Efficiency.' -StepNumber ($stepCounter++)
|
||||
$ThisPC = ($env:COMPUTERNAME + $env:username)
|
||||
$mytime = Get-Date -Format "dd-MM-yyyy--HH-mm"
|
||||
$workingdir = "c:\regexport"
|
||||
$key1 = "HKLM:\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{00020827-0000-0000-C000-000000000046}"
|
||||
$key2 = "HKLM:\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{65235197-874B-4A07-BDC5-E65EA825B718}"
|
||||
$key3 = "HKLM:\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{84F66100-FF7C-4fb4-B0C0-02CD7FB668FE}"
|
||||
$export1 = "HKLM\SOFTWARE\Classes\CLSID\{00020827-0000-0000-C000-000000000046}"
|
||||
$export2 = "HKLM\SOFTWARE\Classes\CLSID\{65235197-874B-4A07-BDC5-E65EA825B718}"
|
||||
$export3 = "HKLM\SOFTWARE\Classes\CLSID\{84F66100-FF7C-4fb4-B0C0-02CD7FB668FE}"
|
||||
$regcheck = "
|
||||
Write-Host " "
|
||||
Start-Sleep -Seconds 1
|
||||
Write-Host "...Checking Registry Settings..." -ForegroundColor Green
|
||||
Start-Sleep -Seconds 1
|
||||
Write-Host " "
|
||||
Start-Sleep -Seconds 1
|
||||
Write-Host "...Checking Registry Settings..." -ForegroundColor Green
|
||||
Start-Sleep -Seconds 1
|
||||
Write-Host " "
|
||||
Start-Sleep -Seconds 1
|
||||
Write-Host "...Stopping For Coffee..." -ForegroundColor Green
|
||||
Start-Sleep -Seconds 1
|
||||
Write-Host " "
|
||||
Start-Sleep -Seconds 1
|
||||
Write-Host "...Checking Registry Settings..." -ForegroundColor Green
|
||||
Start-Sleep -Seconds 1
|
||||
Write-Host " "
|
||||
Start-Sleep -Seconds 1
|
||||
Write-Host "...Checking Registry Settings..." -ForegroundColor Green
|
||||
Start-Sleep -Seconds 1
|
||||
Write-Host " "
|
||||
Write-Host " "
|
||||
"
|
||||
|
||||
|
||||
|
||||
Write-ProgressHelper -Message 'Checking For Existance Of Previous Runs & Also Alien Life Forms' -StepNumber ($stepCounter++)
|
||||
Start-Sleep -Seconds 3
|
||||
If (Test-Path -Path c:\regexport) {
|
||||
Write-Host " "
|
||||
Write-Host " "
|
||||
Write-Host "Directory Already Exists - But That's Cool - No Stress"
|
||||
$question2 = Read-Host "It Looks Like You Have Run This Tool Previously. Do You Want Delete Previously Exported Keys (y/n)?"
|
||||
if ($question2 -eq 'y') {
|
||||
Write-Host "Let's Continue Then" -ForegroundColor Green
|
||||
Del $workingdir\*.* -Force
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Host "Maybe Next Time" -ForegroundColor Red
|
||||
[Environment]::Exit(0)
|
||||
}
|
||||
}
|
||||
|
||||
Else {
|
||||
|
||||
mkdir c:\regexport
|
||||
|
||||
}
|
||||
|
||||
Write-ProgressHelper -Message 'Now We Are Checking Registry Entries That Apparently Cause Issues - This Is Hard Work!' -StepNumber ($stepCounter++)
|
||||
Start-Sleep -Seconds 3
|
||||
|
||||
if (Test-Path -Path $key1) {
|
||||
|
||||
Reg export $export1 c:\regexport\Key1-$ThisPC-$mytime.reg
|
||||
Write-Host "Key1 Exists & Exported For Probing"
|
||||
|
||||
}
|
||||
|
||||
Else {
|
||||
|
||||
Write-Host "Nope, That Key Does Not Exist. On To Key Number 2"
|
||||
|
||||
}
|
||||
Write-Host " "
|
||||
Start-Sleep -Seconds 1
|
||||
Write-Host "...Checking Registry Settings..." -ForegroundColor Green
|
||||
Start-Sleep -Seconds 1
|
||||
Write-Host " "
|
||||
Start-Sleep -Seconds 1
|
||||
Write-Host "...Checking Registry Settings..." -ForegroundColor Green
|
||||
Start-Sleep -Seconds 1
|
||||
Write-Host " "
|
||||
Start-Sleep -Seconds 1
|
||||
Write-Host "...Stopping For Energy Drink..." -ForegroundColor Green
|
||||
Start-Sleep -Seconds 1
|
||||
Write-Host " "
|
||||
Start-Sleep -Seconds 1
|
||||
Write-Host "...Checking Registry Settings..." -ForegroundColor Green
|
||||
Start-Sleep -Seconds 1
|
||||
Write-Host " "
|
||||
Start-Sleep -Seconds 1
|
||||
Write-Host "...Checking Registry Settings..." -ForegroundColor Green
|
||||
Start-Sleep -Seconds 1
|
||||
Write-Host " "
|
||||
Write-Host " "
|
||||
|
||||
If (Test-Path -Path $key2) {
|
||||
|
||||
Reg export $export2 c:\regexport\Key2-$ThisPC-$mytime.reg
|
||||
Write-Host "Key2 Exists & Exported For Probing"
|
||||
|
||||
}
|
||||
|
||||
Else {
|
||||
|
||||
Write-Host "Nope, That Key Does Not Exist. On To Key Number 3"
|
||||
|
||||
}
|
||||
Write-Host " "
|
||||
Start-Sleep -Seconds 1
|
||||
Write-Host "...Checking Registry Settings..." -ForegroundColor Green
|
||||
Start-Sleep -Seconds 1
|
||||
Write-Host " "
|
||||
Start-Sleep -Seconds 1
|
||||
Write-Host "...Checking Registry Settings..." -ForegroundColor Green
|
||||
Start-Sleep -Seconds 1
|
||||
Write-Host " "
|
||||
Start-Sleep -Seconds 1
|
||||
Write-Host "...Stopping For A Cup of Tea & TimTams..." -ForegroundColor Green
|
||||
Start-Sleep -Seconds 1
|
||||
Write-Host " "
|
||||
Start-Sleep -Seconds 1
|
||||
Write-Host "...Checking Registry Settings..." -ForegroundColor Green
|
||||
Start-Sleep -Seconds 1
|
||||
Write-Host " "
|
||||
Start-Sleep -Seconds 1
|
||||
Write-Host "...Checking Registry Settings..." -ForegroundColor Green
|
||||
Start-Sleep -Seconds 1
|
||||
Write-Host " "
|
||||
Write-Host " "
|
||||
|
||||
If (Test-Path -Path $key3) {
|
||||
|
||||
Reg export $export3 c:\regexport\Key3-$ThisPC-$mytime.reg
|
||||
Write-Host "Key3 Exists & Exported For Probing"
|
||||
|
||||
}
|
||||
|
||||
Else {
|
||||
|
||||
Write-Host "Nope, That Key Does Not Exist Either."
|
||||
|
||||
}
|
||||
Write-ProgressHelper -Message 'Backing Up Keys - You Know... For Just-In-Case' -StepNumber ($stepCounter++)
|
||||
Start-Sleep -Seconds 3
|
||||
|
||||
If (Test-Path -Path $workingdir\key*.reg) {
|
||||
Compress-Archive -Path $workingdir\*.reg -DestinationPath $workingdir\$ThisPC.zip -CompressionLevel Optimal -Force
|
||||
Write-ProgressHelper -Message 'Removing Problem Keys' -StepNumber ($stepCounter++)
|
||||
Remove-Item -Path $key1 -Force -Recurse
|
||||
Remove-Item -Path $key2 -Force -Recurse
|
||||
Remove-Item -Path $key3 -Force -Recurse
|
||||
Write-Host " "
|
||||
Write-ProgressHelper -Message 'Reboot Is Now Required - It Is Annoying, But Necessary. Please Reboot When You Have A Chance.' -StepNumber ($stepCounter++)
|
||||
Write-Host " "
|
||||
Write-Host " "
|
||||
Write-Host "All Done - Have A Fantastic Day - Be Well!"
|
||||
Start-Sleep -Seconds 5
|
||||
Write-Host "Rebooting in...." -ForegroundColor Green
|
||||
Start-Sleep -Seconds 1
|
||||
Write-Host " 5" -ForegroundColor Green
|
||||
Start-Sleep -Seconds 1
|
||||
Write-Host " 4" -ForegroundColor Green
|
||||
Start-Sleep -Seconds 1
|
||||
Write-Host " 3" -ForegroundColor Yellow
|
||||
Start-Sleep -Seconds 1
|
||||
Write-Host " 2" -ForegroundColor Yellow
|
||||
Start-Sleep -Seconds 1
|
||||
Write-Host " 1" -ForegroundColor Red
|
||||
Start-Sleep -Seconds 1
|
||||
powershell ./exit.ps1
|
||||
[Environment]::Exit(0)
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
Write-ProgressHelper -Message 'No Problem Keys Found - Please Contact Your Friendly Neighbourhood IT Person For Further Assistance' -StepNumber ($stepCounter++)
|
||||
Start-Sleep -Seconds 5
|
||||
powershell ./exit.ps1
|
||||
[Environment]::Exit(0)
|
||||
}
|
||||
Reference in New Issue
Block a user