Apakah ada aplikasi yang memantau jumlah memori fisik yang diinstal?


0

Adakah yang akrab dengan skrip yang dapat diatur untuk dijalankan saat startup yang akan melaporkan status memori fisik yang dipasang di mesin?

Saya memiliki stok laptop Windows XP dan saya berurusan dengan masalah pencurian RAM. Ketika pengguna log on, saya ingin mereka diberitahu jika memori fisik kurang dari jumlah yang telah ditentukan (4GB). Yang lebih baik adalah perubahan ini dicatat dalam file log yang hanya dapat diakses oleh akun administrator.


lihat apakah ada cara untuk mengunci kasing? : p
Journeyman Geek

Jawaban:


1

Ada perintah vbscript yang mengembalikan jumlah memori sistem. Gunakan ini untuk menulis ke file teks atau log dan membandingkannya dengan jumlah sebelumnya dan mengembalikan kesalahan jika tidak cocok.

Lihat disini: http://community.spiceworks.com/scripts/show/409-find-network-machine-system-name-and-installed-memory

Karena mengembalikan integer untuk memori sistem, Anda bahkan dapat mengatur faktor fudge untuk meminimalkan kesalahan palsu, misalnya +/- 30.

Anda juga dapat menggunakan ini untuk memenuhi preferensi pelaporan aman Anda dengan menambahkan nilai memori dan tanggal dan waktu ke file di folder aman dan kemudian menggunakan skrip untuk mensurvei laptop secara teratur dan melaporkan di mana saja nilai telah berubah dan tanggal saat itu. perubahan direkam. Itu akan memungkinkan Anda untuk melihat kapan varians pertama kali direkam untuk memungkinkan pelacakan masalah yang lebih baik.

PEMBARUAN: Sysinternals (sekarang dimiliki oleh MS) memiliki utilitas, PSINFO, yang melaporkan berbagai nilai informasi sistem dari jarak jauh, mirip dengan skrip di atas. Tapi itu melaporkan lebih dari sekedar memori. Jalankan dan laporkan saat start up, tidak perlu skrip di laptop. Dan kemudian Anda hanya perlu menulis skrip pengumpul dan parsing keluaran dan Anda dapat memeriksa beberapa nilai sistem untuk varian.


1

Ini lebih akurat untuk menggunakan Kapasitas properti dari Win32_PhysicalMemory dari WMI, daripada menggunakan TotalPhysicalMemory properti dari Win32_ComputerSystem . Yang telah dibilang...

Untuk mengingatkan pengguna, Anda mungkin ingin semacam pesan sembulan. VBScript di bawah ini dapat digunakan sebagai skrip login pengguna, baik dalam GPO domain Anda atau menggunakan editor Kebijakan Grup lokal ( gpedit.msc ). Script harus disimpan dengan a .vbs perpanjangan.

Option Explicit

Const TargetGBMemory = 4

Dim wmi
Dim physicalMemory
Dim mem
Dim resultsReturned
Dim totalMem

Set wmi = GetObject("winmgmts:\root\cimv2")
Set physicalMemory = wmi.ExecQuery ("SELECT Capacity FROM Win32_PhysicalMemory")

resultsReturned = False
On Error Resume Next
Err.Clear
mem = physicalMemory.Count
resultsReturned = CBool(Err.Number = 0)
Err.Clear
On Error Goto 0

totalMem = 0
If resultsReturned Then
    For Each mem In physicalMemory
        If Not IsNull(mem.Capacity) Then
            totalMem = CDbl(mem.Capacity)
        End If
    Next
End If

Set physicalMemory = Nothing
Set wmi = Nothing

If ((totalMem / (2 ^ 30)) < TargetGBMemory) Then
    WScript.Echo "Something happened to your memory. You only have", FormatNumber(totalMem / (2 ^ 30)), "GB."
End If

Untuk ide file log, Anda mungkin tidak ingin sembulan. Cukup tulis ke file dan diam. Anda dapat menggunakan skrip di bawah ini dengan cara yang sama, tetapi Anda ingin skrip startup mesin di domain atau Kebijakan Grup lokal. Script menulis file bernama "memory_log.txt" dalam folder Sistem. Secara default, area ini hanya dapat ditulis oleh admin. Pengguna akan dapat melihat file log dan membacanya, tetapi mereka tidak bisa menghapus atau memodifikasinya. Script harus disimpan dengan a .wsf perpanjangan.

<package>

<job>

<object id="fso" progid="Scripting.FileSystemObject" />
<reference object="Scripting.FileSystemObject" />

<script language="VBScript">

Option Explicit

Const TargetGBMemory = 4

Dim wmi
Dim physicalMemory
Dim mem
Dim resultsReturned
Dim totalMem

Set wmi = GetObject("winmgmts:\root\cimv2")
Set physicalMemory = wmi.ExecQuery ("SELECT Capacity FROM Win32_PhysicalMemory")

resultsReturned = False
On Error Resume Next
Err.Clear
mem = physicalMemory.Count
resultsReturned = CBool(Err.Number = 0)
Err.Clear
On Error Goto 0

totalMem = 0
If resultsReturned Then
    For Each mem In physicalMemory
        If Not IsNull(mem.Capacity) Then
            totalMem = CDbl(mem.Capacity)
        End If
    Next
End If

Set physicalMemory = Nothing
Set wmi = Nothing


If ((totalMem / (2 ^ 30)) < TargetGBMemory) Then
    Dim ts
    Set ts = fso.OpenTextFile (fso.BuildPath (fso.GetSpecialFolder(SystemFolder), "memory_log.txt"), ForAppending, True)
    ts.Write Now
    ts.Write vbTab
    ts.WriteLine "Something happened to your memory. You only have " & FormatNumber(totalMem / (2 ^ 30)) & " GB."
    ts.Close
    Set ts = Nothing
End If

</script>

</job>

</package>
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.