bod*_*ydo 7 windows terminal-services runas
为简单起见,假设用户Administrator已登录终端会话2.另一个用户Boda登录终端会话3.
是否可以从会话runas中的会话中的程序?32
为简单起见,假设我想calc.exe在会话3中开始(在Boda的会话中).我怎么做?可以用runas吗?
jpw*_*jpw 10
就像Harry Johnston在评论中建议的那样,您可以使用TechNet上提供的psexec工具执行此操作.我尝试使用运行终端服务的Windows 2008 Server并设法在另一个用户会话中启动各种应用程序(虽然不是calc.exe - 它已启动但最小化并且窗口拒绝恢复),其中包括cmd.exe.
我使用的命令是psexec.exe -i 3 cmd.exe在那里3是会话数(即你可以从qwinsta.exe).
示例:远程会话,以管理员身份登录; 使用qwinsta枚举会话并psexec开始cmd.exe另一个会话.

另一个会话:登录为Patrick,cmd.exe桌面上的窗口由管理员打开(窗口标题也显示).

有一个命令行工具,它叫做RunInSession.您至少需要指定SessionId要启动流程的位置以及要启动的流程.如果要在远程服务器上启动,则可选为servername.如果在没有参数的情况下运行,则会显示带有可能参数的对话框

目前支持的操作系统版本是Windows XP,2003,Vista和2008.
该程序需要在Localsystem用户的上下文中运行,因此它会暂时将自身安装为服务并自行启动.使用WTSQueryUserToken,它获取所请求的终端会话的主用户令牌.最后,使用CreateProcessAsUser启动该过程,该服务将自行删除.
更多细节:
它是一种黑客攻击,但对我来说非常有用.比我的环境中的psexec.exe更快.
只需在远程计算机中为特定用户或组创建临时任务,然后运行它,而不是删除任务.
我为它创建了一个powershell脚本:
param (
[string]$Computer = ($env:computername),
[string]$User = "",
[string]$Command,
[string]$Args
)
$script_task =
{
param (
[string]$User = "",
[string]$Command,
[string]$Args
)
#Action
$Action = New-ScheduledTaskAction –Execute $Command
if($Args.Length > 0) { $Action = New-ScheduledTaskAction –Execute $Command -Argument $Args}
#Principal
$P = New-ScheduledTaskPrincipal -UserId $User -LogonType Interactive -ErrorAction Ignore
#Settings
$S = New-ScheduledTaskSettingsSet -MultipleInstances Parallel -Hidden
#Create TEMPTASK
$TASK = New-ScheduledTask -Action $Action -Settings $S -Principal $P
#Unregister old TEMPTASK
Unregister-ScheduledTask -TaskName 'TEMPTASK' -ErrorAction Ignore -Confirm:$false
#Register TEMPTASK
Register-ScheduledTask -InputObject $TASK -TaskPath '\KD\' -TaskName 'TEMPTASK'
#Execute TEMPTASK
Get-ScheduledTask -TaskName 'TEMPTASK' -TaskPath '\KD\' | Start-ScheduledTask
#Unregister TEMPTASK
Unregister-ScheduledTask -TaskName 'TEMPTASK' -ErrorAction Ignore -Confirm:$false
}
#The scriptblock get the same parameters of the .ps1
Invoke-Command -ComputerName $Computer -ScriptBlock $script_task -ArgumentList $User, $Command, $Args
Run Code Online (Sandbox Code Playgroud)
用法示例:
file.ps1 -User USER_NAME -Command notepad.exe -Computer REMOTE_COMPUTER
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11623 次 |
| 最近记录: |