Mengumpulkan informasi tentang komputer

Sampel ini hanya berlaku untuk platform Windows.

Cmdlet dari modul CimCmdlets adalah cmdlet terpenting untuk tugas manajemen sistem umum. Semua pengaturan subsistem penting diekspos melalui WMI. Selain itu, WMI memperlakukan data sebagai objek yang berada dalam koleksi satu atau beberapa item. Karena PowerShell juga bekerja dengan objek dan memiliki alur yang memungkinkan Anda memperlakukan satu atau beberapa objek dengan cara yang sama, akses WMI generik memungkinkan Anda melakukan beberapa tugas tingkat lanjut dengan sedikit pekerjaan.

Mencantumkan pengaturan desktop

Kita akan mulai dengan perintah yang mengumpulkan informasi tentang desktop di komputer lokal.

Get-CimInstance -ClassName Win32_Desktop

Ini mengembalikan informasi untuk semua desktop, baik yang sedang digunakan maupun tidak.

Catatan

Informasi yang dikembalikan oleh beberapa kelas WMI dapat sangat rinci, dan sering menyertakan metadata tentang kelas WMI.

Karena sebagian besar properti metadata ini memiliki nama yang dimulai dengan Cim, Anda dapat memfilter properti menggunakan Select-Object. Tentukan parameter -ExcludeProperty dengan "Cim*" sebagai nilai . Contohnya:

Get-CimInstance -ClassName Win32_Desktop | Select-Object -ExcludeProperty "CIM*"

Untuk memfilter metadata, gunakan operator alur (|) untuk mengirim hasil Get-CimInstance perintah ke Select-Object -ExcludeProperty "CIM*".

Mencantumkan Informasi BIOS

Kelas WMI Win32_BIOS mengembalikan informasi yang cukup ringkas dan lengkap tentang BIOS sistem di komputer lokal:

Get-CimInstance -ClassName Win32_BIOS

Mencantumkan Informasi Prosesor

Anda dapat mengambil informasi prosesor umum dengan menggunakan kelas Win32_Processor WMI, meskipun Anda mungkin ingin memfilter informasi:

Get-CimInstance -ClassName Win32_Processor | Select-Object -ExcludeProperty "CIM*"

Untuk string deskripsi umum dari keluarga prosesor, Anda hanya dapat mengembalikan properti SystemType :

Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object -Property SystemType

SystemType
----------
X86-based PC

Mencantumkan produsen dan model komputer

Informasi model komputer juga tersedia dari Win32_ComputerSystem. Output standar yang ditampilkan tidak akan memerlukan pemfilteran apa pun untuk menyediakan data OEM:

Get-CimInstance -ClassName Win32_ComputerSystem
Name PrimaryOwnerName Domain    TotalPhysicalMemory Model                   Manufacturer
---- ---------------- ------    ------------------- -----                   ------------
MyPC Jane Doe         WORKGROUP 804765696           DA243A-ABA 6415cl NA910 Compaq Presario 06

Output Anda dari perintah seperti ini, yang mengembalikan informasi langsung dari beberapa perangkat keras, hanya sebagus data yang Anda miliki. Beberapa informasi tidak dikonfigurasi dengan benar oleh produsen perangkat keras dan karenanya mungkin tidak tersedia.

Mencantumkan perbaikan terinstal

Anda dapat mencantumkan semua perbaikan yang diinstal dengan menggunakan Win32_QuickFixEngineering:

Get-CimInstance -ClassName Win32_QuickFixEngineering

Kelas ini mengembalikan daftar perbaikan yang terlihat seperti ini:

Source Description     HotFixID  InstalledBy   InstalledOn PSComputerName
------ -----------     --------  -----------   ----------- --------------
       Security Update KB4048951 Administrator 12/16/2017  .

Untuk output yang lebih lengkap, Anda mungkin ingin mengecualikan beberapa properti. Meskipun Anda dapat menggunakan Get-CimInstanceparameter Properti untuk memilih hanya HotFixID, melakukannya akan benar-benar mengembalikan informasi lebih lanjut, karena semua metadata ditampilkan secara default:

Get-CimInstance -ClassName Win32_QuickFixEngineering -Property HotFixID
InstalledOn           :
Caption               :
Description           :
InstallDate           :
Name                  :
Status                :
CSName                :
FixComments           :
HotFixID              : KB4533002
InstalledBy           :
ServicePackInEffect   :
PSComputerName        :
CimClass              : root/cimv2:Win32_QuickFixEngineering
CimInstanceProperties : {Caption, Description, InstallDate, Nameā€¦}
CimSystemProperties   : Microsoft.Management.Infrastructure.CimSystemProperties
...

