gpt4 book ai didi

windows-7 - 如何说服 powershell(通过任务计划程序运行)找到我的网络驱动器?

转载 作者:行者123 更新时间:2023-12-02 22:38:13 25 4
gpt4 key购买 nike

我在 Windows 7 上有一个简单的 powershell 脚本,但无法正常工作。 (这在 XP 上不是问题)

get-psdrive

当我直接运行它时,我得到

  Name           Used (GB)     Free (GB) Provider      Root
---- --------- --------- -------- ----
A FileSystem A:\
Alias Alias
C 12.30 11.60 FileSystem C:\
cert Certificate \
D FileSystem D:\
Env Environment
Function Function
HKCU Registry HKEY_CURRENT_USER
HKLM Registry HKEY_LOCAL_MACHINE
**Q 1486.63 289.41 FileSystem Q:\**
Variable Variable
WSMan WSMan

当我通过任务计划程序运行它时,我得到

Name           Used (GB)     Free (GB) Provider      Root
---- --------- --------- -------- ----
A FileSystem A:\
Alias Alias
C 12.30 11.60 FileSystem C:\
cert Certificate \
D FileSystem D:\
Env Environment
Function Function
HKCU Registry HKEY_CURRENT_USER
HKLM Registry HKEY_LOCAL_MACHINE
Variable Variable
WSMan WSMan

请注意,我丢失了 Q: 驱动器。如果有任何方法可以解决这个问题,我就可以在那里复制文件......

最佳答案

网络驱动器以及实际上所有驱动器号都被“映射”到给定登录 session 的卷。当您创建要运行的计划任务时,它会创建一个新的登录 session (即使您当前已登录)并在该上下文中运行计划任务。因此,虽然您可能已登录并映射了 Q 驱动器 - 运行任务的第二个 session 具有完全不同的环境,但 Windows 足以自动为所有 session 映射 C:(和其他物理驱动器)。

使用 PowerShell 时,您不需要将映射映射到驱动器,除非是为了方便。与 cmd.exe 前身不同,PowerShell 非常乐意将当前目录更改为 UNC 样式路径:

cd \\server\share\directory

是否可以在不映射驱动器的情况下完成您所需要的任务?您提到了复制文件 - 如果任务使用您的凭据运行,并假设您拥有 Q: 驱动器的权限(假设\server\share),那么您的脚本应该能够执行以下操作:

copy c:\logs\*.log \\server\share\logs

并且无需映射驱动器即可正常工作。

这是我的测试的完整命令信息。如果您的环境不同,请注意如何。仅当我登录、具有最高权限并针对 Windows 7/Server 2008 R2 配置时,该任务才配置为以我的域帐户运行。

该操作是启动一个程序:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

参数

-command copy c:\logs\*.log \\server\share\logs

关于windows-7 - 如何说服 powershell(通过任务计划程序运行)找到我的网络驱动器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4055704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com