Last active
February 1, 2025 11:58
-
-
Save taozhiyu/a56b8985677c3fd3f74c52590baf1588 to your computer and use it in GitHub Desktop.
lm studio network controller
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
:: 请以 ASCII 编码保存 | PLEASE SAVE AS ENCODING ASCII !!! | |
:: 使用 | Usage: | |
:: 1. 直接打开 | Just double-click Open | |
:: 2. filename [option] | |
:: option: | |
:: enable | 启用网络控制(禁用网络) | |
:: disable | 禁用网络控制(恢复网络) | |
:: @Author taozhiyu(涛之雨) @ https://github.com/taozhiyu | |
:: @License GPL-3.0-or-later | |
:: @GIST PAGE https://gist.github.com/taozhiyu/a56b8985677c3fd3f74c52590baf1588 | |
@echo off | |
setlocal enabledelayedexpansion | |
for /f %%a in ('echo prompt $E ^| cmd') do set "ESC=%%a" | |
set "RED=%ESC%[31m" | |
set "GREEN=%ESC%[32m" | |
set "YELLOW=%ESC%[33m" | |
set "CYAN=%ESC%[36m" | |
set "RESET=%ESC%[0m" | |
NET FILE 1>NUL 2>&1 || ( | |
echo %YELLOW%请求管理员权限...%RESET% | |
if "%1" NEQ "" ( | |
PowerShell -Command "Start-Process -FilePath '%~0' -Verb RunAs -ArgumentList '%*'" && EXIT | |
) | |
PowerShell -Command "Start-Process -FilePath '%~0' -Verb RunAs" && EXIT | |
) | |
set "LM_PATH=" | |
set "ELEVATE_PATH=" | |
set "LMS_PATH=%USERPROFILE%\.lmstudio\bin\lms.exe" | |
for %%K in ("HKEY_LOCAL_MACHINE" "HKEY_CURRENT_USER") do ( | |
if not defined LM_PATH ( | |
for /f "tokens=2*" %%A in ('reg query "%%~K\SOFTWARE\c6dbe996-22a9-5998-b542-7abe33da3b83" /v InstallLocation 2^>nul') do ( | |
if "%%A"=="REG_SZ" set "LM_PATH=%%B" | |
) | |
) | |
) | |
if not defined LM_PATH ( | |
echo %RED%错误:未找到LM Studio安装路径%RESET% | |
pause | |
exit /b 1 | |
) | |
set "ELEVATE_PATH=%LM_PATH%\resources\elevate.exe" | |
if not exist "%LM_PATH%\LM Studio.exe" ( | |
echo %RED%错误:在 %LM_PATH% 未找到 LM Studio.exe%RESET% | |
pause | |
exit /b 1 | |
) | |
if not exist "%ELEVATE_PATH%" ( | |
echo %RED%错误:在 %ELEVATE_PATH% 未找到 elevate.exe%RESET% | |
pause | |
exit /b 1 | |
) | |
if not exist "%LMS_PATH%" ( | |
echo %YELLOW%警告:在 %LMS_PATH% 未找到 lms.exe%RESET% | |
echo %YELLOW%打开程序后可能会自动生成%RESET% | |
) | |
if "%1" NEQ "" ( | |
set "action=%1" | |
goto mainfunction | |
) | |
:menu | |
cls | |
echo %CYAN%LM Studio 网络控制工具%RESET% | |
echo Power by 涛之雨(taozhiyu) | |
echo License GPL-3.0-or-later | |
echo ==================================== | |
echo %GREEN%[1] 启用封锁%RESET% 阻止所有网络通信 | |
echo %RED%[2] 解除封锁%RESET% 恢复网络访问权限 | |
echo ==================================== | |
set /p "choice=请输入操作编号 (1/2): " | |
if "%choice%"=="1" ( | |
set "action=enable" | |
) else if "%choice%"=="2" ( | |
set "action=disable" | |
) else ( | |
echo %RED%无效输入,请重新选择%RESET% | |
timeout /t 2 >nul | |
goto menu | |
) | |
:mainfunction | |
if /i "%action%"=="enable" ( | |
echo %YELLOW%[ 正在配置LM Studio规则... ]%RESET% | |
netsh advfirewall firewall add rule name="LM Studio" dir=out action=block program="%LM_PATH%\LM Studio.exe" enable=yes >nul 2>&1 | |
netsh advfirewall firewall add rule name="LM Studio" dir=in action=block program="%LM_PATH%\LM Studio.exe" enable=yes >nul 2>&1 | |
echo %YELLOW%[ 正在配置Elevate规则... ]%RESET% | |
netsh advfirewall firewall add rule name="LM Studio Elevate" dir=out action=block program="%ELEVATE_PATH%" enable=yes >nul 2>&1 | |
netsh advfirewall firewall add rule name="LM Studio Elevate" dir=in action=block program="%ELEVATE_PATH%" enable=yes >nul 2>&1 | |
if exist "%LMS_PATH%" ( | |
echo %YELLOW%[ 正在配置LMS规则... ]%RESET% | |
netsh advfirewall firewall add rule name="LMS Server" dir=out action=block program="%LMS_PATH%" enable=yes >nul 2>&1 | |
netsh advfirewall firewall add rule name="LMS Server" dir=in action=block program="%LMS_PATH%" enable=yes >nul 2>&1 | |
) | |
echo %GREEN%[SUCCESS] 网络封锁已生效!%RESET% | |
) else if /i "%action%"=="disable" ( | |
echo %YELLOW%[ 正在清除防火墙规则... ]%RESET% | |
echo %CYAN%[正在删除LM Studio规则]%RESET% | |
netsh advfirewall firewall delete rule name="LM Studio" program="%LM_PATH%\LM Studio.exe" >nul 2>&1 | |
echo %CYAN%[正在删除Elevate规则]%RESET% | |
netsh advfirewall firewall delete rule name="LM Studio Elevate" program="%ELEVATE_PATH%" >nul 2>&1 | |
if exist "%LMS_PATH%" ( | |
echo %CYAN%[正在删除LMS规则]%RESET% | |
netsh advfirewall firewall delete rule name="LMS Server" program="%LMS_PATH%" >nul 2>&1 | |
) | |
echo %GREEN%[SUCCESS] 网络访问已恢复!%RESET% | |
) else ( | |
goto menu | |
) | |
timeout /t 5 >nul | |
endlocal |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment