我有一个Python程序,该程序通过网络驱动器中的FS访问文件。当我从控制台运行此程序时,一切都很好。当相同的程序作为用NSSM包装的服务运行时'尝试不同的解决方案,包括以所有权限为管理员用户运行该服务,但错误仍在继续。
1条回答 默认 最新
- @晓码自在 2023-05-23 00:13关注
该回答引用GPT与博主@晓码自在合作编写:
从您的描述,此问题似乎是Python程序作为Windows服务运行时无法访问网络驱动器导致的。这是因为:
Windows服务运行在svchost.exe中,以NETWORK SERVICE身份运行,默认不具有访问网络资源的权限。所以,您的Python程序作为服务运行时无法访问网络驱动器。
要解决此问题,有几个方法:
- 为服务账户分配对网络驱动器的访问权限。这需要:
- 找到服务使用的账户,通常为NETWORK SERVICE。
- 右键单击网络驱动器,选择“属性”。
- 选择“安全”选项卡,点击“编辑”按钮。
- 添加服务的账户,并勾选“完全控制”权限。
- 重新启动Windows服务,即可访问网络驱动器。
- 使用域帐户或本地管理员帐户运行服务。这需要:
- 创建一个域用户帐户或本地管理员用户。
- 以该用户身份登录,安装Python和相关依赖。
- 使用NSSM工具配置服务,选择“专用帐户”选项,输入新创建的用户帐户。
- 重新启动Windows服务,即可访问网络驱动器。
- 为服务的二进制文件和相关文件夹分配权限。这需要:
- 找到服务使用的二进制文件(如Python.exe)和相关文件夹(如Python安装目录)。
- 右键单击,选择“属性”。
- 选择“安全”选项卡,点击“编辑”按钮。
- 添加您的用户帐户并勾选“完全控制”权限。
- 重新启动Windows服务,即可访问网络驱动器。
解决 无用评论 打赏 举报
悬赏问题
- ¥20 有偿:在ubuntu上安装arduino以及其常用库文件。
- ¥15 请问用arcgis处理一些数据和图形,通常里面有一个根据点划泰森多边形的命令,直接划的弊端是只能执行一个完整的边界,但是我们有时候会用到需要在有很多边界内利用点来执行划泰森多边形的命令
- ¥30 在wave2foam中执行setWaveField时遇到了如下的浮点异常问题,请问该如何解决呢?
- ¥20 看图片)删除这个自动化录屏脚本就一直报错找不到脚本文件,如何解决?(相关搜索:bat文件)
- ¥750 关于一道数论方面的问题,求解答!(关键词-数学方法)
- ¥200 csgo2的viewmatrix值是否还有别的获取方式
- ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
- ¥15 请把下列每一行代码完整地读懂并注释出来
- ¥15 pycharm运行main文件,显示没有conda环境
- ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件