我想通过 powershell 自动化我的许多日常任务。我们拥有的一个过程是在数小时后对桌面进行映像。完成此操作后,需要将映像文件从服务器硬盘驱动器移至网络驱动器。我正在编写一个应用程序以在我的机器上作为服务运行,它将调用 powershell 脚本并敲除所有内容,仅在出现问题时提醒我。
我在服务器上为脚本设置了一个目录。如果我从服务器调用我的脚本 FileCopy.ps1,它工作正常:
copy-item C:\scripts\myFile1.txt -destination C:\scripts\myFile2.txt
但是,在我的 .Net 应用程序中,我从本地机器调用脚本:
RunScript(LoadScript(@"\\Server\ServerShare\FileCopy.ps1"));
不工作。那是因为它将 C:\scripts 视为在本地计算机上。所以,我改变它:
copy-item \\Server\ServerShare\myFile1.txt -destination \\Server\ServerShare\myFile2.txt
不工作。我在脚本中添加了另一行:
copy-item \\Server\ServerShare\myFile1.txt -destination \\Server\ServerShare\myFile2.txt
get-childitem \\Server\ServerShare | format-table name
它仍然不会复制文件,但会返回服务器上脚本目录的内容。
所以我回到服务器并运行带有 UNC 路径的脚本 - powershell 返回一个错误
Copy-Item : Access to the path '\\Server\ServerPath\myFile2.txt' is denied.
这似乎是问题的根源。知道如何解决这个问题吗?我以管理员身份登录服务器。