2016-03-21 13 views
0

Bir uzak sunucuda birden çok sorguyu bir PowerShell işi olarak çalıştırmak için Invoke-Command kullanmayı deniyorum. Ancak bunu tek bir sunucuda görebildiğim için 25'ten fazla iş örneği çalıştıramıyor. Limiti nasıl artırabilirim? Kullanıcı başına maksimum 50 kabuk ayarlamayı denedim, ancak yardım yok. kullanıcı için izin verilen oturumun hata maksimum sayısı ile başarısız her uzak sunucudaUzak oturum sayımını uzatma

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 sonra işler aştı: İşte

kodudur.

+0

Örnek kodu ekleyin, böylece işlerin yerel olarak mı yoksa uzaktan mı çalışıyor gibi sorular sormamız gerekmez. –

+0

Kod eklendi. –

+0

Sadece onaylamak için, bunlar bunu çalıştırdığınız farklı sunuculardır? Varsayılan ayarlardan farklı olarak iki farklı sunucuda 40 farklı çağrıda bulunabiliyor çünkü 25 –

cevap

1

wsman: \ localhost \ shell \ MaxShellsPerUser, global kotayı ayarlar - bu, bir araya getirilen tüm uç noktaların toplam kotasıdır. Uzak bir oturum oluşturduğunuzda, varsayılan olarak Microsoft.PowerShell'e karşı oluşturulur. Bu gereksinim için kota WSMan: \ localhost \ Plugin \ microsoft.powershell \ Quotas \ MaxShellsPerUser (varsayılanı 25)

İlgili konular