Lendo em superusuário / stackoverflow eu não consegui chegar a um script que realmente produza o% -free ram (como visto no gerenciador de tarefas do Windows) de de várias máquinas remotas (por exemplo, servidor1-servidor4). Aqui está o que eu tenho em termos de código, a plataforma deve ser Windows, ou CMD ou PowerShell (ou similar):
1) CMD, não conseguiu obter o% de RAM livre (ou seja, não pôde acessar o ram 'ocupado' para calcular 'busy / total * 100'. fonte ): wmic /NODE:"servername" /USER:"yourdomain\administrator" OS GET FreePhysicalMemory
2) powershell ( fonte ), não conseguia obter a memória de máquinas remotas (por exemplo, Get-WmiObject
da máquina remota):
$system = Get-WmiObject win32_OperatingSystem
$totalPhysicalMem = $system.TotalVisibleMemorySize
$freePhysicalMem = $system.FreePhysicalMemory
$usedPhysicalMem = $totalPhysicalMem - $freePhysicalMem
$usedPhysicalMemPct = [math]::Round(($usedPhysicalMem / $totalPhysicalMem) * 100,1)
qualquer ajuda apreciada
powershell
cmd.exe
remote-access
user2305193
fonte
fonte
Get-Counter -Counter
para o cálculo% seguinte. Eu basicamente copiei e colei o código das fontes (eu esperava que um especialista pudesse me ajudar rapidamente, raciocinando que essa seria uma pergunta comum) - mas comentarei ainda mais a questão.Respostas:
Eu criei este script bastante generalizável, que dá uma porcentagem de RAM livre. Para porcentagem de ram usado simplesmente adicione
$a=$b-$a
.fonte
Usando o método de Conectando-se ao WMI remotamente com o PowerShell https://msdn.microsoft.com/pt-br/library/ee309377(v=vs.85).aspx
Eu usei o .NET para formatar números exemplo daqui. https://technet.microsoft.com/pt-br/library/ee692795.aspx
EDITAR
Para resolver problemas com formatos numéricos nas versões PS e .net, você pode usar o formato do ponto decimal ou fixo, em vez do número para corrigir. http://www.google.com/adwords
OU
fonte
Cannot convert value "20'823'476.000000" to type "System.Int32". Error: "Input string was not in a correct format." At line:8 char:9 + $RAM = "{0:N6}" -f ($Item.TotalVisibleMemorySize)/1kB + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [], RuntimeException + FullyQualifiedErrorId : InvalidCastFromStringToInteger