powershell 将项目移动到网络文件夹在 windows 2012 任务计划程序中不起作用
powershell move-item to a network folder doesn't work in windows 2012 task 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()
方法)。
在这两种情况下,我都为 运行 作业设置了相同的用户名。如果我使用本地文件夹作为移动项目的目标,它也适用于任务计划程序。
您知道它为什么不起作用吗?
我在 Windows Server 2012 R2.
非常感谢,
映射的驱动器仅在用户以交互方式登录时映射。对于计划任务,没有交互式登录,因此没有映射驱动器,因此任何使用它们的尝试都会失败。
您可以:
- 将脚本中的驱动器号映射为
New-PSDrive
- 使用共享的 UNC 路径(首选方法)。
另请记住,执行任务的用户帐户必须对该 UNC path/share 具有适当的权限。
我有以下一段 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()
方法)。
在这两种情况下,我都为 运行 作业设置了相同的用户名。如果我使用本地文件夹作为移动项目的目标,它也适用于任务计划程序。
您知道它为什么不起作用吗?
我在 Windows Server 2012 R2.
非常感谢,
映射的驱动器仅在用户以交互方式登录时映射。对于计划任务,没有交互式登录,因此没有映射驱动器,因此任何使用它们的尝试都会失败。
您可以:
- 将脚本中的驱动器号映射为
New-PSDrive
- 使用共享的 UNC 路径(首选方法)。
另请记住,执行任务的用户帐户必须对该 UNC path/share 具有适当的权限。