我需要使用 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
.