我想要一个屏幕保护程序/登录脚本,它检查网络路径是否可用,然后将其映射到一个单元。如果它不可用,则断开连接/不连接。
网络路径是\ 192.168.1.1 \ drive1
此外,我需要使用用户名/密码连接到该路径。
我想要一个屏幕保护程序/登录脚本,它检查网络路径是否可用,然后将其映射到一个单元。如果它不可用,则断开连接/不连接。
网络路径是\ 192.168.1.1 \ drive1
此外,我需要使用用户名/密码连接到该路径。
Answers:
你可以使用 exist
命令检查路径是否有效:
if exist \\192.168.1.1\drive1 net use s: \\192.168.1.1\drive1
如果您需要提供凭据(即您当前的Windows用户无权访问该共享),请添加 /user
:
if exist \\192.168.1.1\drive1 net use s: \\192.168.1.1\drive1 /user:myDomain\myUser myPassword
如果共享已存在,并且您想要删除它,如果它不再可用,请添加一个 else
条款:
if exist \\192.168.1.1\drive1 (net use s: \\192.168.1.1\drive1) else (net use /delete s:)
再次,添加 /user
如果你需要它。
您可以在类似于以下内容的批处理文件中将它们组合在一起:
@echo off
if exist \\192.168.1.1\drive1 (set shareExists=1) else (set shareExists=0)
if exist y:\ (set driveExists=1) else (set driveExists=0)
if %shareExists%==1 if not %driveExists%==1 (net use y: \\192.168.1.1\drive1)
if %shareExists%==0 if %driveExists%==1 (net use /delete y:)
set driveExists=
set shareExists=
Powershell会让这很简单:
If(Test-Path \\192.168.1.1\Drive1)
{
net use M: \\192.168.1.1\Drive1 /user:Domain\UserName Password
}
else {net use M: /delete > nul}
尝试使用Windows文件浏览器或使用net use命令映射它只是更简单。无论是有效还是无效。
这是最终的代码:
function run{
net use
If(Test-Path \\192.168.1.1\volume1)
{
if (((New-Object System.IO.DriveInfo("Y:")).DriveType -ne "NoRootDirectory"))
{
"already mounted and accessible"
}
else
{
net use Y: \\192.168.1.1\volume1
"mounting"
}
}
else {
if (((New-Object System.IO.DriveInfo("Y:")).DriveType -ne "NoRootDirectory"))
{
net use Y: /delete
"removing"
}
}
exit 4
}
run
我用 Test-Path \\192.168.1.1\volume1
建议检查网络路径是否可用 ((New-Object System.IO.DriveInfo("Y:")).DriveType -ne "NoRootDirectory")
检查驱动器号是否存在。