![Как лучше всего открыть файл для редактирования с веб-страницы?](https://rvso.com/image/1417395/%D0%9A%D0%B0%D0%BA%20%D0%BB%D1%83%D1%87%D1%88%D0%B5%20%D0%B2%D1%81%D0%B5%D0%B3%D0%BE%20%D0%BE%D1%82%D0%BA%D1%80%D1%8B%D1%82%D1%8C%20%D1%84%D0%B0%D0%B9%D0%BB%20%D0%B4%D0%BB%D1%8F%20%D1%80%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%20%D1%81%20%D0%B2%D0%B5%D0%B1-%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%8B%3F.png)
Я ищу способ создания индекса файлов на веб-странице, размещенной в нашей интрасети.
Файлы расположены на различных сетевых ресурсах, например \nas\documents\tender.doc
Когда пользователь нажимает на файл, я хочу, чтобы файл открывался на его ПК с помощью любой программы, с которой он связан. Например, *.txt открывается с помощью Notepad++, *.doc — с помощью Word и т. д.
Пользователь должен иметь возможность редактировать файл, а затем сохранять его в исходном месте.
Я не хочу, чтобы пользователю приходилось скачивать файл, редактировать его, а затем загружать.
решение1
Используйте ту же psexec
команду, но без -p SomePassword
. Вам будет предложено ввести пароль, и ваш ввод не будет отображаться на экране.
Если это часть пакетного скрипта, поместите в начало скрипта следующее:
@ECHO OFF
Это отключит эхо команд на терминале, поэтому команды в скрипте не будут отображаться по мере их выполнения. Вывод команд все равно будет отображаться.
Если вы хотите оставить команду echoing включенной, но просто скрыть эту, поставьте перед ней знак @
. Пример:
@ PSExec.exe -accepteula -h -d -u someUser -p somePassword -i 1 C:\WINDOWS\SYSTEM32\CMD.EXE /c start "" "C:\WINDOWS\SYSTEM32\CALC.EXE
Имейте в виду, что пароль все равно будет доступен в виде открытого текста в файле скрипта. В общем, это плохая идея.
решение2
Используя PowerShell, вы можете сохранить имя пользователя и зашифрованный пароль в текстовом файле. Автоматизированная задача может прочитать учетные данные из текстового файла и создать объект PSCredential, использованиеНачало процессадля запуска исполняемого файла с использованием этих учетных данных.
Сохраните учетные данные:
$path = <path_to_text_file> Read-Host "Username" | Out-File $path Read-Host "Password" -AsSecureString | ConvertFrom-SecureString | Out-File -Append $path
Обратите внимание, чтоConvertFrom-SecureStringделаетнетрасшифровать защищенную строку в обычный текст; он преобразует его в криптотекст, который можно сохранить в файле. После запуска у вас будет файл с двумя строками. Строка 1 содержит имя пользователя, а строка 2 содержит зашифрованный пароль.
В автоматизированной задаче считайте учетные данные и используйте их для запуска исполняемого файла в контексте этой учетной записи:
$stored_creds = Get-Content <path_to_text_file> $username = $stored_creds[0] $password = $stored_creds[1] | ConvertTo-SecureString $credential = New-Object System.Management.Automation.PSCredential $username, $password Start-Process <path_to_executable> -Credential $credential
Обратите внимание, что это
<path_to_executable>
именно так: путь к исполняемому файлу, а не полная командная строка ('C:\Windows\System32\calc.exe'
в вашем примере). Если у вас есть какие-либо аргументы, добавьте-ArgumentList <the_rest_of_the_command_line>
.