扩展远程会话计数
问题描述:
我试图使用Invoke-Command
在远程服务器上运行多个查询作为PowerShell作业。但是我可以看到,在一台服务器上,它不能运行超过25个作业实例。任何想法如何我可以增加限制?我曾尝试将每个用户的最大shell设置为50,但没有帮助。扩展远程会话计数
下面是代码:每个远程服务器上
foreach ($com in $hostcomp) {
Invoke-Command -ComputerName $com -ScriptBlock {
cd WSMan:\localhost\Shell
dir
Set-Item .\MaxShellsPerUser 1000
dir
Set-Item .\MaxProcessesPerShell 1000
dir
}
Get-VM -ComputerName $com | Select -ExpandProperty name |
Out-File c:\vmfile.txt
$vm = Get-Content "c:\vmfile.txt"
foreach ($v in $vm) {
Write-Host $v " on $com is being SHUTDOWN..................Please Wait!"
Invoke-Command -ComputerName $com -ScriptBlock {
param($v)
Stop-VM -name $v -Force
} -ArgumentList $v -AsJob -JobName "ShutDownVMsss"
}
}
后25工作失败与用户允许会话的最大错误数量已经突破。
答
wsman:\ localhost \ shell \ MaxShellsPerUser设置全局配额 - 这是所有端点放在一起的总配额。当您创建一个远程会话时,默认情况下会创建一个远程会话,并与Microsoft.PowerShell配合使用。需要增加WSMan的配额:\ localhost \ Plugin \ microsoft.powershell \ Quotas \ MaxShellsPerUser(默认为25)
包含示例代码,因此我们不必提问诸如作业是本地还是远程运行的问题。 –
添加了代码。 –
只是为了确认,这些是你正在运行的不同服务器?因为使用默认设置,我可以在两个不同的服务器上运行40次调用,而不会出现错误,只要不超过25个 –