PowerShell中的ProcessStartInfo和流程-身份验证错误 [英] ProcessStartInfo and Process in PowerShell - Authentication Error
本文介绍了PowerShell中的ProcessStartInfo和流程-身份验证错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有使用ProcessStartInfo和Process调用另一个脚本并返回该脚本输出的代码.
I have code that uses ProcessStartInfo and Process to invoke another script, and to return the output of that script.
不幸的是,我遇到了错误,而且不确定如何解决这些问题.
Unfortunately, I am getting errors, and I am unsure how to troubleshoot them.
#script1.ps1
$abc = $args
$startInfo = $NULL
$process = $NULL
$standardOut = $NULL
<#Previously created password file in C:\Script\cred.txt, read-host -assecurestring | convertfrom-securestring | out-file C:\Script\cred.txt#>
$password = get-content C:\Script\cred.txt | convertto-securestring
$startInfo = New-Object System.Diagnostics.ProcessStartInfo
$startInfo.FileName = "powershell.exe"
$startInfo.Arguments = "C:\script\script2.ps1", $abc
$startInfo.RedirectStandardOutput = $true
$startInfo.UseShellExecute = $false
$startInfo.CreateNoWindow = $false
$startInfo.Username = "DOMAIN\Username"
$startInfo.Password = $password
$process = New-Object System.Diagnostics.Process
$process.StartInfo = $startInfo
$process.Start() | Out-Null
$standardOut = $process.StandardOutput.ReadToEnd()
$process.WaitForExit()
# $standardOut should contain the results of "C:\script\script2.ps1"
$standardOut
我得到的错误是:
Exception calling "Start" with "0" argument(s): "Logon failure: unknown user name or bad password"
At C:\script\script1.ps1:46 char:15
+ $process.Start <<<< () | Out-Null
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
You cannot call a method on a null-valued expression.
At C:\script\script1.ps1:47 char:49
+ $standardOut = $process.StandardOutput.ReadToEnd <<<< ()
+ CategoryInfo : InvalidOperation: (ReadToEnd:String) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
Exception calling "WaitForExit" with "0" argument(s): "No process is associated with this object."
At C:\script\script1.ps1:48 char:21
+ $process.WaitForExit <<<< ()
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
如何解决此问题?
推荐答案
这对您来说很清楚,不是吗?:
It's pretty much spelled out to you, isn't it?:
登录失败:用户名未知或密码错误"
"Logon failure: unknown user name or bad password"
(第一行错误).
请注意,应在单独的属性中提供DOMAIN:
Note that DOMAIN should be provided in separate property:
$startInfo.Username = "Username"
$startInfo.Domain = "DOMAIN"
这篇关于PowerShell中的ProcessStartInfo和流程-身份验证错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文