从远程服务器复制到本地服务器
问题描述:
我试图做一个无人值守的备份我们的网站从2个Web服务器到我们的备份服务器。从远程服务器复制到本地服务器
$FolderName = $(Get-Date -Format D)
New-Item -ItemType directory -Path D:\backups\webservers\$FolderName
New-Item -ItemType directory -Path D:\backups\webservers\$FolderName\ColoWebP1
New-Item -ItemType directory -Path D:\backups\webservers\$FolderName\ColoWebD1
Copy-Item \\colowebp1.wa.local\e$\websites D:\backups\webservers\$FolderName\ColoWebP1 -recurse
Copy-Item \\colowebp1.wa.local\e$\backup D:\backups\webservers\$FolderName\ColoWebP1 -recurse
Copy-Item \\colowebd1.wa.local\e$\websites D:\backups\webservers\$FolderName\ColoWebD1 -recurse
Copy-Item \\colowebd1.wa.local\e$\backup D:\backups\webservers\$FolderName\ColoWebD1 -recurse
现在我还没有得到这个无人值守的运行。它创建文件夹但不复制文件。现在出现了新的皱纹。当我手动运行我收到此错误:
Copy-Item : Access to the path 'D:\backups\webservers\Tuesday, February 25, 2014\ColoWebD1\websites\Agent_eVantage_Beta
\Master_wSlider.master' is denied.
At C:\scripts\Webserverbackup.ps1:12 char:10
+ Copy-Item <<<< \\colowebd1.wa.local\e$\websites D:\backups\webservers\$FolderName\ColoWebD1 -recurse
+ CategoryInfo : PermissionDenied: (Master_wSlider.master:FileInfo) [Copy-Item], UnauthorizedAccessExcept
ion
+ FullyQualifiedErrorId : CopyFileInfoItemUnauthorizedAccessError,Microsoft.PowerShell.Commands.CopyItemCommand
但所有的文件似乎在那里。 (我还没有尝试过这个还原)。
所以我的问题是: 我读到这个错误的权利?是否无法验证服务器正在运行?
我该如何让这个无人值守运行?
答
的问题是在您的副本,项目的美元符号(即\$e\
)
PowerShell是解释$符号作为变量。我会改为使用共享文件夹而不是驱动器号。
Copy-Item '\\colowebp1.wa.local\Share\websites' "D:\backups\webservers\$FolderName\ColoWebP1" -recurse
答
你必须设置适当的权限来访问管理共享。使用资源管理器访问上面的目标路径时会发生什么?如果一切设置正确,您应该可以在没有身份验证的情况下进入共享。 (例如使用默认网络凭证)。但是,您的解决方案本身很好,而且一旦不需要身份验证就可以使用。有PS的解决方法,但你必须提供一些关于网络和UAC设置的细节。一旦你提供细节,我会很乐意尝试解决这个问题。
在工作中,我使用这样的路径来管理共享,这些工作都很完美,Powershell不会将共享视为一个变量。
感谢,
亚历
我可以用资源管理器访问共享没有问题。重新启动后,我确实必须输入我的凭证,但在此之后它开始工作。我只是想设置一些东西,所以我不必每次都这么做(虽然我们的备份服务器很少重启)。另外不确定是否重要,但备份服务器位于不同的域(在我启动之前是否有) – neckbishop