我正在尝试初始化TON of PowerShell窗口,以帮助您快速完成扫描。每个窗口都需要不同的输入,我有一个数组变量给出输入。启动过程函数似乎有效,但如果我使用"
它会给我未知的函数错误,当我使用'
foreach($search in $Partlist){
start-process powershell.exe -argumentlist '-nologo -noprofile -executionpolicy bypass -command .\Get-Data -search $search -department $PNdept -accuracy $accuracy; pause'
start-sleep -s 5
}
我不明白为什么我会得到未知函数错误,但我相信我没有得到回应,因为变量不是全局变量,我已经将变量声明为全局但仍然没有运气。也许我错过了什么。感谢。
答案 0 :(得分:0)
添加到Ansgar Wiechars'回答,有以下区别:
这里有一篇很棒的文章:https://learn-powershell.net/2012/05/13/using-background-runspaces-instead-of-psjobs-for-better-performance/但请注意走得太远:https://newsqlblog.com/2012/05/22/concurrency-in-powershell-multi-threading-with-runspaces/
要回答您关于全球空间的观点,这对您所在计算机的桌面会话而言并非全局性。这是您正在使用的PowerShell流程的全局。示例:您使用以下内容创建环境变量:
[System.Environment]::SetEnvironmentVariable("MyVar", 22, "User")
您生成了一个新的PowerShell窗口并使用以下命令进行检查:
$env:MyVar
你用它删除它:
Remove-Item env:\myvar
您生成另一个新的PowerShell窗口,环境变量仍然存在。进一步的实验将向您展示每个新流程都会产生一个新的全局范围。
原来如此!你为什么得到"未知功能"?因为您希望环境的某些方面与调用进程匹配,但它不成立。在这种情况下: