web-dev-qa-db-ja.com

Sdelete構文エラー?

ドライブCの空きディスク領域を削除するために sDelete を実行できない理由を誰かが知っていますか?ドライブDで動作します。

バージョン1.61と1.51の両方を試しましたが、どちらも同じ結果になります。

SDelete - Secure Delete v1.51
Copyright (C) 1999-2005 Mark Russinovich
Sysinternals - www.sysinternals.com

SDelete is set for 1 pass.
Cleaning free space on D:: 2%

そして、ドライブCでまったく同じコマンドを実行しようとすると、次のようになります。

SDelete - Secure Delete v1.51
Copyright (C) 1999-2005 Mark Russinovich
Sysinternals - www.sysinternals.com

SDelete is set for 1 pass.
Cleaning free space on C:: 0%Could not create free-space cleanup file:
The filename, directory name or volume label syntax is incorrect.

Cipher.exe については知っていますが、sDeleteを機能させたいと思います。

1
Fate Averruncus

あなたがすでに管理者としてプログラムを実行していると仮定します(私がこのメッセージを受け取ったときのように)。

Sdeleteのソースコード( ここで見つけました )を見ると、ゼロ化プロセスで使用する一時ファイルを作成しようとしていることがわかります。

_stprintf( tempFileName, _T("%sSDELTEMP"), DrivePath );   
hTempFile = CreateFile( tempFileName, GENERIC_WRITE,    
                0, NULL, CREATE_NEW,    
                FILE_FLAG_NO_BUFFERING|FILE_FLAG_SEQUENTIAL_SCAN|   
                FILE_FLAG_DELETE_ON_CLOSE|FILE_ATTRIBUTE_HIDDEN, NULL );   

if( hTempFile == INVALID_HANDLE_VALUE ) {   

    _tprintf( _T("Could not create free-space cleanup file: "));   
    PrintWin32Error( GetLastError());   
    return FALSE;   
}   

私の場合、TEMP環境変数は「C:\ Users\Username\AppData\Local\Temp\1」に設定されていて、そのディレクトリは存在しませんでした。

環境変数のTEMPを確認するには、CMDプロンプトを開き、SET TEMPと入力します。これにより、この環境変数の値が出力されます。

私の場合、ゴールデンイメージテンプレートとしてオペレーティングシステムを準備していました。 Tempフォルダーをクリーンアップしたばかりで、C:ドライブをゼロにして再合成しようとしていました。不足しているディレクトリを再作成しましたが、すべてが期待どおりに機能しました。

1
flakshack

これは、管理者としてsdelete(または開始したコマンドプロンプト)を実行することで解決できます。コマンドプロンプトアイコン(cmd.exe)をダブルクリックする代わりに、右クリックして[管理者として実行]を選択します。

0
Søren L. Fog

エラーメッセージは混乱を招く可能性があります。私にとって、存在しなかったのは一時ディレクトリでした...

mkdir%temp%

トリックをしました

0
Joris