如何在同一脚本中同时运行两个powershell函数?

如何在同一脚本中同时运行两个powershell函数?,powershell,dynamics-crm,Powershell,Dynamics Crm,我对powershell中的异步调用做了大量研究,但没有任何东西可以正常工作 我需要找到一种方法,让两个独立的数据库查询同时运行。我通过crm dynamics有一个内部连接和一个在线连接 function Get-OnPremiseDBQuery { $onPremResultsLocation = "..\results\onPremRecordsCountByEntity.txt" $onPremRecordSummary = @() foreac

我对powershell中的异步调用做了大量研究,但没有任何东西可以正常工作

我需要找到一种方法,让两个独立的数据库查询同时运行。我通过crm dynamics有一个内部连接和一个在线连接

function Get-OnPremiseDBQuery {
    $onPremResultsLocation = "..\results\onPremRecordsCountByEntity.txt"

        $onPremRecordSummary = @()
        foreach ($entityGroup in $entitiesArray) {
            $onPremRecordSummaryByGroup = Get-OnPremiseRecordsCountSummary -onPremConnection $onPremCRMConnection -entityNames $entityGroup
            $onPremRecordSummary += $onPremRecordSummaryByGroup

            Write-Host "ON PREM"
            Write-Host $onPremRecordSummaryByGroup | Format-Table -Property * -AutoSize | Out-String -Width 4096
        }
        Write-Output $onPremRecordSummary | Format-Table -Property * -AutoSize | Out-String -Width 4096 | Out-File $onPremResultsLocation -Append

}

function Get-OnlineDBQuery {
    $onlineResultsLocation = "..\results\onlineRecordsCountByEntity.txt"

        $onlineRecordSummary = @()
        foreach ($entityGroup in $entitiesArray) {
            $onlineRecordSummaryByGroup = Get-OnLineRecordsCountSummary -onlineConnection $onlineCRMConnection -entityNames $entityGroup
            $onlineRecordSummary += $onlineRecordSummaryByGroup

            Write-Host "ONLINE"
            Write-Host $onlineRecordSummaryByGroup | Format-Table -Property * -AutoSize | Out-String -Width 4096
        }
        Write-Output $onlineRecordSummary | Format-Table -Property * -AutoSize | Out-String -Width 4096 | Out-File $onlineResultsLocation -Append
    }

#Async Query Calls to onpremis/online DBs
##Looking to find a way to run
Get-OnPremiseDBQuery
and
Get-OnlineDBQuery
AT THE SAME TIME

如果有人能帮忙,请帮忙

这类工作正是PowerShell作业和运行空间的设计目标

至于

我在powershell和我的 没有任何东西可以正常工作

你是说,你有下面的杠杆作用,但没有一个选项对你有效

你也没有定义你所说的

我没有任何东西可以正常工作

  • 什么不起作用
  • 您得到了哪些响应/错误
讨论:

如何在不使用作业的情况下并行运行PowerShell脚本

如果我有一个脚本需要在多台计算机上运行,或者 对于多个不同的参数,我如何并行执行它, 而不必产生生成新PSJob的开销 开始工作

PowerShell的并行处理

并行工作

无论您最终采用哪种方法,您都将获得PowerShell 并行运行任务。这通常需要你有额外的 正在运行PowerShell的实例。管理计算机上的资源- CPU、内存和网络带宽都是有限的。记住这些 你不会让机器过载,结果什么也得不到

另见:

调用异步-允许您运行任何cmdlet/function/scriptblock 异步

这已经在V2和V3中进行了测试。您只需提供数据集 (-set),例如配置设置的服务器列表等 集合所属的参数(-setparam),例如ComputerName。你 能够通过-params为任何其他参数提供哈希 (参见示例。)线程或作业的数量(并发实例) 可以通过ThreadCount进行控制


这种努力正是PowerShell作业和运行空间设计的目的

至于

我在powershell和我的 没有任何东西可以正常工作

你是说,你有下面的杠杆作用,但没有一个选项对你有效

你也没有定义你所说的

我没有任何东西可以正常工作

  • 什么不起作用
  • 您得到了哪些响应/错误
讨论:

如何在不使用作业的情况下并行运行PowerShell脚本

如果我有一个脚本需要在多台计算机上运行,或者 对于多个不同的参数,我如何并行执行它, 而不必产生生成新PSJob的开销 开始工作

PowerShell的并行处理

并行工作

无论您最终采用哪种方法,您都将获得PowerShell 并行运行任务。这通常需要你有额外的 正在运行PowerShell的实例。管理计算机上的资源- CPU、内存和网络带宽都是有限的。记住这些 你不会让机器过载,结果什么也得不到

另见:

调用异步-允许您运行任何cmdlet/function/scriptblock 异步

这已经在V2和V3中进行了测试。您只需提供数据集 (-set),例如配置设置的服务器列表等 集合所属的参数(-setparam),例如ComputerName。你 能够通过-params为任何其他参数提供哈希 (参见示例。)线程或作业的数量(并发实例) 可以通过ThreadCount进行控制