PS Copy-Item-Fehler: Der Wert XXX kann aufgrund ungültiger Enumerationswerte nicht in den Typ „System.IO.FileAttributes“ konvertiert werden.

PS Copy-Item-Fehler: Der Wert XXX kann aufgrund ungültiger Enumerationswerte nicht in den Typ „System.IO.FileAttributes“ konvertiert werden.

Mein PowerShell-Befehl „Copy-Item“ generiert einen Fehler, für den ich keine Referenzen finden kann.

Mit PowerShell 4.x versuche ich, Dateien vom lokalen Laufwerk auf einen Remote-Server (dasselbe Netzwerk/dieselbe Domäne) zu kopieren. Der Remote-Pfad existiert und ist leer.

Der folgende Copy-ItemBefehl aus diesem Skript erzeugt (soweit ich das beurteilen kann) bei jeder kopierten Datei den folgenden Fehler:

$SessionTarget = New-PSSession -ComputerName "MYSERVER1"

Copy-Item -Path "C:\Websites\XXX\*" -Destination "C:\Websites\XXX\" -ToSession $SessionTarget -Recurse

Der Fehler:

    Copy-Item : Exception setting "Attributes": "Cannot convert value "1179648" to type "System.IO.FileAttributes" due to enumeration values that are not valid. Specify one of the following enumeration values and try again. The possible enumeration values are "ReadOnly, Hidden, System, Directory, Archive, Device, Normal, Temporary, SparseFile, ReparsePoint, Compressed, Offline, NotContentIndexed, Encrypted, IntegrityStream, NoScrubData"."

At C:\Websites\XXX_Deployment\Deploy.ps1:6 char:1

+ Copy-Item -Path "C:\Websites\XXX\*" -Destination "C:\Websites\XXX ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Copy-Item], SetValueInvocationException
    + FullyQualifiedErrorId : ExceptionWhenSetting

Die gute Nachricht ist, dass die Dateien anscheinend kopiert werden.

Irgendwelche Ideen, was dieser Fehler verursacht?

Danke schön!

Antwort1

Wie von Keith Miller weiter unten angemerkt (danke!), beziehen sich diese Werte auf die „neuen“ Dateiattribute.

Ich habe eine einzelne Datei gefunden, bei der der Fehler auftrat, ihre aktuellen Attribute überprüft und festgestellt, dass sie das Attribut „(U)“ hatte:

'attrib .\MeineDatei.txt'

(U) 0x100000 Nicht angeheftet (OneDrive „nur online verfügbare Dateien“)

Anschließend habe ich dieses Attribut entfernt und konnte den Copy-ItemBefehl ohne Fehler verwenden:

attrib .\MeineDatei.txt -U

Dieser Beitrag enthält eine gute Auflistung aller Attribute und ihrer Bitwerte:

Werte der Dateiattributspalte im Windows Explorer

Antwort2

verwandte Informationen