Python脚本无法访问计划任务中的网络驱动器,但可以手动运行

Python脚本无法访问计划任务中的网络驱动器,但可以手动运行,python,windows,scheduled-tasks,scheduler,Python,Windows,Scheduled Tasks,Scheduler,我有一个简单的Python脚本来扫描网络驱动器并复制文件。脚本可以在IDE中复制文件。但是,如果我将脚本添加到任务调度器中,它将显示网络驱动器不可访问。 代码片段 os.system("net use z: /d /Y") os.system("net use z: \\server\folder password /user:user_name /p:yes") network_drive=r"\\server\folder" if not os.path.exists(network_dri

我有一个简单的Python脚本来扫描网络驱动器并复制文件。脚本可以在IDE中复制文件。但是,如果我将脚本添加到任务调度器中,它将显示网络驱动器不可访问。 代码片段

os.system("net use z: /d /Y")
os.system("net use z: \\server\folder password /user:user_name /p:yes")
network_drive=r"\\server\folder"
if not os.path.exists(network_drive):
    print("Drive  "+ network_drive+" is not available")
else:
    #copy files
手动运行代码,它可以复制。在任务计划程序中运行,它将打印信息。 我从中添加网络映射线。似乎不适合我。 如何在python代码中访问网络驱动器?在TaskScheduler中,我已经选择了“无论用户是否登录都运行”和“以最高权限运行”

编辑: 真正的问题是net use没有正确装载文件夹。 我检查了os.system的输出,得到以下错误

系统错误1219发生在与服务器或服务器的多个连接上 使用多个用户名的同一用户共享的资源是 不允许。断开以前与服务器或服务器的所有连接 共享资源,然后重试

从中合并解决方案,删除所有装载并重新启动服务器为我解决问题。
请告诉我是否有不重新启动服务器的解决方案。

Vista和更高版本对计划任务的安全性进行了重大改进,以防止黑客安装可以访问网络资源的计划任务

当用户未登录时,任务调度器使用“用户服务”(S4U)身份验证,拒绝用户访问任何网络功能。这适用于映射驱动器和使用UNC文件规范的驱动器

“以最高权限运行”不会向指定用户授予更高的权限,而是在安装Windows时创建的系统管理员帐户的完全独立的安全令牌下运行


我使用映射驱动器或UNC规范访问网络驱动器的唯一方法是让机器保持打开状态,用户登录。

在第二次
系统调用中没有使用原始字符串,因此路径中的
\f
表示一个换页字符。我建议您使用
network\u drive=os.path.normpath('//server/folder')
然后使用字符串替换:
os.system('netuse z:'%s”%s/用户:%s/p:yes%%(network\u drive,密码,用户名))