go服务访问Windows网络共享盘总结

标题针对go服务访问Windows网络共享盘报找不到网络路径错误小结如下:

Windows服务常见登录身份:本地系统(LocalSystem), 本地服务(LocalService)和网络服务。每种身份访问Windows网络共享盘权限有差别。具体可以参见Windows官方文档。

  • 针对于LocalSystem用户访问网络共享盘需要使用Psexec.exe(有的系统不支持)工具切换到LocalSystem用户下挂载

  • 命令行下切换LocalSysterm切换PsExec.exe -i -s cmd.exe 映

射Windows网络共享盘运行 net use Z: \ip\www /persistent:yes

  • 针对系统管理员用户(Administrator)挂载的Windows网络共享盘,需要更改服务的登录身份为Administrator,
  • 修改服务登录身份nssm.exe set hello ObjectName .\Administrator password123456

改程序配置Windows网络共享地址http.Handle("/", http.FileServer(http.Dir("\\ip\www")))

  1. 程序代码和脚本如下:
1.main.go
// staticweb
package main
import (
	"net/http"
)
func main() {
	http.Handle("/", http.FileServer(http.Dir("Z:")))
	http.ListenAndServe(":80", nil)
}
  1. nssm注册服务
set curdir=%~dp0
cd /d  %curdir%
echo "install hello service..."
set hello_path=%curdir%\hello.exe
set cfg=%curdir%\config.conf
set stdout=%curdir%\log.stdout
set stderr=%curdir%\log.stderr
%curdir%\nssm.exe install hello %hello_path%
%curdir%\nssm.exe set hello AppDirectory %curdir%
%curdir%\nssm.exeset hello  AppParameters --config %cfg%
%curdir%\nssm.exe set hello  Start SERVICE_AUTO_START
%curdir%\nssm.exe set hello  ObjectName LocalSystem
%curdir%\nssm.exe set hello AppExit Default Restart
%curdir%\nssm.exe set hello AppStdout %stdout%
%curdir%\nssm.exe set hello AppStderr %stderr%
%curdir%\nssm.exe set hello AppRotateFiles 1
%curdir%\nssm.exe set hello AppRotateOnline 1
%curdir%\nssm.exe set hello AppRotateSeconds 3600

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值