我想通过PowerShell自动化许多日常任务。我们拥有的一个过程是成像台式机。完成此操作后,需要将图像文件从服务器硬盘驱动器上移出到网络驱动器。我正在编写一个应用程序以在我的计算机上运行的服务,该应用程序会调用PowerShell脚本并将所有内容敲开,只有在出现问题时才提醒我。

我在服务器上为脚本设置了一个目录。如果我从服务器调用脚本Filecopy.ps1,它可以正常工作:

copy-item C:\scripts\myFile1.txt -destination C:\scripts\myFile2.txt

但是,在我的.NET应用程序中,我从本地计算机上调用脚本:

RunScript(LoadScript(@"\\Server\ServerShare\FileCopy.ps1")); 

不起作用。那是因为它将C:脚本视为本地计算机上的c:脚本。所以,我更改它:

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.

这似乎是问题的根源。知道我怎么能解决这个问题吗?我以管理员的身份登录到服务器。

有帮助吗?

解决方案

将脚本作为管理员与网络共享IIRC无关紧要。默认共享权限仅允许阅读。这些perm需要更新以允许写入分享。

仅供参考,如果您正在使用 net share 要在Windows 7上创建股票,您需要使用 /grant:<users>,CHANGE 将这些权限授予用户。

其他提示

我在服务器2003 R2上。管理员在“安全性”选项卡下有完整的访问权限,但我转到了“共享”选项卡,权限,每个人都设置了读取访问权限。我将管理员和我自己添加为完全控制,现在生活很好!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top