
사용자 A가 .doc(x) 파일을 열려고 하면 Word Viewer에서 열리고, 사용자 B가 동일한 작업을 하면 Word 2013에서 열리도록 하려면 어떻게 해야 합니까? 소프트웨어가 시스템에 이미 설치되어 있습니다. 2를 구별하는 방법이 궁금합니다. 두 사용자 모두 RDS에서 원격으로 작업합니다.
답변1
방법 1, WSH vbscript, WMI 쿼리:
GetProcessInfo.vbs:
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE (Name = ""winword.exe"" OR Name = ""WORDVIEW.EXE"") ")
Dim strInfo
Wscript.Echo "Caption ProcessId ParentProcessId SessionId ThreadCount UserName CommandLine"
For Each objProcess in colProcessList
strInfo = objProcess.Caption
strInfo = strInfo & " " & objProcess.ProcessId
strInfo = strInfo & " " & objProcess.ParentProcessId
strInfo = strInfo & " " & objProcess.SessionId
strInfo = strInfo & " " & objProcess.ThreadCount
objProcess.GetOwner strNameOfUser, strUserDomain
strInfo = strInfo & " " & strUserDomain & "\" & strNameOfUser
strInfo = strInfo & " " & objProcess.CommandLine
Wscript.Echo strInfo
Next
산출:
Caption ProcessId ParentProcessId SessionId ThreadCount UserName CommandLine
WINWORD.EXE 10032 10480 0 7 HT\Administrator "C:\App32\Microsoft Office\Office12\WINWORD.EXE"
WORDVIEW.EXE 17120 17800 0 4 HT\Administrator "C:\App32\Microsoft Office\OFFICE11\WORDVIEW.EXE"
SessionId 명령줄 가져오기:
query user
산출:
USERNAME SESSIONNAME ID STATE IDLE TIME LOGON TIME
>administrator console 0 Active . 13.08.2013 18:52
방법 2, 작업 목록, 명령줄:
tasklist /FI "IMAGENAME eq WINWORD.EXE" /V /FO CSV | find /V /I "INFO:"
tasklist /FI "IMAGENAME eq WORDVIEW.EXE" /V /FO CSV | find /V /I "INFO:"
방법 3, 작업 관리자 GUI:
방법 4, 명령줄, powershell:
powershell ps^|?{$_.Name -eq'WINWORD' -or $_.Name -eq'WORDVIEW'}^|FT MainWindowTitle,Path,Id,Name,SessionId -Au;query user
방법 5, powershell 스크립트:
GetProcessInfo.ps1:
$own=@{};gwmi win32_process|%{$own[$_.handle]=$_.getowner().user}
ps|?{$_.Name -eq 'WINWORD' -or $_.Name -eq 'WORDVIEW'}|FT MainWindowTitle,Path,SessionId,Name,Id,@{n="Owner";e={$own[$_.Id.ToString()]}} -Au