首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell,Start-Job不工作。不使用Start-job脚本也可以

Powershell,Start-Job不工作。不使用Start-job脚本也可以
EN

Stack Overflow用户
提问于 2016-12-16 21:10:33
回答 1查看 1K关注 0票数 0

我已经编写了powershell脚本,将一个文件(包含主机名)拆分为十个文件,对每个文件中的主机名执行ping (即powershell测试连接命令)。为了加快这个过程,我使用start-job命令来处理每个文件的主机名。如果我删除start-job命令,脚本就可以正常工作。但是当我使用start-job命令时,"scriptblock“中使用的数组没有返回所需的输出。相反,它仍然是空的。以下是部分脚本(仅用于一个文件处理)。请指点一下,我这里漏掉了什么?

代码语言:javascript
复制
Start-Job -Name "Ping-Part-1" -ScriptBlock {
    foreach ($Comp1 in $file_part1_content) {
        If (test-Connection -ComputerName $Comp1 -Count 1 -Quiet) {
                $project1 = Create-New-Object
                $project1.AliveStatus = "Alive"
                $project1.Hostname = $Comp1
                $resultsarray_file1 += $project1
            }
            Else {
                $project1 = Create-New-Object
                $project1.AliveStatus = "Not Alive"
                $project1.Hostname = $Comp1
                $resultsarray_file1 += $project1
            }
        }
    }
EN

回答 1

Stack Overflow用户

发布于 2016-12-16 21:17:26

这里面有几个地方不对劲。默认情况下,您在作业中使用的变量在powershell会话中不可用(btw反之亦然)。所以你有多个问题。您没有在作业中放入任何变量,也没有在作业外检索任何变量。

另外,你把开始工作放在了错误的地方。现在,您正在启动一个包含整个foreach循环的作业。我假设您想要单独处理每台计算机。因此,您应该在foreach循环中启动作业。

前段时间我写了一篇关于这个的博文,它适合你的场景。你可以在here上找到它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41185173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档