gpt4 book ai didi

powershell - Powershell作业中的输入对象

转载 作者:行者123 更新时间:2023-12-03 01:14:23 24 4
gpt4 key购买 nike

我正在尝试在PowerShell中实现一个看起来像这样的工作:

$cred = Get-Credential 
$job1 = Start-Job -InputObject $cred -ScriptBlock {
Get-ADUser -Credential $cred -Filter *
}
$res1 = Wait-Job -Job $job1 | Receive-Job

但是我收到一条错误消息:

“Wait-Job:Wait-Job cmdlet无法完成工作,因为阻止了一个或多个作业等待用户交互。请使用Receive-Job cmdlet处理交互式作业的输出,然后重试。
....
检测到死锁:(System.Manageme ... n.PSRemotingJob:PSRemotingJob)[Wait-J
ob],
....


但是,如果我像这样创建看似相同的工作:
$job2 = Start-Job -ScriptBlock {
$pass = ConvertTo-SecureString "pass" -AsPlainText -Force
$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist "usr",$pass

Get-ADUser -Credential $cred -Filter *
}
$res2 = Wait-Job -Job $job2 | Receive-Job

一切正常。

你能帮我理解为什么吗?

谢谢!

最佳答案

要将参数传递给脚本块,您需要使用-ArgumentList参数,而不是-InputObject。试试这个:

$cred = Get-Credential 
$job1 = Start-Job -ScriptBlock {PARAM($cred)
Get-ADUser -Credential $cred -Filter *
} -ArgumentList $cred

请注意, -ArgumentList必须是 Start-Job命令中的最后一个参数。

关于powershell - Powershell作业中的输入对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33243714/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com