我有三台客户机A、B和C,均连接到互联网并使用微软操作系统。我还有一台服务器X,操作系统是Windows Server 2008 R2。我想要创建一种允许三个客户机可以在服务器端获得文件夹级别的访问权限的架构。我将一份CSV文件发送到客户端的共享文件夹上,是否有办法用服务器X上的Excel打开这份文件呢?客户机A、B和C的IP地址不是静态的,因为他们通过某个应用程序连接到服务器,设置的是动态IP地址。我的服务器X的IP地址是静态的。
文件共享的方法有多种,我们在这里分享最简单和最基础的办法。
一种思路是创建文件共享并在服务器端进行分享,将CSV文件纳入共享范围并允许客户机对其进行访问。你也许会觉得与其等待文件共享,不如在三个客户机上都复制一下文件来的更快,正因为如此我也推荐除此之外的其他办法。
如果三台客户机和一台服务器都是独立的工作站,并非Active Directory环境的一部分的话,你必须手动进行权限配置。在所有工作站上创建带有密码的管理员账户,这样就能够通过服务器控制所有客户机。相同的密码使工作变得简单,也要记得考虑安全因素定期更换密码。
如果你的DHCP服务器运行在连接互联网的路由器上,就可以在文件共享过程中使用工作站的名称。尝试去ping一下看看两台工作站IP地址的名称问题是否已经搞定。如果连不通,重置你的客户端并使用静态IP地址进行连接。
现在使用你的管理员账户复制你的CSV文件,假设C:是你的Windows安装目录,就可以通过路径\workstationnamec$远程访问每个工作站的驱动器,将文件复制到你的目标位置,过程中可以使用复制命令来编写这个脚本。
例如,使用c:data.csv \workstationnamec$destination命令为每个客户机进行文件复制操作。并将该命令存储到批处理文件中,通过创建Windows计划任务来运行你需要的文件。我们可以在批处理文件中加入用户名和密码,但考虑到安全问题,将具体内容添加到Windows Credential Manager,以便使用缓存认证。
最后,从服务器运行命令,运行Excel并打开之前的CSV文件。这里会比预想的更难,你可以创建一项计划任务并触发内置的计划任务程序,每台客户机都需要用脚本创建计划任务。
schtasks.exe /create /s workstationname /tn "Excel" /tr "C:Program Files (x86)Microsoft OfficeOffice14Excel.exe C:destinationdata.csv"/sc ONCE /sd 01/01/1910 /st 00:00
以上命令会创建一项计划任务并唤醒Excel,运行excel.exe并打开data.csv。
接着,使用如下命令触发Excel来运行csv后缀文件:schtasks.exe /run /s workstationname /tn "Excel"
任务也许会卡住,在再次运行之前需要先结束任务,使用如下命令:
schtasks.exe /end /s workstationname /tn "Excel"
编辑提醒:PSexec工具需要凭证,因此在某些特殊情况下无法正常工作,特别是提问者的文件共享服务器的情况。
本文转自d1net(转载)