在 Start-Process cmdlet 中传递管理员凭据

问题描述 投票:0回答:1

我正在尝试构建一个脚本,当登录的用户不是管理员时,该脚本会在电脑上安装具有加密本地管理员凭据的应用程序。

我正在运行以下 cmdlet:

$User = "[email protected]" 
$PasswordFile = "C:\temp\Cred\Password.txt" 
$KeyFile = "C:\temp\Cred\AES.key" 
$key = Get-Content $KeyFile 
$MyCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, (Get-Content $PasswordFile | ConvertTo-SecureString -Key $key) 

Start-Process -FilePath C:\Temp\7z2301-x64.exe -Credential $MyCredential

但是,即使我传递了正确的凭据,我仍收到以下错误:

Start-Process : This command cannot be run due to the error: The user name or 
password is incorrect.
At line:13 char:1
+ Start-Process -FilePath C:\Temp\7z2301-x64.exe -Credential $MyCredent ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Start-Process], InvalidOp 
   erationException
    + FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.C 
   ommands.StartProcessCommand

有人可以帮忙吗?

提前谢谢您!

运行上述代码时出现错误:无效的用户名和密码。

powershell powershell-2.0 powershell-3.0 powershell-4.0 powershell-remoting
1个回答
0
投票

如果您使用的帐户没有访问当前目录的必要权限,您可能会遇到此错误。

如果您将脚本作为服务运行,则该服务可能在没有必要权限的其他帐户下运行。

尝试

Get-Credential
确认凭据正常工作。

$MyCredential = Get-Credential
Start-Process -FilePath C:\Temp\<some_exe>.exe -Credential $MyCredential
© www.soinside.com 2019 - 2024. All rights reserved.