我正在尝试学习使用WMI object & 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发布于 2019-05-30 18:56:28
默认情况下,powershell将分配150 MB内存,这可能会导致某些命令失败。
使用以下命令增加限制(从提升的PS实例运行)并重新启动“Windows Management Instrumentation”服务。
set-item wsman:localhost\Shell\MaxMemoryPerShellMB 512根据您的物理内存增加限制。
https://stackoverflow.com/questions/54307284
复制相似问题