История командной строки Windows - PullRequest
2 голосов
/ 20 февраля 2010

Мне нужно программно смонтировать том WebDAV в Windows, используя C, и я думаю, что я собираюсь использовать system () для достижения этого (с помощью команды «net use») ... Однако, поскольку net use требует, чтобы пароль должен быть записан в виде простого текста, я просто хотел убедиться, что в командной оболочке Windows не ведется регистрация команд ... Я знаю, что в Mac OS X и Linux в некоторых случаях команды могут регистрироваться в файле .bash_history, поэтому я подумал, может быть, что-то подобное происходит в Windows. Хотя я так не думаю, поскольку в Google ничего не появилось.

Ответы [ 5 ]

1 голос
/ 20 февраля 2010

Не ответ на ваш вопрос, но вместо net use отметьте WNetAddConnection2 Функция win32

1 голос
/ 20 февраля 2010

Может быть лучше использовать ' CreateProcess ' и перенаправить ввод и вывод в ваш код, а также передать его в него, написав в stdin (который будет перенаправлен в команду «Net use» ), и прочитайте вывод, таким образом, ввод пароля не будет зарегистрирован ... это в теории .... Я не уверен на 100%, если реализация popen существует .... поскольку он совместим с POSIX и не встречается в стандарте C ... он существует в мире * nix ...

Редактировать: Хорошие новости, я нашел некоторый код, который эмулирует popen , используя обертку вокруг CreateProcess, просто подумал, что это может помочь. Код должен быть немного подправлен ... Это лицензия GPL v2 ... так что нужно кое-что помнить ...

Надеюсь, это поможет, С наилучшими пожеланиями, Том.

1 голос
/ 20 февраля 2010

Оболочка имеет историю, но хранится только в памяти, а не в журнале на диске. Тем не менее, он может оказаться в файле подкачки и открыться для (немного нетривиального) обнаружения. Опять же, если вы установили соединение непосредственно в вашей собственной программе, используя что-то вроде WNetAddConnection2, оно все равно может оказаться в файле подкачки.

0 голосов
/ 20 февраля 2010

Обычный командный интерфейс не имеет истории, если вы явно не активировали ее (но я не могу вспомнить, чтобы эта команда была доступна, в последний раз я проверял ее в DOS / Windows 95 дней). Хотя в командной строке Visual Studio есть история, но я сомневаюсь, что она сохраняется, когда вы закрываете приглашение.

0 голосов
/ 20 февраля 2010

Командная оболочка Windows не имеет встроенной регистрации команд, она использует для этого внешнюю команду (doskey), я не думаю, что в командной строке из команды system() установлен doskey, но если вычтобы быть уверенным, используйте system () для выполнения

doskey /history

, и он выведет историю командной строки для этого экземпляра командной строки.

...