【发布时间】:2021-12-29 19:30:59
【问题描述】:
所以我有自动化以一个用户身份登录到 Windows Server 2019 机器,但随后需要运行命令(Invoke-AdminCommand 是特定于应用程序的,而不是内置的 Windows cmdlet)管理员用户(我不想将登录用户添加为管理员)。我已经按照这里的答案(如果您认为这是一个重复的问题)并且没有一个有效。在脚本中,我做了一个“whoami”来确保会话是正确的用户,而且确实如此。但是该命令会返回一个特定于应用程序的错误,说明用户没有正确的权限。如果我 RDP 进入与管理员用户相同的机器并通过 Powershell CLI 运行相同的命令 - 它工作正常。
$username = "domain\adminUser"
$password = "**********" | ConvertTo-SecureString -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential -ArgumentList $username,$password
$s = New-PSSession -credential $cred
$sc = {
whoami
Invoke-AdminCommand -Register -Verbose
}
Invoke-Command -Session $s -Scriptblock $sc
Remove-PSSession $s
【问题讨论】:
-
即使您以
adminuser身份运行命令,会话也不会提升。 -
如果您询问是否可以在不引发 UAC 提示的情况下提升命令,那么答案是否定的(这是设计使然)。
-
用户不需要被提升。第三方应用程序将用户作为应用程序的管理员,而不是 Windows 管理员组,而是第三方管理员组
-
我想我不明白你的用例。为什么不在需要的用户登录时运行命令?
标签: windows powershell shell automation