问题标签 [powershell-jobs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
powershell - Powershell 作业活动目录超时
我正在创建一个检查禁用用户的脚本。为了缩短为每个用户查找信息所需的时间,我想创建并行执行此操作的作业。仅将第一个作业实际完成,所有其他作业超时并显示此消息:
由于超出了超时限制,操作返回。
这是我查找禁用用户并开始工作的代码:
这是作业的脚本块:
windows - 想要使用多线程和 powershell 作业来运行单独的 windows 窗体,因为显示对话冻结父窗体
我试图用 Powershell 构建一个带有 windows 窗体的应用程序,
我遇到了一个问题,
当我运行我的父表单时,我没有问题,我可以打开一个子表单但是当我的子表单打开时,我无法回到我的父表单,我在互联网上搜索,这是 ShowDialogue 错误,但我真的想同时使用这两种形式。
我尝试使用 powershell 作业并在 powershell 作业上运行我的函数(父表单)但没有发生任何事情,
我的工作处于后台状态,但当我找到工作时它就存在,
可以修改工作特异性(更改背景状态),所以它对我来说是不可见的?
有没有另一种方法可以同时使用两个窗体的窗口而不是只停留在子窗体上?
谢谢 !
powershell - Powershell - 多次运行 New-PSSession 会导致错误
我试图在 20 台服务器上并行运行一个相当简单的命令。我到目前为止是这样的:
更新:我已将上面的代码更新为我目前拥有的代码。现在发生的事情是我正在为一台服务器返回一个结果。其他作业只是被取消或没有完成运行,我不确定。
我已将评论中的建议纳入其中,但看起来我还没有完全到位。有任何想法吗?
powershell - 如何在powershell后台导入模块?
我的 powershell 配置文件中有一些模块,它们的加载有时需要很长时间(10-15 秒)。我想使用这样的方法将它们加载到后台线程中:
问题是,即使文档声明 Import-Module 使用全局范围作为默认值,当我在父 shell 中使用 Get-Module 时,该模块并未列出,因此即使作业状态已完成,它也未加载。
我使用的一些模块:
编辑:我正在使用 pwsh 7.1
regex - PowerShell - 将正则表达式与线程作业输出匹配但不填充 $matches 变量
当我从新打开的 PowerShell 控制台运行以下脚本时,循环退出,因此显然存在匹配,但 $matches 变量(因此 $matches.PORT)第一次没有填充。当脚本再次运行时,它会被填充。
./ssh.ps1
PowerShell 控制台中的输出是:
相比之下,当我尝试运行以下脚本时,$matches 在第一次运行时会被填充。
./match.ps1
输出:
如果有人能理解为什么在没有填充 $matches 的情况下在第一个脚本中匹配文本,我将非常感激。
PS循环后存在的脚本仅用于调查目的,而不是我的代码实际执行的操作。
PPS 作为参考,az webapp create-remote-connection
在连接延迟后,来自 的输出为:
(端口每次都不同。)
azure-active-directory - 如何将启用 MFA 的 Azure 帐户凭据传递到 PowerShell ScriptBlock?
$global:token = [Microsoft.Open.Azure.AD.CommonLibrary.AzureSession]::AccessTokens
$ceo = "<ceo_username>"
导入-Csv "C:\Users\abhilash\Music\users.txt" | ForEach-对象 {
$脚本块 = {
参数($userprincipalname)
Connect-Azuread -AadAccessToken $global:token.AccessToken.AccessToken -accountid <my_username>
新对象 PSObject -property @{
Manager1 = $l = (Get-AzureADUserManager -ObjectId $userprincipalname).userprincipalname
Manager2 = $m = if ($l -ne $null -and $l -ne $CEO) { (Get-AzureADUserManager -ObjectId $l).userprincipalname } else { $null }
Manager3 = $n = if ($m -ne $null -and $m -ne $CEO) { (Get-AzureADUserManager -ObjectId $m).userprincipalname } else { $null }
Manager4 = $o = if ($n -ne $null -and $n -ne $CEO) { (Get-AzureADUserManager -ObjectId $n).userprincipalname } else { $null }
} | 选择@{N='User';E={$userprincipalname}},Manager1,Manager2,manager3,manager4
}
开始作业 $ScriptBlock -ArgumentList $_
}
While (Get-Job -State "Running") { Start-Sleep 10 }
找工作| 接受工作
“您必须在调用任何其他 cmdlet 之前调用 Connect-AzureAD cmdlet”......即使在有活动会话之后,我也会收到此错误,尝试使用 accesstoken 进行连接,现在我收到错误消息,因为“无法验证参数 'AadAccessToken' 上的参数” . 参数为 null 或空。请提供一个不为 null 或空的参数,然后重试该命令。