当 Taskscheduler 执行时,Powershell 从机器获取文件不起作用

Powershell get files from machine doesn't work when executed by Taskscheduler

我有一台机器,我应该从中读取日志数据。数据位于 192.168.1.151/traceability。 我写了一个小脚本,应该能够 return 文件。当我手动启动它时它确实有效。但是当我使用 Windows Task Scheduler 执行它时,它无法获取文件:

$WinAPI = @"
   public class WinAPI
   {
      [System.Runtime.InteropServices.DllImport("kernel32.dll", CharSet = 
      System.Runtime.InteropServices.CharSet.Auto)]
      public static extern void OutputDebugString(string message);
   }
"@
$Path = "\192.168.1.151\traceability"
$items = get-childitem -Path $Path
[WinAPI]::OutputDebugString($items.Length);

$items.Length在Task Scheduler执行时为0,手动执行时为3。 该任务设置为 运行,对管理员帐户具有完全权限(成功测试脚本的同一帐户)。 我还尝试将路径映射到 Z: 并改用 $Path = "Z:\" 但这无助于解决问题。

是我做错了什么,还是无法使用 Powershell 获取文件。

我通过在 Powershell 脚本中进行映射解决了问题:

$net = new-object -ComObject WScript.Network
$net.MapNetworkDrive("p:", $Path, $false, "user", "password")

管理员用户可以通过这种方式访问​​文件。