1

Кто-нибудь знает, почему я не могу запустить sDelete, чтобы удалить свободное место на диске C? Работает на диске 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 работал.

3 ответа3

1

Предполагая, что вы уже запускаете программу от имени администратора (как я это сделал, когда получил это сообщение).

Если вы посмотрите на исходный код 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\ Имя пользователя \ AppData \ Local \ Temp \ 1», и этот каталог не существовал.

Чтобы проверить переменную среды для TEMP, откройте приглашение CMD и введите SET TEMP. Это выведет значение для этой переменной среды.

В моем случае я готовил операционную систему как золотой шаблон изображения. Я только что вычистил папку Temp и собирался обнулить и заново разбавить диск C:. Я воссоздал недостающий каталог, и все заработало как положено.

0

Это можно решить, запустив sdelete (или командную строку, из которой вы его запустили) от имени администратора. Вместо двойного щелчка по значку командной строки (cmd.exe) щелкните его правой кнопкой мыши и выберите "Запуск от имени администратора".

0

Сообщение об ошибке может сбить с толку. Для меня это был временный каталог, которого не было ...

mkdir% temp%

сделал трюк

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .