Я могу предположить, что проблема состоит в том, что Вы делаете IP, подменяющий (SNAT) и DNAT на пакетах.
Скажем, Вы соединяетесь от внутреннего узла 192.168.128.3.
Исходный пакет был бы:
192.168.128.3 -> somehost.com (190.200.229.102)
Затем из-за DNAT это перевести в:
190.200.229.102 -> somehost.com (190.200.229.102)
Я предполагаю, что это - то, где проблема: от и до адресов то же.
Необходимо выполнить tcpdump или tshark в соединяющейся машине, каждом интерфейсе брандмауэра и машины получения. Затем попытайтесь соединить и попытаться видеть, в котором интерфейсе пакеты потеряны и от и до адресов, поскольку они переводятся.
После того как Вы понимаете это, можно создать фильтр для рассмотрения той определенной проблемы в корректном интерфейсе.
Иначе можно использовать решение DNS, указанное joelmansford, который может быть более чистым решением.
Вот способ получить информацию о в настоящее время рабочих процессах и виде размером Рабочего набора
Get-Process | Sort-Object -Descending WS
Присвойте тот вывод переменной, и он даст Вам массив результатов, затем можно просто выписать первому члену массива (который в этом случае будет Системой. Диагностика. Объект процесса).
$ProcessList = Get-Process | Sort-Object -Descending WS
Write-Host $ProcessList[0].Handle "::" $Process.ProcessName "::" $Process.WorkingSet
Вот другой быстрый и грязный сценарий для дампа нескольких объектов данных из списка в настоящее время рабочих процессов с помощью поставщика WMI Win32_Process:
$ProcessList = Get-WmiObject Win32_Process -ComputerName mycomputername
foreach ($Process in $ProcessList) {
write-host $Process.Handle "::" $Process.Name "::" $Process.WorkingSetSize
}
Это перечислит PID (дескриптор), имя процесса и текущий размер рабочего набора. Можно изменить это использование различных свойств класса Процесса WMI.
Один лайнер для поиска имени вашего процесса с наибольшим использованием памяти
Get-Process | Sort-Object -Descending WS | select -first 1 | select -ExpandProperty ProcessName
$scripthost = Read-Host "Enter the Hostname of the Computer you would like to check Memory Statistics for"
""
""
"===========CPU - Top 10 Utilization List==========="
gwmi -computername $scripthost Win32_PerfFormattedData_PerfProc_Process| sort PercentProcessorTime -desc | select Name,PercentProcessorTime | Select -First 10 | ft -auto
"===========Memory - Top 10 Utilization List==========="
gwmi -computername $scripthost Win32_Process | Sort WorkingSetSize -Descending | Select Name,CommandLine,@{n="Private Memory(mb)";Expression = {[math]::round(($_.WorkingSetSize / 1mb), 2)}} | Select -First 10 | Out-String
#gwmi -computername $scripthost Win32_Process | Sort WorkingSetSize -Descending | Select Name,CommandLine,@{n="Private Memory(mb)";e={$_.WorkingSetSize/1mb}} | Select -First 10 | Out-String
#$fields = "Name",@{label = "Memory (MB)"; Expression = {[math]::round(($_.ws / 1mb), 2)}; Align = "Right"};
"===========Server Memory Information==========="
$fieldPercentage = @{Name = "Memory Percentage in Use (%)"; Expression = { “{0:N2}” -f ((($_.TotalVisibleMemorySize - $_.FreePhysicalMemory)*100)/ $_.TotalVisibleMemorySize)}};
$fieldfreeram = @{label = "Available Physical Memory (MB)"; Expression = {[math]::round(($_.FreePhysicalMemory / 1kb), 2)}};
$fieldtotalram = @{label = "Total Physical Memory (MB)"; Expression = {[math]::round(($_.TotalVisibleMemorySize / 1kb), 2)}};
$fieldfreeVram = @{label = "Available Virtual Memory (MB)"; Expression = {[math]::round(($_.FreeVirtualMemory / 1kb), 2)}};
$fieldtotalVram = @{label = "Total Virtual Memory (MB)"; Expression = {[math]::round(($_.TotalVirtualMemorySize /1kb), 2)}};
$memtotal = Get-WmiObject -Class win32_OperatingSystem -ComputerName $scripthost;
$memtotal | Format-List $fieldPercentage,$fieldfreeram,$fieldtotalram,$fieldfreeVram,$fieldtotalVram;