簡體   English   中英

Powershell Start-Process -NoNewWindow不使用-Credentials

[英]Powershell Start-Process -NoNewWindow not working with -Credentials

我希望使用憑證從powershell運行exe。 我希望輸出在同一個窗口中。 這就是我的powershell看起來的樣子。

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

$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 ,我得到的結果與預期的一樣。

Start-Process $pathNew -NoNewWindow -PassThru -Wait

我究竟做錯了什么? 有什么指針嗎?

簡短的回答,你沒有做錯任何事。 你將無法做到這一點。

當您在沒有-Credential情況下運行Start-Process -NoNewWindow ,您會說:使用當前已經過身份驗證的憑據,運行可執行文件,並在同一控制台窗口中返回結果。

使用-Credential運行Start-Process時,第一個問題是:如何驗證憑據是否有效? 您不能只查看用戶名並假設您可以重新使用現有會話(例如,密碼可能是錯誤的)。 要驗證憑據, Start-Process將以Credential對象中提供的用戶名/密碼啟動新進程。 它執行身份驗證檢查並獲取新的身份驗證票證。

由於它是一個新進程,在全新的上下文中運行,使用新的身份驗證票證,它會忽略-NoNewWindow標志,因為當前控制台無法重定向新進程的輸出,並將其作為新窗口啟動。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM