在Windows操作系统中,系统服务(Services)、计划任务(Scheduled Tasks)以及很多系统调用都是以SYSTEM系统账号进行操作的。用 net use 挂载,或者在文件管理器上直接挂载,挂载卷是以 Administrator 身份进行挂载的,而 SYSTEM 账号无法使用 Administrator 挂载的文件卷。
一、方法一:使用winSW工具,注册为windows系统服务
1、新建 MapNetworkDrive.bat文件
@echo off
:: 远程地址
set "target=192.168.0.87"
:: 重试次数
set "retry_count=0"
:: 最大重试次数
set "max_retries=5"
:: 日志地址
set "logfile=D:\mapNetworkDrive\MapNetworkDrive.log"
set "username=用户名"
set "password=密码"
:: 远程地址共享目录
set "share=\\%target%\sfpt"
:: 映射盘符
set "drive=Y:"
:: 获取当前日期和时间
for /f "delims=" %%a in ('powershell -Command "(Get-Date).ToString('yyyy-MM-dd HH:mm:ss')"') do set "current_datetime=%%a"
:while
ping -n 1 %target% > nul
if %errorlevel% == 0 (
if not exist %drive% (
net use %drive% %share% %password% /user:%username%
if %errorlevel% == 0 (
echo %current_datetime% - %target% is reachable and %drive% is mapped. >> %logfile%
goto :end
) else (
echo %current_datetime% - Failed to map %drive%. >> %logfile%
)
) else (
echo %current_datetime% - %drive% already exists. >> %logfile%
)
goto :end
) else (
echo %current_datetime% - %target% is not reachable. >> %logfile%
set /a "retry_count+=1"
if %retry_count% LSS %max_r