인트라넷에서 호스팅되는 웹 페이지에 파일 색인을 생성하는 방법을 찾고 있습니다.
파일은 다양한 네트워크 공유(예: \nas\documents\tender.doc)에 있습니다.
사용자가 파일을 클릭하면 파일과 연결된 프로그램을 사용하여 해당 PC에서 파일이 열리길 원합니다. 예: 메모장++로 열리는 *.txt, 단어로 열리는 *.doc 등
사용자는 파일을 편집한 다음 원래 위치에 저장할 수 있어야 합니다.
나는 사용자가 파일을 다운로드하고 편집한 다음 업로드하는 것을 원하지 않습니다.
답변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
비밀번호는 스크립트 파일에서 일반 텍스트로 계속 사용할 수 있다는 점을 명심하세요. 일반적으로 그것은 나쁜 생각입니다.
답변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>
.