PowerShell Get-WmiObject: Ошибка нехватки памяти? - PullRequest
0 голосов
/ 22 января 2019

Люди,

Я пытаюсь научиться создавать сценарии с использованием объекта WMI и PowerShell, поэтому я не уверен, почему простой сценарий, приведенный ниже, не работает для одного сервера, а работает для другого?

$Server = 'PRODDB17-V'

Get-WmiObject -ComputerName $Server -Class Win32_LogicalDisk -Filter "DriveType = 3" | ft -AutoSize
Get-WmiObject -Query "SELECT * FROM Win32_Service WHERE DisplayName LIKE '%SQL%'" -ErrorAction Stop -ComputerName $Server | ft -AutoSize

Я получил следующую ошибку, как показано ниже:

DeviceID DriveType ProviderName    FreeSpace          Size VolumeName
-------- --------- ------------    ---------          ---- ----------
C:               3               50624507904  104751689728 SYSTEM    
D:               3              135013552128 1915396026368 DATA      
L:               3               71224967168  167772155904 LOGS      
S:               3              131093495808 2198886936576 SQL       
P:               3              107122515968  644108775424 PageFile 
T:               3                8489771008   42946523136 TEMPDB    


Get-WmiObject : Out of memory 
At line:5 char:1
+ Get-WmiObject -Query "SELECT * FROM Win32_Service WHERE DisplayName LIKE '%SQL%' ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Get-WmiObject], ManagementException
    + FullyQualifiedErrorId : GetWMIManagementException,Microsoft.PowerShell.Commands.GetWmiObjectCommand

1 Ответ

0 голосов
/ 30 мая 2019

По умолчанию PowerShell будет выделено 150 МБ памяти, это может привести к сбою некоторых команд.

Используйте следующую команду, чтобы увеличить предел (запустить из экземпляра PS с повышенными правами) и перезапустить 'Служба инструментария управления Windows '.

set-item wsman:localhost\Shell\MaxMemoryPerShellMB 512

Увеличение лимита на основе вашей физической памяти.

...