我需要检查多个远程Windows服务器(LAN中)的文件状态(现有?或上次修改日期)。这些文件可通过UNC路径访问。远程PC需要用户名和密码。最好是做某种脚本。检查多个Windows服务器上的远程文件存在
我不是系统管理员,但要求我的老板这样做,因为每台PC都是SQL Server的主机,而且该文件是数据库的备份。我是一名SQL Server数据库开发人员。我试图用T-SQL来做,但发现它不适合这样做(尽管可能是可行的)。
我需要检查多个远程Windows服务器(LAN中)的文件状态(现有?或上次修改日期)。这些文件可通过UNC路径访问。远程PC需要用户名和密码。最好是做某种脚本。检查多个Windows服务器上的远程文件存在
我不是系统管理员,但要求我的老板这样做,因为每台PC都是SQL Server的主机,而且该文件是数据库的备份。我是一名SQL Server数据库开发人员。我试图用T-SQL来做,但发现它不适合这样做(尽管可能是可行的)。
像创建一个批处理文件(比如check.bat
):
@echo off
set list=server1 server2 server3 server4 serverN
for %%s in (%list%) do (
echo Logging in to %%s
net use \\%%s\shared /user:mydomain\myuser password
echo Checking file existence on %%s
if exist \\%%s\shared\file.txt (
echo File exist on %%s
) else (
echo File does NOT exist on %%s
)
echo Logging out
net use \\%%s\shared /delete
)
有关net use
命令的详细信息,请参阅问题Mapping a network drive without hardcoding a drive letter in a batch file接受的答案。
感谢您的回复。 myuser是用户名,密码是密码?你的意思是将这个保存到.cmd文件然后运行?运行后屏幕立即消失,所以我如何知道结果?我真的是这个新手 – thotwielder
用户名/密码:是的。保存到.cmd:是的。失望:你可以在最后加上'暂停'命令。但是当文件存在或不存在时(而不是'echo File exists'),你可能想要做一些动作。你没有指定这个。请接受答案,如果它帮助你。谢谢。 –
我需要它循环遍历所有远程服务器,以便我可以获取某种类型的服务器是否具有该文件的列表。 – thotwielder
这些Windows服务器上的文件是否可以通过某个共享文件夹访问?即你有UNC路径来访问它们吗?或者你需要使用一些文件传输协议(FTP或其他)? –
是的,他们可以通过UNC路径访问。 – thotwielder
感谢您的澄清。请将此信息包含在您的问题中,以使其对其他读者更加清晰和有用。 –