Windows 10:获得远程访问权限后,远程启动 Quick Assist 为 .\Administrator without UAC,或暂时禁用 UAC

Posted

技术标签:

【中文标题】Windows 10:获得远程访问权限后,远程启动 Quick Assist 为 .\\Administrator without UAC,或暂时禁用 UAC【英文标题】:Windows 10: after gaining remote access, remotely start Quick Assist as .\Administrator without UAC, or temporarily disable UACWindows 10:获得远程访问权限后,远程启动 Quick Assist 为 .\Administrator without UAC,或暂时禁用 UAC 【发布时间】:2021-06-29 09:56:04 【问题描述】:

我想在这种情况下使用脚本

    无需管理员权限即可获得远程访问权限 以.\Administrator 的身份远程启动 Quick Assist 而不是进行 UAC 对话。

第 1 步通常使用 Quick Assist,有时使用 Teams 屏幕共享。


我知道我可以在文件资源管理器中找到 quickassist.exe,然后使用 Shift 和上下文菜单来以其他用户身份运行,但我想脚本化方法。

实验A

这可行,但有一个是/否 UAC 对话:

$isElevated = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
if ( -not $isElevated ) 
    Start-Process powershell.exe -Credential Administrator -NoNewWindow -ArgumentList 
        Start-Process quickassist.exe -Verb RunAs ;
     ;

实验 B

我犯了很多错误,不知道如何改正。 (我正在尝试逐步学习 PowerShell,但我在学习时很容易感到困惑;有点阅读障碍。)

$isElevated = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)

if ( -not $isElevated ) 
  Start-Process powershell.exe -Credential Administrator 
    Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "PromptOnSecureDesktop" -Value 0 -Force;
    ;
  Write-Host "UAC (user account control) is weakened for a Quick Assist session …" -ForegroundColor Red;

  Start-Process powershell.exe -Credential Administrator -NoNewWindow -ArgumentList Start-Process quickassist.exe -Verb RunAs -Wait;
  Write-Host "… Quick Assist session complete …" -ForegroundColor Red;

  Start-Process powershell.exe -Credential Administrator 
    Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "PromptOnSecureDesktop" -Value 1 -Force;
    ;
  Write-Host "… UAC is strengthened." -ForegroundColor Red;

未发生对注册表的两项预期更改 第三个凭据对话框出现得太快了 - 我希望它在快速协助会话结束之前出现。

此外,从概念上讲,当 UAC 暂时被削弱时,可能不需要以管理员身份运行 Quick Assist。

参考文献

https://***.com/a/2258134/38108 (2010-02-13) 我看到 -CredentialInvoke-Command 一起使用,但是当我尝试做类似的事情时,为了更改注册表,我搞砸了。

https://***.com/a/47516161/38108 (2017-11-27) 自升式 PowerShell 脚本。

https://superuser.com/a/1524960/84988 (2020-02-12) 和 https://serverfault.com/a/1003238/91969 (2020-02-15) 很有趣——两个答案中的脚本相同——但是我需要像 -Credential Administrator 这样的东西来代替 -ComputerName

https://***.com/a/60292423/38108 (2020-03-07) 通过https://***.com/a/60263039/38108

PowerShell commands - PowerShell - SS64.com

https://github.com/okieselbach/Intune/blob/master/DisablePromptOnSecureDesktop.ps1 (2020-11-13) 通过Quick Assist the built-in Remote Control in Windows 10 – Modern IT – Cloud – Workplace

【问题讨论】:

当你使用这样的逻辑时它是否有效...pastebin.com/YTHKn72Y。在示例 b 中的另一个启动进程中存在启动进程,因此 -wait 参数可能需要与外部启动进程而不是内部启动进程一起使用。我通常不会在任何本地计算机上运行它,它总是在远程计算机上运行,​​我将帮助非管理员用户在同一网络上执行任务并连接到同一域。您不能针对您正在连接的远程计算机远程调用命令吗? 还有用于禁用安全桌面的 reg 设置,以允许您查看 UAC 并自己输入凭据,而不是让非管理员用户输入它们,您会看到 UAC 屏幕远程需求并与之交互无论它是提升还是以管理员身份运行,都运行。从isElevated 逻辑中取出该逻辑并始终在没有任何条件的情况下运行它,然后在没有条件的情况下重新启用其他 reg 设置。看看这些东西是否有帮助。 UAC 旨在防止您这样做。 (如果 UAC 这么容易绕过,那么这正是所有恶意软件都会做的事情。) Bill_Stewart 你误会了。我没有试图绕过身份验证对话。 好的,如果您更喜欢这个术语,UAC 旨在仅在显示请求此权限的对话框后才允许提升。 (如果这是可能的,那么所有恶意软件都可以以管理员身份感染您的计算机而不受惩罚。) 【参考方案1】:

简短的回答是不要。获取真正的远程管理工具或让某人点击 UAC 是提示。

这比 powershell 更像是一个 windows 的东西,因为 windows 明确拒绝在不通过 UAC 的情况下本地提升进程(并且有充分的理由!)。你曾经能够做这样的事情:

# Use Enter-PSSession to start a "remote" session 
# This may still support elevation if you specify CredSSP and configure credential delegation):
New-PSSession MyPCName -Auth CredSSP -cred (get-credential)

# Create a scheduled task with RunAs/elevated permissions:
Register-ScheduledTask -Action $action -User .\Administrator -TaskName "Admin-Stuff" -RunLevel Highest

现在在本地运行时会显示胖访问被拒绝消息。您也无法在没有提升的情况下编辑 HKLM: 中的注册表设置,因此暂时禁用 uac 不是一种选择。

您也许可以利用这个exploit 允许管理员用户绕过 uac,但我认为您仍然必须以其他用户身份运行您的 shell 才能使用它。

【讨论】:

以上是关于Windows 10:获得远程访问权限后,远程启动 Quick Assist 为 .\Administrator without UAC,或暂时禁用 UAC的主要内容,如果未能解决你的问题,请参考以下文章

如何开启远程访问权限

如何远程访问centos 6.5

什么是WMI 有什么用?

Python 实现 Windows 远控

码上开心Windows环境mysql数据库使用 开通远程访问权限

Windows Server 2016 怎么重新启动远程服务器