-2

Я ищу способ создания индекса файлов на веб-странице, размещенной в нашей внутренней сети.

Файлы расположены на разных сетевых ресурсах, например, \nas \documents \tender.doc.

Когда пользователь нажимает на файл, я хочу, чтобы файл открывался на ПК с любой программой, с которой он был связан. например, * .txt, открытый с помощью блокнота ++, * .doc со словом и т. д.

Пользователь должен иметь возможность редактировать файл, а затем сохранить его в исходном месте.

Я не хочу, чтобы пользователь загружал файл, редактировал его и затем загружал его.

2 ответа2

1

Используйте ту же команду psexec , но без -p SomePassword . Вам будет предложено ввести пароль, и ваш ввод не будет отображаться на экране.

Если это часть пакетного скрипта, поместите в начало скрипта следующее:

@ECHO OFF

Это отключит вывод команд на терминал, поэтому команды в скрипте не будут отображаться при запуске. Вывод команды все равно будет отображаться.

Если вы хотите оставить команду повторяющейся, но просто скрыть эту команду, поставьте перед ней знак @ . Пример:

@ PSExec.exe -accepteula -h -d -u someUser -p somePassword -i 1 C:\WINDOWS\SYSTEM32\CMD.EXE /c start "" "C:\WINDOWS\SYSTEM32\CALC.EXE

Имейте в виду, что пароль все еще будет доступен в виде открытого текста в файле сценария. В общем, плохая идея.

0

Используя PowerShell, вы можете сохранить имя пользователя и зашифрованный пароль в текстовом файле. Автоматизированная задача может считывать учетные данные из текстового файла и создавать объект PSCredential, используя Start-Process для запуска исполняемого файла с использованием этих учетных данных.

  1. Сохраните учетные данные:

    $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 содержит зашифрованный пароль.

  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> .

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