10

Copy-item cmdlet is not working as expected, i don't understand why. This is my code :

$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 

And this is the error I get :

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

I also tried this :

Start-BitsTransfer -Source $source -Destination $Destination -Credential $credentials

And Robocopy doesn't support credentials...

I'm running Powershell V4.0 on Windows 7, and my server is running on Windows server 2012 r2 with powershell V4.0 also.

I want to copy a local folder (with all subfolders) to a remote path \ipadress\c$\folder

How can i resolve it?

Thanks

Adeel ASIF
  • 495
  • 2
  • 6
  • 23

2 Answers2

15
$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

EDIT: silly error, you can omit the -credential switch on the copy-item cmdlet because you've already done the auth using new-psdrive...

BlueCompute
  • 2,954
  • 2
  • 19
  • 28
-3
  1. Run your PowerShell window as a different user who does have the required permissions, and pull the credentials parts out of your script.

  2. Run your PowerShell/cmd window as a different user who does have the required permissions and use a different utility instead of the PS cmdlets, like robocopy.

HopelessN00b
  • 53,795
  • 33
  • 135
  • 209
  • I can't, because this a little part of a big script. And i can't run it as another user. – Adeel ASIF Jun 27 '14 at 09:15
  • @AdeelASIF Well, 1 and 2 are your two options. I guess we could add failure as option 3. The `Copy-Item` cmdelt doesn't support the use of the `-credentials` switch, as the error message explains. So, your only option (other than it not working) is to modify the script so it doesn't use that incompatible switch, and provide the credentials another way. – HopelessN00b Jun 27 '14 at 15:57