【发布时间】:2019-05-12 15:31:16
【问题描述】:
我有一个以管理员身份运行的 PowerShell 脚本,它调用的另一个脚本需要不以管理员身份运行。我以前使用Start-Process -FilePath "powershell.exe" -Verb runas 进行提升,但我如何才能从已经以管理员身份运行的会话“取消提升”?
我想避免使用psexec 等this post 使用的第三方工具。理想情况下寻找内置 PS 功能或 PSSnapin。
需要此“未提升”会话的特定过程是查看管理员安装的驱动器。根据这个article UAC 可能是罪魁祸首。提出的解决方案正在运行以下内容:
New-ItemProperty -Path HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System -Name EnableLinkedConnections -Value 1 -PropertyType DWord
但是,当Get-PSDrive 在提升的会话中运行时,驱动器仍然不显示。
【问题讨论】:
-
类似:
Start-Process -FilePath "powershell.exe" -Credential <standard user creds> -
我尝试了这个 Start-Process 概念,但它仍然以管理员身份运行,尽管有
凭据。 -
你在解决什么问题需要这个?
-
试图查看标准用户安装的网络驱动器列表。但是,必须将列表视为以管理员身份运行的较大脚本的一部分。从管理员脚本运行
mount或Get-PSDrive不会显示预期的驱动器。但是,当这些命令中的任何一个以标准权限运行时,驱动器就会显示出来。
标签: powershell uac