mirror of
https://github.com/bin456789/reinstall.git
synced 2025-06-07 21:09:56 +00:00
windows: 优化 frpc 计划任务运行方式
This commit is contained in:
parent
fb13af7a3d
commit
e11024319f
1
trans.sh
1
trans.sh
@ -2921,7 +2921,6 @@ modify_windows() {
|
||||
cp -f /configs/frpc.toml "$os_dir/frpc/frpc.toml"
|
||||
download "$confhome/windows-frpc.xml" "$os_dir/frpc/frpc.xml"
|
||||
download "$confhome/windows-frpc.bat" "$os_dir/frpc/frpc.bat"
|
||||
download "$confhome/windows-frpc-workaround.bat" "$os_dir/frpc/frpc-workaround.bat"
|
||||
bats="$bats frpc\frpc.bat"
|
||||
else
|
||||
warn "$windows_arch Not Support frpc"
|
||||
|
@ -1,18 +0,0 @@
|
||||
@echo off
|
||||
mode con cp select=437 >nul
|
||||
|
||||
rem 如果找到 LOCAL SERVICE 运行的 frpc,则结束 SYSTEM 运行的 frpc
|
||||
rem 如果没找到 frpc,则运行 frpc(本脚本是用 SYSTEM 运行,好像无法 runas "NT AUTHORITY\LOCAL SERVICE")
|
||||
|
||||
rem tasklist 返回值始终为 0,因此需要用 findstr
|
||||
|
||||
:loop
|
||||
tasklist /FI "IMAGENAME eq frpc.exe" /FI "USERNAME eq NT AUTHORITY\LOCAL SERVICE" | findstr /I "frpc.exe" && goto :kill_system_frpc
|
||||
tasklist /FI "IMAGENAME eq frpc.exe" | findstr /I "frpc.exe" || start %SystemDrive%\frpc\frpc.exe -c %SystemDrive%\frpc\frpc.toml
|
||||
timeout 5
|
||||
goto :loop
|
||||
|
||||
:kill_system_frpc
|
||||
taskkill /F /T /FI "IMAGENAME eq frpc.exe" /FI "USERNAME eq NT AUTHORITY\SYSTEM"
|
||||
|
||||
del "%~f0"
|
@ -4,35 +4,30 @@ mode con cp select=437 >nul
|
||||
rem Windows Deferder 会误报,因此要添加白名单
|
||||
powershell -ExecutionPolicy Bypass -Command "Add-MpPreference -ExclusionPath '%SystemDrive%\frpc\frpc.exe'"
|
||||
|
||||
rem ---------- DEBUG ----------
|
||||
rem 检查服务状态
|
||||
rem sc query Schedule >%SystemDrive%\x.txt 2>&1
|
||||
|
||||
rem 启用日志
|
||||
rem wevtutil set-log Microsoft-Windows-TaskScheduler/Operational /enabled:true
|
||||
rem ---------- DEBUG ----------
|
||||
|
||||
rem 创建计划任务并立即运行
|
||||
schtasks /Create /TN "frpc" /XML "%SystemDrive%\frpc\frpc.xml"
|
||||
schtasks /Run /TN "frpc"
|
||||
del "%SystemDrive%\frpc\frpc.xml"
|
||||
|
||||
rem win11 在首次登录后计划任务才生效
|
||||
rem win10+ 在首次登录后计划任务才生效
|
||||
rem 即使手动重启,计划任务也没有运行
|
||||
|
||||
rem 如果 10 秒内有 frpc 进程,则代表计划任务已经生效,不需要首次登录
|
||||
rem 如果 10 秒后也没有 frpc 进程,则需要运行 frpc-workaround.bat
|
||||
rem 如果 10 秒后也没有 frpc 进程,则需要临时改用 SYSTEM 用户运行计划任务
|
||||
for /L %%i in (1,1,10) do (
|
||||
timeout 1
|
||||
tasklist /FI "IMAGENAME eq frpc.exe" | find /I "frpc.exe" && (
|
||||
del "%SystemDrive%\frpc\frpc-workaround.bat"
|
||||
goto :end
|
||||
)
|
||||
)
|
||||
|
||||
rem 后台运行 frpc-workaround.bat
|
||||
rem 需要加 cmd /c,不然 frpc-workaround.bat 结束后有 cmd 窗口残留
|
||||
start cmd /c "%SystemDrive%\frpc\frpc-workaround.bat"
|
||||
rem 临时改用 SYSTEM 用户运行计划任务,运行后再改回 Local Service 用户
|
||||
schtasks /Change /TN "frpc" /RU "S-1-5-18"
|
||||
schtasks /Run /TN "frpc"
|
||||
schtasks /Change /TN "frpc" /RU "S-1-5-19"
|
||||
|
||||
:end
|
||||
rem 删除此脚本
|
||||
|
Loading…
x
Reference in New Issue
Block a user