#php #python #powershell #password-protection
#php #python #powershell #защита паролем
Вопрос:
Я пытаюсь получить доступ к файлу, защищенному пользователем / паролем, на удаленном компьютере с Windows на python. Как мне это сделать? Это кажется простой проблемой, но я некоторое время искал в Google, но безрезультатно.
Подробные сведения:
У меня есть веб-сервер IIS, работающий с компьютера под управлением Windows 8. Я хочу иметь кнопку, которая вызывает скрипт, который переходит в некоторые защищенные паролем файлы на этом компьютере. Итак, когда кнопка нажата, у меня есть следующий php, который вызывает python на ActiveChannelScraper.py в папке scripts и передает все данные оболочки в браузер:
$runCMD = 'C:Anacondapython scriptsActiveChannelScraper.py';
$output= shell_exec($runCMD . "2>amp;1");
echo( '<pre>' );
echo( $output );
echo( '</pre>' );
Все тестовые инструкции печати печатаются вплоть до строки os.listdir(p)
, на которой программа явно перестает работать, потому что после этого я не получаю никаких инструкций печати. Что имеет смысл, потому что он не может перечислять файлы в p, потому что p защищен паролем.
Я сделал Set-ExecutionPolicy Unrestricted -Scope CurrentUser
это в Powershell на компьютере с сервером.
В моем скрипте на Python я попробовал использовать net:
os.system("net use /user:" USER " " p " " PASS)
Но это выдает мне сообщение об ошибке
System error 86 has occurred.
The specified network password is not correct.
Я попробовал это на своем собственном компьютере с моим собственным именем пользователя и паролем, и это дало The command completed successfully.
мне возможность дважды проверить имя пользователя и пароль, они определенно верны.
Комментарии:
1. К каким типам файлов применялись пароли? Защита паролем добавляется приложением, а не Windows. Возможно, вы имеете в виду, что вам нужно получить доступ к другому профилю пользователя на другом компьютере?
2. Это блокировка паролем общего доступа к файлам Windows.
Ответ №1:
Системная ошибка 86: если вы уверены, что пароль правильный, это означает, что вы ввели имя пользователя без домена. Это должно быть /user:remotecomputernameUsername или /user:remoteIPaddressUsername, если у вас нет домена. И не используйте букву «p» перед паролем:
net use \ 192.168.0.2 mysecretpassword /USER:192.168.0.2 Имя пользователя