运行于Windows内建账户下的服务访问映射网络驱动器的方法

Windows服务如果是运行在本地系统帐户下或本地服务帐户下,它只能访问这个账户自己创建的映射驱动器,UNC路径访问则不受次限制。
LocalService Account (NT AUTHORITY\LocalService)没有简单的访问映射驱动器的方法。需要用NSSM之类的软将将脚本转为在LocalService账户下运行的服务。
LocalSystem Account (NT AUTHORITY\SYSTEM)则有方法以他的身份创建映射驱动器
 
首先下载PsExec程序,它在PsTools中: http://technet.microsoft.com/en-us/sysinternals/bb896649.aspx
然后运行一下PowerShell脚本
$PSEXECPATH = "E:\GreenSOft\PsTools\PsExec.exe"  #指定PsExec程序完整路径
$SHARESRVPATH = "192.168.1.206"  #连接服务器地址
$SHAREFOLDERPATH = "\\192.168.1.206\test"  #共享UNC路径
$CONNUSER = "MSSQLUser"  #连接用户名
$CONNPWD = "SHPPD2006!@#!@#SQL"  #连接密码

#删除旧的网络映射驱动器
Start -Process  -Wait  `
-PSPath $PSEXECPATH  `
-ArgumentList  "-accepteula -s net use P: /delete /y";

#生成新的网络映射驱动器
Start -Process  -Wait  `
-PSPath $PSEXECPATH  `
-ArgumentList  "-accepteula -s net use P: $SHAREFOLDERPATH /user:" "$SHARESRVPATH\$CONNUSER" " " "$CONNPWD" "  /persistent:yes";


如果要每次启动时都自动以LocalSystem账户创建映射驱动器,则按一下步骤:
1、在运行中输入 gpedit.msc以打开“ 本地组策略编辑器
2、 在控制台树中,单击“脚本(启动/关机)”。路径为“计算机配置\Windows 设置\脚本(启动/关机)”。
3、添加编辑,指定脚本位置
4、脚本内容如下:
$PSEXECPATH = "E:\GreenSOft\PsTools\PsExec.exe"  #指定PsExec程序完整路径
$SHARESRVPATH = "192.168.1.206"  #连接服务器地址
$SHAREFOLDERPATH = "\\192.168.1.206\test"  #共享UNC路径
$CONNUSER = "MSSQLUser"  #连接用户名
$CONNPWD = "SHPPD2006!@#!@#SQL"  #连接密码

#生成新的网络映射驱动器
Start -Process  -Wait  `
-PSPath $PSEXECPATH  `
-ArgumentList  "-accepteula -s net use P: $SHAREFOLDERPATH /user:" "$SHARESRVPATH\$CONNUSER" " " "$CONNPWD" " ";



参考资料:
INFO: Services and Redirected Drives  http://support.microsoft.com/kb/180362/en-us
Windows服务访问网络映射驱动器   http://blog.163.com/xia_wenlan/blog/static/74348620200882344642907/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值