Servicios de Escritorio Remoto: Diferenciar entre Word Viewer y Full Word por usuario

Servicios de Escritorio Remoto: Diferenciar entre Word Viewer y Full Word por usuario

¿Cómo me aseguro de que cuando el usuario A intente abrir un archivo .doc(x), se abra en Word Viewer y que cuando el usuario B haga lo mismo, se abra en Word 2013? El software ya está instalado en el sistema. Me pregunto cómo diferenciar entre los 2. Ambos usuarios trabajan de forma remota en RDS.

Respuesta1

Forma 1, WSH vbscript, consulta WMI:

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

Producción:

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"

Obtenga la línea de comando SessionId:

query user

Producción:

 USERNAME              SESSIONNAME        ID  STATE   IDLE TIME  LOGON TIME
>administrator         console             0  Active          .  13.08.2013 18:52

Forma 2, lista de tareas, línea de comando:

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:"

Forma 3, GUI del Administrador de tareas:

Nombre de usuario del Administrador de tareas, PID, ID de sesión

Forma 4, línea de comando, powershell:

powershell ps^|?{$_.Name -eq'WINWORD' -or $_.Name -eq'WORDVIEW'}^|FT MainWindowTitle,Path,Id,Name,SessionId -Au;query user

Forma 5, script de PowerShell:

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

información relacionada