powershell move-item到网络文件夹在Windows 2012任务计划程序中不起作用

时间:2015-12-09 15:45:48

标签: windows powershell windows-scheduler

我有以下PowerShell代码:

$files = Get-ChildItem E:\Local_Files\Performance\*.txt -Recurse
foreach ($file in $files) {
    (Get-Content $file.PSPath) |
    Where-Object { $_.Trim() -ne "" } |
    Set-Content $file.PSPath
}

Move-Item -Path E:\Local_Files\Performance\*.* -Destination E:\Local_Files\ -Force

删除文件夹中所有文件的空行。然后,它将该文件夹上的任何文件移动到第二个文件夹。 Z:\是网络文件夹的映射网络驱动器。如果我在PowerShell中运行脚本,它可以工作。当我在任务计划程序中安排它时,它仅适用于第一位(Trim()方法)。

在两种情况下,我都设置了相同的用户名来运行作业。如果我使用本地文件夹作为move-item的目标,它也可以在任务计划程序中使用。

你知道它为什么不起作用吗?

我在Windows Server 2012 R2上。

非常感谢,

1 个答案:

答案 0 :(得分:0)

映射的驱动器仅在用户以交互方式登录时进行映射。对于计划任务,没有交互式登录,因此没有映射驱动器,因此任何使用它们的尝试都将失败。

你可以:

  • 使用New-PSDrive
  • 在您的脚本中映射驱动器号
  • 使用共享的UNC路径(首选方法)。

另请注意,执行任务的用户帐户必须对该UNC路径/共享具有适当的权限。