Windows 10 で PowerShell コマンドを実行すると、奇妙な動作が発生します。
ファイルの作成日を変更するには、次を使用します。
Get-ChildItem C:\testFile1.txt | % {$_.CreationTime = '01/11/2005 06:00:36'}
フォルダーの作成日を変更するには、次を使用します。
Get-Item C:\testFolder1 | % {$_.CreationTime = '01/11/2004 22:13:36'}
これらの 2 つのコマンドは、システム パーティション C:\ またはデスクトップで定期的に正常に機能します。
フォルダが外部 USB フラッシュ ドライブに存在する場合は話が異なります。
(追記: ファイルのタイムスタンプを変更するコマンドは、外部 USB フラッシュ ドライブで引き続き機能します。)
外部 USB フラッシュ ドライブ上のフォルダー (ファイルではない) の作成日を変更しようとするとします。
Get-Item U:\testFolder1 | % {$_.CreationTime = '01/11/2002 06:00:36'}
次のエラー メッセージが表示されます。
例外設定 "CreationTime": "別のプロセスで使用されているため、プロセスはファイル 'U:\testFolder1' にアクセスできません。" 行:1 文字:31 + ... et-Item U:\testFolder1 | % {$_.CreationTime = '01/11/2002 06:00:36'} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) []、SetValueInvocationException + FullyQualifiedErrorId : ExceptionWhenSetting
さらに掘り下げてみると、そのプロセスは Windows 10 のファイル エクスプローラーであり、タイムスタンプを変更できないことがわかりました。ファイル エクスプローラーを開かない限り、PowerShell を使用して、USB フラッシュ ドライブ上のフォルダーの作成日を変更できます。
.Dispose() のようなもので、Windows 10 のファイル エクスプローラーが毎回ファイル エクスプローラーを閉じる必要なくフォルダーをロックしないようにする方法はありますか?