【问题标题】:New-CimSession without elevation by providing admin credentials on Windows 10?通过在 Windows 10 上提供管理员凭据而无需提升的 New-CimSession?
【发布时间】:2022-01-22 06:19:06
【问题描述】:

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

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

有什么办法得到

$sess = New-CimSession -Credential $admincred

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

[编辑]

cmets 要求提供更具体的信息:

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

  • 设备不在特定站点。

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

  • 用户没有管理权限

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

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

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

  • 代码(Source):

    $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结尾。

【问题讨论】:

标签: powershell elevated-privileges cim


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2016-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-03
    • 1970-01-01
    • 2018-03-19
    • 2019-03-06
    • 1970-01-01
    相关资源
    最近更新 更多