扩展远程会话数

时间:2016-03-21 15:47:48

标签: powershell powershell-v2.0 powershell-v3.0

我正在尝试使用Invoke-Command在远程服务器上作为PowerShell作业运行多个查询。但我可以看到,在单个服务器上,它不能运行超过25个作业实例。知道如何增加限制吗?我确实尝试将每个用户的max 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个作业后,它将失败并显示错误用户已超过允许会话的最大数量。

1 个答案:

答案 0 :(得分:1)

wsman:\ localhost \ shell \ MaxShellsPerUser设置全局配额 - 这是放在一起的所有端点的总配额。创建远程会话时,它默认是针对Microsoft.PowerShell创建的。在WSMan下,需要增加该配额:\ localhost \ Plugin \ microsoft.powershell \ Quotas \ MaxShellsPerUser(默认值为25