2011-01-20 220 views
3

我想通过PowerShell自动执行我的许多日常任务。我们拥有的一个过程是在几个小时后对桌面进行成像。完成此操作后,需要将图像文件从服务器硬盘驱动器移至网络驱动器。我正在编写一个应用程序作为服务在我的机器上运行,它将调用powershell脚本并将所有内容都敲出来,只有在出现问题时才提醒我。在网络共享上移动文件

我在服务器上为脚本设置了一个目录。

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

然而,在我的.net应用程序中,我调用脚本从我的本地机器:

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

隐而不宣”如果我把我的脚本,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. 

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

回答

9

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

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

+0

这是权限!谢谢基思! – deweycooter 2011-01-21 15:52:11

2

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

相关问题