PowerShell 脚本

PowerShell 脚本

我需要能够连接到客户的计算机并且想要使用远程协助,但我无法单击任何 UAC 提示,即使用户勾选允许我单击 UAC 提示。

以下是详细信息:

  • 他们向我发送了一份邀请文件。
  • 我开始会议并且他们接受。
  • 我可以看到他们的桌面。
  • 我请求控制权,他们就得到共享控制权的提示。
  • 他们勾选“允许 xxxxx 响应用户帐户控制提示”,然后单击“是”。
  • 一切都很好,直到我收到 UAC 提示。

在用户单击“是”之前,我无法单击任何内容。最后一个框的目的不就是防止这种情况发生吗?有人知道我可能做错了什么吗?或者这是一个错误吗?

答案1

您需要启用组策略设置和/或下载修补程序:

http://blogs.msdn.com/b/asklar/archive/2012/03/14/remote-assistance-and-uac-prompts.aspx

但是,为了使其在提示提升权限(即 UAC 提示)的场景中正常工作,您必须启用某个组策略:

用户帐户控制:允许 UIAccess 应用程序在不使用安全桌面的情况下提示提升权限

这样做的目的是使远程协助能够在用户的桌面上显示 UAC 提示,而不是在安全桌面上显示。如果不启用此功能,被帮助的用户(称其为新手)将在其本地计算机上获得提示 - 因此专家无法与其交互,因为 RA 只会远程控制用户的桌面。此时,新手可能不知道如何处理它,并且/或者他可能没有管理员密码。因此,启用此组策略很重要,以便让 UAC 提示显示在用户的桌面上,并让 RA 将此对话框远程控制到专家的计算机上。

答案2

我最近创建了这个 PowerShell 解决方案,可以在需要打开远程协助会话并输入不能与被协助的最终用户共享的提升的 UAC 凭据时使用。

从技术上讲,您可以运行并将Invoke-Command其指向远程计算机,然后确保Set-ItemProperty具有适当的10PromptOnSecureDesktop”值以启用或禁用。

我想确保当我需要在提升的会话中运行时,我只需执行脚本,并确保在会话结束msra后自动重新启用 UAC 安全桌面安全性。msra

本质上这将...

  • 提示您输入计算机名称

  • 通过远程注册表更改和命令禁用“UAC 安全桌面”

  • 启动一个msra以同样方式工作的会话它总是从这里开始工作

  • msra相关实例结束后,通过远程注册表更改和命令启用“UAC 安全桌面”

要使用您只需要...

  1. .ps1将 PowerShell 脚本另存为具有文件扩展名的文本文档
  2. 打开 PowerShell 命令提示符并输入(或粘贴)完整的脚本路径和文件名,然后按Enter
  3. 输入您要通过远程协助连接的计算机的计算机名称,然后按Enter
  4. 远程协助会话完成后,mrsa如果进程仍在运行,请关闭该进程

提示:msra大多数时候使用非提升的“其他/标准”方法,并且仅在需要时使用。

PowerShell 脚本

$pc = Read-Host "Enter the remote computer name to disable secure desktop";

Invoke-Command -ComputerName $pc -Scriptblock {
    Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "PromptOnSecureDesktop" -Value 0 -Force;
    };

$remoteAssist = "$Env:windir\system32\msra.exe";
Start-Process $remoteAssist "/offerra" -Wait;
Write-Host "Your Remote assist session has ended" -ForegroundColor Red;

Invoke-Command -ComputerName $pc -Scriptblock {
    Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "PromptOnSecureDesktop"  -Value 1 -Force;
    };

执行示例

注意:只需粘贴完整路径脚本名称并按回车键。

PS C:\Users\User> \\myserver.domain.com\sharename\folder\script\Elevate-RemoteAssist.ps1

支持资源

  • 用户帐户控制:提示提升权限时切换到安全桌面

    安全桌面显示登录 UI 并限制功能和系统访问,直到满足登录要求。

    安全桌面与用户桌面的主要区别在于,只有以受信任身份运行的进程才SYSTEM允许在此运行(即,没有任何进程在用户的权限级别运行)。从用户桌面到安全桌面的路径也必须在整个链中都是受信任的。

    可能值

    • 已启用

      • 默认情况下,所有提升请求都会转到安全桌面。
    • 已禁用

      • 所有提升请求都发送到交互式用户桌面。

    来源

  • 调用命令

  • 设置项目属性
  • 开始进程
     -Wait
       Wait for the specified process to complete before accepting more input.
       This parameter suppresses the command  prompt or retains the window
       until the process completes
    

相关内容