運行於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/

 






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM