由于我的组织使用的权限类型不同,我正在处理一个PowerShell脚本,该脚本需要以其他用户身份运行作业。测试脚本时,即使我确定所使用的凭据正确,我仍会收到错误消息,提示用户名或密码不正确。
我的脚本现在获取用户凭据,并启动仅调用第二个PS脚本的作业。第二个脚本与父脚本位于同一文件夹中。我现在的代码:
$PSScriptRoot
$scriptPath = $PSScriptRoot + "\sample2.ps1"
$cred = Get-Credential -Message "Please enter your non-admin account information"
$myJob = Start-Job -FilePath $scriptPath -Credential $cred
$myJob | Receive-Job -Keep
$myJob #Output the job
我什至尝试了以下在网上找到的内容,但是使用这种格式也不起作用。
$username = Username
$password = Password
$cred = New-Object -TypeName System.Management.Automation.PSCredential ($username, $password)
$Credentials = Get-Credential $cred
我希望此过程将允许第二个脚本在第一个脚本之外运行,因为要完成我的脚本的目标,我必须将父脚本作为管理员帐户运行,并将子脚本作为普通帐户运行,由于权限方面的组织差异。相反,我继续收到以下错误:
[localhost] An error occurred while starting the background process. Error reported: The user name or password is incorrect.
+ CategoryInfo : OpenError: (localhost:String) [], PSRemotingTransportException
+ FullyQualifiedErrorId : -2147467259,PSSessionStateBroken
并从作业中获得以下输出:
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
7 Job7 BackgroundJob Failed False localhost Write-Host "Hello Worl...
在解决此凭据问题方面的任何帮助都将受到赞赏。
编辑:我的问题是,在凭据对话框中输入用户名时,我没有使用domain\username
格式。我还必须将脚本移动到非管理员帐户和管理员帐户都可以访问的驱动器,因为它们无法访问彼此的C:\。