繁体   English   中英

如何从提升的 PowerShell 控制台以非管理员身份运行进程?

[英]How to run a process as non-admin from an elevated PowerShell console?

也许有一种方法可以使用我找不到的Start-Process cmdlet 来完成? 我在 StackOverflow 上发现的其他相关问答,例如thisthisthis都提供了使用自定义 C# 代码执行此操作的解决方案。 我的问题是,在 PowerShell 中是否有任何直接的方法可以做到这一点? 即您在一个提升的 PS 控制台中并且想要以非管理员身份运行一个进程。

您可以使用runas.exe指定TrustLevel ,有效地运行“受限”

runas /trustlevel:0x20000 "powershell.exe -command 'whoami /groups |clip'"

您应该在whoami的输出中看到您令牌中的Administrators组被标记为“仅用于拒绝”


在此处输入图片说明

当您深入研究此问题时,如链接任务所述,无法从提升的进程运行 UAC“非”提升的进程。 由于这正是我所需要的,并且 runas 解决方案对我不起作用,因此我将 Microsoft 提供的代码解决方法转换为使用计划任务来启动“非”提升进程。

从提升的 powershell 提示符将 powershell.exe 作为“非”提升进程运行的示例:

$apppath = "powershell.exe"
$taskname = "Launch $apppath"
$action = New-ScheduledTaskAction -Execute $apppath
$trigger = New-ScheduledTaskTrigger -Once -At (Get-Date)
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName $taskname | Out-Null
Start-ScheduledTask -TaskName $taskname
Start-Sleep -s 1
Unregister-ScheduledTask -TaskName $taskname -Confirm:$false

上述 powershell 命令仅适用于 Windows Server 2012 / Windows 8 及更高版本。

或者您可以使用SCHTASKS.EXE应用程序来覆盖大多数版本的 Windows:

$apppath = "powershell.exe"
$taskname = "Launch $apppath"
schtasks /create /SC ONCE /ST 23:59 /TN $taskname /TR $apppath
schtasks /run /tn $taskname
Start-Sleep -s 1
schtasks /delete /tn $taskname /F

您可以通过传入您要作为其运行的用户的凭据,从提升的会话中运行非管理员进程。 如果您想以交互方式运行,您可以使用Get-Credential如果您希望脚本在无人参与的情况下运行,您可以使用Import-ClixmlSecretStore或其他一些已建立的机制来存储和检索凭证。 例如:

$credential = Get-Credential -UserName $Env:USERNAME
# or
$credential = Import-Clixml -Path 'C:\MyCredential.cred'

Start-Process -FilePath pwsh.exe -ArgumentList '-noprofile' -Credential $credential -Wait

另一种有限的方式:让 Windows 资源管理器为您启动它

PS C:\> explorer.exe "C:\windows\system32\cmd.exe"

只需使用完整路径和扩展名。 它不接受参数。

我尝试创建一个批处理文件。 但是资源管理器拒绝启动.BAT.CMD

start-process存在开关runas类的

start-process powershell -verb runAs

但仍然 uac 检查你是否在你的系统 uac 上你应该首先绕过uac有很多方法可以绕过 uac 但如果你为运行进程编写脚本然后编译为 exe你可以使用像runasadmin这样的程序在系统中以管理员身份运行您的 exe,但仍然无法在 Windows 8 中工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM