Estoy buscando una manera de crear un índice de archivos en una página web alojada en nuestra intranet.
Los archivos se encuentran en varios recursos compartidos de red, por ejemplo, \nas\documents\tender.doc
Cuando un usuario hace clic en el archivo, quiero que el archivo se abra en su PC con cualquier programa que tenga asociado. por ejemplo, *.txt abierto con notepad++, *.doc con word, etc.
El usuario debe poder editar el archivo y luego guardarlo en su ubicación original.
No quiero que el usuario tenga que descargar el archivo, editarlo y luego cargarlo.
Respuesta1
Utilice el mismo psexec
comando, pero sin -p SomePassword
. Se le solicitará que ingrese la contraseña y su entrada no se mostrará en la pantalla.
Si esto es parte de un script por lotes, coloque lo siguiente al inicio del script:
@ECHO OFF
Eso deshabilitará el eco de los comandos en la terminal, por lo que los comandos en el script no se mostrarán mientras se ejecutan. La salida del comando aún se mostrará.
Si desea dejar el comando resonando, pero simplemente ocultar este, precedido con un @
signo. Ejemplo:
@ PSExec.exe -accepteula -h -d -u someUser -p somePassword -i 1 C:\WINDOWS\SYSTEM32\CMD.EXE /c start "" "C:\WINDOWS\SYSTEM32\CALC.EXE
Tenga en cuenta que la contraseña seguirá estando disponible como texto sin formato en el archivo de secuencia de comandos. En general, es una mala idea.
Respuesta2
Con PowerShell, puede almacenar el nombre de usuario y la contraseña cifrada en un archivo de texto. La tarea automatizada puede leer las credenciales del archivo de texto y crear un objeto PSCredential, el usoProceso de iniciopara iniciar el ejecutable usando esas credenciales.
Guarde las credenciales:
$path = <path_to_text_file> Read-Host "Username" | Out-File $path Read-Host "Password" -AsSecureString | ConvertFrom-SecureString | Out-File -Append $path
Tenga en cuenta queConvertFrom-SecureStringhacenodescifrar la cadena segura en texto sin formato; lo convierte en criptotexto que se puede almacenar en un archivo. Después de ejecutar esto, tendrás un archivo con dos líneas. La línea 1 contiene el nombre de usuario y la línea 2 contiene la contraseña cifrada.
En la tarea automatizada, lea las credenciales y úselas para iniciar el ejecutable en el contexto de esa cuenta:
$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
Tenga en cuenta que
<path_to_executable>
es solo eso: la ruta al ejecutable, no la línea de comando completa ('C:\Windows\System32\calc.exe'
en su ejemplo). Si tienes algún argumento, añade-ArgumentList <the_rest_of_the_command_line>
.