Copy-item cmdlet 无法按预期工作,我不明白为什么。这是我的代码:
$Source = "C:\folder1"
$Destination = "\\172.22.0.115\c$\folder2\"
$Password = ConvertTo-SecureString -AsPlainText -Force -String "MyPassword"
$User = "Domain\Administrator"
$credentials = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $user,$password
Copy-Item $Source -Destination $Destination -Credential $credentials
这是我收到的错误:
The FileSystem provider supports credentials only on the New-PSDrive cmdlet. Perform
the operation again without specifying credentials.
At C:\Sans titre2.ps1:7 char:1
+ Copy-Item $Source -Destination $Destination -Credential $credentials
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotImplemented: (:) [], PSNotSupportedException
+ FullyQualifiedErrorId : NotSupported
我也尝试过这个:
Start-BitsTransfer -Source $source -Destination $Destination -Credential $credentials
并且 Robocopy 不支持凭证......
我在 Windows 7 上运行 Powershell V4.0,我的服务器也在 Windows server 2012 r2 上运行,并且也运行 powershell V4.0。
我想将本地文件夹(包含所有子文件夹)复制到远程路径 \ipadress\c$\folder
我该如何解决?
谢谢
答案1
$Source = "C:\folder1"
$Destination = "X:\"
$Password = ConvertTo-SecureString -AsPlainText -Force -String "MyPassword"
$User = "Domain\Administrator"
$credentials = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $user,$password
New-PSDrive -Name X: -PSProvider FileSystem -Root "\\172.22.0.115\c$\folder2" -Credential $credentials
Copy-Item $Source -Destination $Destination
编辑:愚蠢的错误,您可以省略 copy-item cmdlet 上的 -credential 开关,因为您已经使用 new-psdrive 完成了身份验证...
答案2
以具有所需权限的其他用户身份运行 PowerShell 窗口,并从脚本中提取凭据部分。
以具有所需权限的其他用户身份运行 PowerShell/cmd 窗口,并使用其他实用程序(而不是 PS cmdlet,如 robocopy)。