Data tambahan dikembalikan, karena parameter Properti dalam Get-CimInstance membatasi properti yang dikembalikan dari instans kelas WMI, bukan objek yang dikembalikan ke PowerShell. Untuk mengurangi output, gunakan Select-Object:

Get-CimInstance -ClassName Win32_QuickFixEngineering -Property HotFixId |
    Select-Object -Property HotFixId
HotFixId
--------
KB4048951

Mencantumkan informasi versi sistem operasi

Properti kelas Win32_OperatingSystem mencakup informasi versi dan paket layanan. Anda dapat secara eksplisit memilih hanya properti ini untuk mendapatkan ringkasan informasi versi dari Win32_OperatingSystem:

Get-CimInstance -ClassName Win32_OperatingSystem |
  Select-Object -Property BuildNumber,BuildType,OSType,ServicePackMajorVersion,ServicePackMinorVersion

Anda juga dapat menggunakan kartubebas dengan parameter Properti . Karena semua properti yang dimulai dengan Build atau ServicePack penting untuk digunakan di sini, kita dapat mempersingkat ini ke formulir berikut:

Get-CimInstance -ClassName Win32_OperatingSystem |
    Select-Object -Property Build*,OSType,ServicePack*
BuildNumber             : 18362
BuildType               : Multiprocessor Free
OSType                  : 18
ServicePackMajorVersion : 0
ServicePackMinorVersion : 0

Mencantumkan pengguna dan pemilik lokal

Informasi umum tentang pengguna lokal dapat ditemukan dengan pilihan properti kelas Win32_OperatingSystem . Anda dapat secara eksplisit memilih properti untuk ditampilkan seperti ini:

Get-CimInstance -ClassName Win32_OperatingSystem |
    Select-Object -Property NumberOfLicensedUsers, NumberOfUsers, RegisteredUser

Versi yang lebih succinct menggunakan wildcard adalah:

Get-CimInstance -ClassName Win32_OperatingSystem | Select-Object -Property *user*

Mendapatkan ruang disk yang tersedia

Untuk melihat ruang disk dan ruang kosong untuk drive lokal, Anda dapat menggunakan kelas Win32_LogicalDisk . Anda hanya perlu melihat instans dengan DriveType 3, nilai yang digunakan WMI untuk hard disk tetap.

Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DriveType=3"
DeviceID DriveType ProviderName VolumeName Size         FreeSpace   PSComputerName
-------- --------- ------------ ---------- ----         ---------   --------------
C:       3                      Local Disk 203912880128 65541357568 .
Q:       3                      New Volume 122934034432 44298250240 .
Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DriveType=3" |
    Measure-Object -Property FreeSpace,Size -Sum |
    Select-Object -Property Property,Sum
Property           Sum
--------           ---
FreeSpace 109839607808
Size      326846914560

Mendapatkan informasi sesi masuk

Anda bisa mendapatkan informasi umum tentang sesi masuk yang terkait dengan pengguna melalui kelas WMI Win32_LogonSession :

Get-CimInstance -ClassName Win32_LogonSession

Membuat pengguna masuk ke komputer

Anda dapat menampilkan pengguna yang masuk ke sistem komputer tertentu menggunakan Win32_ComputerSystem. Perintah ini hanya mengembalikan pengguna yang masuk ke desktop sistem:

Get-CimInstance -ClassName Win32_ComputerSystem -Property UserName

Mendapatkan waktu lokal dari komputer

Anda dapat mengambil waktu lokal saat ini di komputer tertentu menggunakan kelas WMI Win32_LocalTime .

Get-CimInstance -ClassName Win32_LocalTime
Day            : 23
DayOfWeek      : 1
Hour           : 8
Milliseconds   :
Minute         : 52
Month          : 12
Quarter        : 4
Second         : 55
WeekInMonth    : 4
Year           : 2019
PSComputerName :

Menampilkan status layanan

Untuk melihat status semua layanan di komputer tertentu, Anda dapat menggunakan Get-Service cmdlet secara lokal. Untuk sistem jarak jauh, Anda dapat menggunakan kelas WMI Win32_Service . Jika Anda juga menggunakan Select-Object untuk memfilter hasilnya ke Status, Nama, dan DisplayName, format output hampir identik dengannya dari Get-Service:

Get-CimInstance -ClassName Win32_Service |
    Select-Object -Property Status,Name,DisplayName

Untuk mengizinkan tampilan lengkap nama untuk layanan dengan nama panjang, gunakan parameter AutoSize dan Wrap dari Format-Table. Parameter ini mengoptimalkan lebar kolom dan memungkinkan nama panjang untuk dibungkus alih-alih dipotong:

Get-CimInstance -ClassName Win32_Service |
    Format-Table -Property Status, Name, DisplayName -AutoSize -Wrap