扩展远程会话计数

问题描述:

我试图使用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工作失败与用户允许会话的最大错误数量已经突破。

+0

包含示例代码,因此我们不必提问诸如作业是本地还是远程运行的问题。 –

+0

添加了代码。 –

+0

只是为了确认,这些是你正在运行的不同服务器?因为使用默认设置,我可以在两个不同的服务器上运行40次调用,而不会出现错误,只要不超过25个 –

wsman:\ localhost \ shell \ MaxShellsPerUser设置全局配额 - 这是所有端点放在一起的总配额。当您创建一个远程会话时,默认情况下会创建一个远程会话,并与Microsoft.PowerShell配合使用。需要增加WSMan的配额:\ localhost \ Plugin \ microsoft.powershell \ Quotas \ MaxShellsPerUser(默认为25