Fehler beim Kopieren des Dateisystemanbieters

9

Das Cmdlet "Copy-Item" funktioniert nicht wie erwartet, ich verstehe nicht warum. Das ist mein 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 

Und das ist der Fehler, den ich bekomme:

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

Ich habe es auch versucht:

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

Und Robocopy unterstützt keine Anmeldeinformationen ...

Ich verwende Powershell V4.0 unter Windows 7 und mein Server läuft unter Windows Server 2012 R2 mit Powershell V4.0.

Ich möchte einen lokalen Ordner (mit allen Unterordnern) in einen Remote-Pfad \ ipadress \ c $ \ Ordner kopieren

Wie kann ich das beheben?

Vielen Dank

Adeel ASIF
quelle
Was genau möchten Sie tun?
MichelZ
@MichelZ Ich habe mein Thema bearbeitet
Adeel ASIF
Verwenden Sie einen Benutzer, der Zugriff auf beide Freigaben hat, und verwenden Sie dann Robocopy?
MichelZ

Antworten:

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

BEARBEITEN: dummer Fehler, Sie können den Schalter -credential auf dem Cmdlet copy-item weglassen, da Sie die Authentifizierung bereits mit new-psdrive durchgeführt haben ...

BlueCompute
quelle
Vielen Dank. Aber ich bekomme den gleichen Fehler ...
Adeel ASIF
Welchen Fehler bekommen Sie jetzt? Der obige Code funktioniert gut für mich
BlueCompute
bearbeitete Antwort ...
BlueCompute
Wird New-PSDriveeine Art temporäres Netzlaufwerk erstellt, das nach Beendigung der Skriptsitzung entfernt wird?
Jim Aho
-3
  1. Führen Sie Ihr PowerShell-Fenster als ein anderer Benutzer aus, der über die erforderlichen Berechtigungen verfügt, und ziehen Sie die Teile der Anmeldeinformationen aus Ihrem Skript.

  2. Führen Sie Ihr PowerShell / cmd-Fenster als ein anderer Benutzer aus, der über die erforderlichen Berechtigungen verfügt, und verwenden Sie anstelle der PS-Cmdlets ein anderes Dienstprogramm, z. B. Robocopy.

HopelessN00b
quelle
Ich kann nicht, weil dies ein kleiner Teil eines großen Drehbuchs ist. Und ich kann es nicht als ein anderer Benutzer ausführen.
Adeel ASIF
@AdeelASIF ​​Nun, 1 und 2 sind Ihre beiden Optionen. Ich denke, wir könnten als Option 3 einen Fehler hinzufügen. Der Copy-Itemcmdelt unterstützt die Verwendung des -credentialsSchalters nicht, wie in der Fehlermeldung erläutert. Ihre einzige Option (außer dass es nicht funktioniert) besteht darin, das Skript so zu ändern, dass es diesen inkompatiblen Schalter nicht verwendet, und die Anmeldeinformationen auf andere Weise bereitzustellen.
HopelessN00b