powershell - 为什么我不能同时使用 PowerShell 的 Start-Process 和 -Credential 和 -Verb 参数?
问题描述
使用powershell.exe
,我想通过 UAC 提升权限来模拟cmd.exe
的命令。runas
但是,如果我同时提供-Credential
和-Verb Runas
参数Start-Process
,我会收到以下错误:
Start-Process powershell.exe -Credential (New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList 'username',(ConvertTo-SecureString 'password' -AsPlainText -Force)) -ArgumentList '-NoProfile' -Verb RunAs
Start-Process : Parameter set cannot be resolved using the specified named parameters.
At line:1 char:1
+ Start-Process powershell.exe -Credential (New-Object -TypeName System ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Start-Process], ParameterBindingException
+ FullyQualifiedErrorId : AmbiguousParameterSet,Microsoft.PowerShell.Commands.StartProcessCommand
仅使用这些参数之一不会产生错误:
Start-Process -Verb RunAs powershell.exe -ArgumentList "-NoProfile"
这是为什么?Start-Process
accept的两种语法形式[<CommonParameters>]
,-Verb Runas
属于哪一种?
解决方案
该-Verb
参数仅在其中一个参数集中可用(如果您这样做Get-Help Start-Process
,您可以在第二个参数集中看到它明确列出):
SYNTAX
Start-Process [-FilePath] <String> [[-ArgumentList] <String[]>] [-Credential <PSCredential>] [-LoadUserProfile] [-NoNewWindow] [-PassThru] [-RedirectStandardError <String>] [-RedirectStandardInput <String>] [-RedirectStandardOutput <String>] [-UseNewEnvironment] [-Wait] [-WindowStyle {Normal | Hidden | Minimized | Maximized}] [-WorkingDirectory <String>]
[<CommonParameters>]
Start-Process [-FilePath] <String> [[-ArgumentList] <String[]>] [-PassThru] [-Verb <String>] [-Wait] [-WindowStyle {Normal | Hidden | Minimized | Maximized}] [-WorkingDirectory <String>] [<CommonParameters>]
它不是 的一部分CommonParameters
,仅包括-Debug
,-Verbose
等内容(请参阅此处-ErrorAction
的完整列表)。
这似乎是一种可能的解决方法:
Start-Process powershell -Credential mydomain\myuser -ArgumentList '-noprofile -command &{Start-Process powershell -verb runas}'
推荐阅读
- apache-spark - 为什么不推荐使用 Spark 属性 spark.sql.optimizer.metadataOnly
- python - 没有属性“reset_default_graph”
- css - 带有自定义滚动条的 DetailsList 组件
- azure - Docker 映像版本更改不会触发 terraform 容器更新
- javascript - 从缩短的链接中检索原始 URL
- button - Arduino按钮状态不低
- python - 如何/在何处在 Google docs API 中添加插入文本功能
- azure - 如何为带有防火墙后存储帐户的 sql server 启用 arm 模板漏洞评估
- jquery - jquery 无法识别 fullcalendar
- windows - Git LFS 不尊重 credential.helper 的配置文件级别