3

我需要使用 PowerShell 从 Windows 10 设备查询一些 WMI 值。该脚本由一些软件分发工具在非管理员用户的上下文中执行。

有一个本地管理员帐户,出于当前目的(在擦除系统之前检索信息)将密码放入脚本中不会有问题。由于自动化是一项硬性要求,因此无法处理 UAC 窗口或用户输入某些凭据。

有什么办法可以得到

$sess = New-CimSession -Credential $admincred

工作而Access is denied不会遇到,因为它不是在提升的上下文中运行?我可以通过拥有管理员凭据以某种方式自我提升它吗?

[编辑]

评论要求提供更具体的信息:

我想将许多非托管(即没有软件分发工具,没有域加入)Windows 10 设备装载到 Windows Autopilot。

  • 设备不在特定站点。

  • 设备供应商无法提供信息。

  • 用户没有管理权限

  • 用户不知道本地管理员密码(我知道)

  • 与用户缺少技术知识相比,暴露本地管理员密码问题更小(密码被认为是遗留密码)

  • 防火墙正在阻止传入流量(无 RDP、WinRM)

  • 代码(来源)

    $devDetail = (Get-CimInstance -CimSession $session -Namespace root/cimv2/mdm/dmmap -Class MDM_DevDetail_Ext01 -Filter "InstanceID='Ext' AND ParentID='./DevDetail'")

使用 Teamviewer 等工具手动远程会话获取信息太耗时。让用户从 Intranet 下载一个工具并运行它是一种方法。所以我创建了一个独立的应用程序来构建和运行一个定制的 PowerShell 脚本。不能让它在提升的会话中运行。我总是以Access denied.

4

1 回答 1

3

我可以通过拥有管理员凭据以某种方式自我提升它吗?

你不能。UAC旨在防止您正在尝试做的事情。相关问答:

可能有很多解决方法,但它们都有一个共同点,即您必须至少访问您的机器(本地或远程)一次,获得管理权限并准备一些东西,例如:

  • 在您的本地管理员帐户或 SYSTEM 下运行并触发脚本执行的计划任务
  • 禁用 UAC(暂时)(不推荐任何一种方式)
  • 安装任何远程管理软件、服务或帐户(具有额外的后台作业权限)
于 2021-12-31T13:43:47.757 回答