
Copy-Item PowerShell コマンドでエラーが発生し、参照先が見つかりません。
PowerShell 4.x を使用して、ローカル ドライブからリモート サーバー (同じネットワーク/ドメイン) にファイルをコピーしようとしています。リモート パスは存在していますが、空です。
このスクリプトの次のCopy-Item
コマンドは、(私が知る限り)コピーされたすべてのファイルに対して次のエラーを生成します。
$SessionTarget = New-PSSession -ComputerName "MYSERVER1"
Copy-Item -Path "C:\Websites\XXX\*" -Destination "C:\Websites\XXX\" -ToSession $SessionTarget -Recurse
エラー:
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
良いニュースとしては、ファイルはコピーされているようです。
このエラーが何に関するものかについて何か考えはありますか?
ありがとう!
答え1
下記の Keith Miller が指摘したように (ありがとうございます!)、これらの値は「新しい」ファイル属性に関連しています。
エラーが発生している単一のファイルを見つけ、その現在の属性を確認したところ、'(U)' 属性があることがわかりました。
'属性.\MyFile.txt'
(U) 0x100000 ピン留めなし (OneDrive「オンラインのみのファイル」)
その後、この属性を削除し、Copy-Item
エラーなしでコマンドを使用できるようになりました。
属性.\MyFile.txt -U
この投稿には、すべての属性とそのビット値の適切なリストがあります。
答え2
1179648 = 0x00120000
これらは「新しい」属性に対応します:
Unpinned = 0x00100000
NoScrubData = 0x00020000