首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >-Credentials启动-进程-NoNewWindow不能与Powershell一起使用

-Credentials启动-进程-NoNewWindow不能与Powershell一起使用
EN

Stack Overflow用户
提问于 2019-06-05 04:44:12
回答 1查看 2.3K关注 0票数 4

我希望使用凭据从powershell运行一个exe。我希望输出在同一个窗口中。这就是我的powershell的样子。

Start-Process文档:https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/start-process?view=powershell-6

代码语言:javascript
复制
$username = 'user'
$password = 'password'
$credentials = New-Object System.Management.Automation.PSCredential -ArgumentList @($username,(ConvertTo-SecureString -String $password -AsPlainText -Force))
$pathNew = "c:\pathtomyexe\text.exe" 
Start-Process $pathNew -NoNewWindow -Credential ($credentials) -PassThru -Wait

使用-Credential ($credentials)会启动一个新窗口。

当我在不使用-Credential的情况下运行Start-Process时,我在相同的窗口中得到了预期的结果。

代码语言:javascript
复制
Start-Process $pathNew -NoNewWindow -PassThru -Wait

我做错了什么?有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-05 08:33:12

简而言之,你没有做错任何事情。你只是无法做到这一点。

当您在不使用-Credential的情况下运行Start-Process -NoNewWindow时,您会说:使用当前已通过身份验证的凭据,运行可执行文件,并在同一个控制台窗口中返回结果。

当您使用-Credential运行Start-Process时,第一个问题是:如何验证凭据是否有效?你不能仅仅看着用户名就认为你可以重用现有的会话(例如,密码可能是错误的)。要验证凭据,Start-Process将启动一个新进程,作为凭据对象中提供的用户名/密码。它执行身份验证检查并获取新的身份验证票证。

由于它是一个新进程,在一个全新的上下文中运行,具有新的身份验证票证,因此它忽略-NoNewWindow标志,因为当前控制台无法重定向新进程的输出,并将其作为新窗口启动。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56451094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档