Navicate延长试用,删除注册表无限试用
Navicat试用14天,到期后可以通过删除注册表来重新获得14天的试用
bat文件内容
2025-06-12:排除JAVA JRE CLSID项的遍历
PowerShell 全选
@echo off
:: 关闭命令显示,让批处理执行时更整洁
set dn=Info
set dn2=ShellFolder
:: 设置两个变量,分别代表将在注册表中查找和删除的键名
set rp=HKEY_CURRENT_USER\Software\Classes\CLSID
:: 设置 CLSID 注册表路径变量
:: 以下为手动指定的 Navicat 旧版本注册信息删除(目前已被注释)
:: reg delete HKEY_CURRENT_USER\Software\PremiumSoft\NavicatPremium\Registration14XCS /f %针对 navicat 15%
:: reg delete HKEY_CURRENT_USER\Software\PremiumSoft\NavicatPremium\Registration16XCS /f
:: 动态查找 Navicat 注册信息并删除所有值
for /f %%i in ('"REG QUERY "HKEY_CURRENT_USER\Software\PremiumSoft\NavicatPremium" /s | findstr /L Registration"') do (
echo deleteing: %%i
reg delete %%i /va /f
)
:: /va 表示删除该项下所有值,不删除项本身;/f 表示强制删除
:: 删除 Navicat 的 Update 配置项(已被注释)
:: reg delete HKEY_CURRENT_USER\Software\PremiumSoft\NavicatPremium\Update /f
:: 删除 CLSID 下以 Info 结尾的项的所有值,但排除 CAFEEFAC 开头的
for /f %%i in ('"REG QUERY "%rp%" /s | findstr /E %dn%"') do (
set "clsid=%%~nxi"
echo !clsid! | find /i "{CAFEEFAC" >nul
if errorlevel 1 (
echo [Deleting values under] %%i
reg delete "%%i" /va /f >nul 2>&1
) else (
echo [Skipped CAFEEFAC] %%i
)
)
echo finding.....
:: 遍历 CLSID 所有子项
for /f "tokens=*" %%a in ('reg query "%rp%"') do (
set "clsid=%%~nxa"
:: 跳过 {CAFEEFAC 开头的 CLSID,“CAFÉ FACE”(咖啡脸)——Sun/Oracle 的工程师幽默。
echo !clsid! | find /i "{CAFEEFAC" >nul
if errorlevel 1 (
:: 查找 Info 项
for /f "tokens=*" %%l in ('reg query "%%a" /f "%dn%" /s /e ^| findstr /i "%dn%"') do (
echo [Deleting key] %%a (matched: %dn%)
reg delete "%%a" /f >nul 2>&1
goto :next
)
:: 查找 ShellFolder 项
for /f "tokens=*" %%l in ('reg query "%%a" /f "%dn2%" /s /e ^| findstr /i "%dn2%"') do (
echo [Deleting key] %%a (matched: %dn2%)
reg delete "%%a" /f >nul 2>&1
goto :next
)
)
:next
)
echo re trial done!
:: 输出操作完成信息
pause
:: 暂停,等待用户按任意键继续
exit
:: 退出批处理
Psi脚本,执行快 clean-navicat.ps1
PowerShell 全选
# === CONFIG ===
# 是否 Dry-Run(只预览不执行删除)设置为 $false 将执行实际删除
$dryRun = $false
# === 清除 Navicat Premium 注册表项 ===
Write-Host "`n=== 清除 Navicat Registration 项 ==="
$navicatRegBase = "HKCU:\Software\PremiumSoft\NavicatPremium"
try {
Get-ChildItem -Path $navicatRegBase -Recurse -ErrorAction SilentlyContinue |
Where-Object { $_.Name -match "Registration" } |
ForEach-Object {
if ($dryRun) {
Write-Host "[DryRun] Would delete: $($_.PsPath)"
} else {
Write-Host "Deleting: $($_.PsPath)"
Remove-Item -Path $_.PsPath -Recurse -Force -ErrorAction SilentlyContinue
}
}
} catch {
Write-Warning "Navicat 注册表路径不存在或读取失败"
}
# === 查找并清除含 Info / ShellFolder 的 CLSID 项 ===
Write-Host "`n=== 清除包含 Info 或 ShellFolder 的 CLSID 注册项 ==="
# 调用 reg 命令查找匹配项(更快)
$matchedKeys = & reg query "HKCU\Software\Classes\CLSID" /s | findstr /i "Info ShellFolder"
if (!$matchedKeys) {
Write-Host "未找到包含 Info 或 ShellFolder 的 CLSID 子项。"
} else {
$matchedKeys -split "`r?`n" | ForEach-Object {
$regPath = $_.Trim()
if ($regPath) {
$psPath = "Registry::" + $regPath.Replace("HKEY_CURRENT_USER", "HKCU")
if ($dryRun) {
Write-Host "[DryRun] Would delete: $psPath"
} else {
Write-Host "Deleting: $psPath"
try {
Remove-Item -Path $psPath -Recurse -Force -ErrorAction Stop
} catch {
Write-Warning "删除失败: $psPath - $_"
}
}
}
}
}
Write-Host "`n=== 清理任务完成 ==="
添加本地计划
添加系统计划,就不用每次点击了
新建脚本文件:
搜索任务计划程序
创建任务
新建触发器
1)每10天触发一次
2) 登陆时执行一次
完成后如图所示
添加操作
点击确定,完成计划
计划添加成功后,重启系统,登录后,会出现一个cmd窗口
如果要自动隐藏CMD,取消脚本中的pause即可
PowerShell 全选
@echo off
set dn=Info
set dn2=ShellFolder
set rp=HKEY_CURRENT_USER\Software\Classes\CLSID
:: reg delete HKEY_CURRENT_USER\Software\PremiumSoft\NavicatPremium\Registration14XCS /f %针对<strong><font color="#FF0000">navicat</font></strong>15%
:: reg delete HKEY_CURRENT_USER\Software\PremiumSoft\NavicatPremium\Registration16XCS /f
for /f %%i in ('"REG QUERY "HKEY_CURRENT_USER\Software\PremiumSoft\NavicatPremium" /s | findstr /L Registration"') do (
echo deleteing: %%i
reg delete %%i /va /f
)
:: reg delete HKEY_CURRENT_USER\Software\PremiumSoft\NavicatPremium\Update /f
for /f %%i in ('"REG QUERY "HKEY_CURRENT_USER\Software\Classes\CLSID" /s | findstr /E Info"') do (
echo deleteing: %%i
reg delete %%i /va /f
)
echo finding.....
for /f "tokens=*" %%a in ('reg query "%rp%"') do (
:: echo %%a
for /f "tokens=*" %%l in ('reg query "%%a" /f "%dn%" /s /e ^|findstr /i "%dn%"') do (
echo deleteing: %%a
reg delete %%a /f
)
for /f "tokens=*" %%l in ('reg query "%%a" /f "%dn2%" /s /e ^|findstr /i "%dn2%"') do (
echo deleteing: %%a
reg delete %%a /f
)
)
echo re trial done!
pause
exit
版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
post 张国生