在网络共享上移动文件

时间:2011-01-20 21:27:56

标签: fileshare

我希望通过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.

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

2 个答案:

答案 0 :(得分:9)

以管理员身份运行脚本与网络共享IIRC无关。默认共享权限仅允许读取。需要更新这些权限以允许写入共享。

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

答案 1 :(得分:2)

我在Server 2003 R2上。管理员在“安全”选项卡下具有完全访问权限,但我转到了共享选项卡,权限,并且Everyone已设置为“读取”访问权限。我添加了管理员和我自己作为完全控制,现在生活是美好的!