start-job - 如何在 start-job 中使用 -InitializationScript 中的 2 个以上函数
问题描述
我想在以下 PowerShell 启动作业代码中使用 -InitializationScript 中的 2 个函数:
$IISfunc={ Function pool_RemoteServer ($PoolName,$server)
{
"doing something in iis"
}
}
$AppState= { Function GetAppState($AppServer,$AppName)
{
"doing something in appserver"
}
}
$block ={
Param([string] $AppServer,
[string] $AppName,
[string] $PoolName,
[string] $AppState,
[string] $IISfunc
)
pool_RemoteServer -PoolName $PoolName -server $AppServer
GetAppState -AppServer $AppServer -AppName $AppName
}
Get-Job | Remove-Job
$MaxThreads = 20
invoke-service -JobserviceName $JobserviceName
foreach ($AppServer in $AppServers -split ",")
{
While ($(Get-Job -state running).count -ge $MaxThreads){
Start-Sleep -Milliseconds 3
}
Start-Job -Scriptblock $block -ArgumentList $AppServer,$AppName,$PoolName -InitializationScript $AppState,$IISfunc
}
While ($(Get-Job -State Running).count -gt 0){
start-sleep 1
}
foreach($job in Get-Job){
$info= Receive-Job -Id ($job.Id)
}
Get-Job | Remove-Job
我遇到了这个错误:Start-Job:无法将'System.Object []'转换为参数'InitializationScript'所需的类型'System.Management.Automation.ScriptBlock'。不支持指定的方法。在 line:21 char:95 + ... lizationScript $AppState,$IISfunc
解决方案
哦!它是如此简单的问题!请在您的代码中包含以下解决方案:
$func={ Function pool_RemoteServer ($PoolName,$server)
{
"doing something in iis"
}
Function GetAppState($AppServer,$AppName)
{
"doing something in appserver"
}
}
- 亲切的问候
推荐阅读
- php - 博客的自定义下拉过滤器不适用于多个过滤器 - Wordpress
- c++ - 是否可以通过手动输入制作 OpenCV 矩阵?
- python - UserWarning:FixedFormatter 只能与 FixedLocator 一起使用
- tensorflow-federated - TensorFlowFederated:将张量传递给 tff.federated_computation
- java - Java找出批处理文件是否成功运行
- python - 使用 xlwings 将数据框写入 excel 文件时出现日期格式问题
- arrays - Express 返回空数组,但数组没问题
- python - 如何将数据帧的每个第 i 个元素映射到来自 PySpark 中范围定义的另一个数据帧的键
- vim - 在 zsh 终端中使用 vim 键,如何退出“excute:_”模式?
- dialogflow-es - AOG中文版:有时会出现Invocation Error?AOG不稳定?