Cara Cari Kapasiti Cakera dan Ruang Bebas Komputer Jauh

Mencari kapasiti cakera dan ruang kosong komputer tempatan mudah tetapi tidak begitu mudah dari komputer jauh, terutamanya melalui antara muka GUI. Lebih mudah untuk menggunakan kuasa PowerShell dan inilah cara anda boleh melakukannya.

Get-PSDrive adalah cmdlet PowerShell asli yang menyenaraikan semua pemacu storan pada sistem tempatan anda.

Anda boleh mengecilkan hanya untuk menyenaraikan sistem fail dengan memotong hasilnya kepada a Di mana Klausa.

Get-PSDrive | Di mana {$ _. Percuma -gt 0}

Oleh kerana cmdlet tidak mempunyai -KomputerName bertukar untuk mengakses komputer jauh, kita perlukan Memohon-perintah untuk menjalankan cmdlet pada komputer jauh.

Invoke-Command-ComputerComame remote_computer {Get-PSDrive | Di mana {$ _. Percuma -gt 0}}

Ini berfungsi dengan baik hanya apabila anda mempunyai WinRM dan PSRemoting diaktifkan pada komputer jauh. Dan itulah sebabnya saya suka Get-WmiObject kaedah yang lebih baik.

Get-WmiObject Win32_LogicalDisk -ComputerName remote_computer -Filter DriveType = 3 | Select-Object DeviceID, FreeSpace, Size

Untuk menyenaraikan saiz dalam format GB,

Get-WmiObject Win32_LogicalDisk -ComputerName remote_computer -Filter DriveType = 3 | Select-Object DeviceID, @ {'Name' = 'Size (GB)'; 'Expression' = {[math] :: truncate ($ _. Size / 1GB)}}, @ {'Name' = 'Freespace (GB)'; 'Expression' = {[math] :: truncate ($ _. Freespace / 1GB)}}

Bagaimana pula dengan memaparkan keputusan dengan pemisah beribu-ribu?

Get-WmiObject Win32_LogicalDisk -ComputerName remote_computer -Filter DriveType = 3 | Select-Object DeviceID, @ {'Name' = 'Size (GB)'; 'Expression' = {[string] :: Format ('{0: N0}', [math] :: truncate ($ _. Size / 1GB))}}, @ {'Name' = 'Freespace (GB)' ; 'Expression' = {[string] :: Format ('{0: N0}', [math] :: truncate ($ _. Freespace / 1GB))}}

Anda boleh mengakses beberapa komputer jauh dari satu jangka masa dengan meletakkan semua mereka selepas -KomputerName suis, dipisahkan oleh koma.

Get-WmiObject Win32_LogicalDisk -ComputerName computer1, computer2, komputer3 -Filter DriveType = 3 | Select-Object DeviceID, @ {'Name' = 'Size (GB)'; 'Expression' = {[string] :: Format ('{0: N0}', [math] :: truncate ($ _. Size / 1GB))}}, @ {'Name' = 'Freespace (GB)' ; 'Expression' = {[string] :: Format ('{0: N0}', [math] :: truncate ($ _. Freespace / 1GB))}}

Juga, di sini adalah skrip saya yang disusun yang mempunyai output diformat yang lebih baik.

$ server = @ ("computer1", "computer2", "computer3") Foreach ($ server di $ server) {$ disks = Get-WmiObject Win32_LogicalDisk -ComputerName $ server -Filter DriveType = 3 | Select-Object DeviceID, @ {'Name' = 'Size'; 'Expression' = {[math] :: truncate ($ _. Size / 1GB)}}, @ {'Name' = 'Freespace'; 'Expression' = {[math] :: truncate ($ _. Freespace / 1GB)}} $ server foreach ($ disk in $ disks) {$ disk.DeviceID + $ disk.FreeSpace.ToString ("N0") + " GB / "+ $ disk.Size.ToString (" N0 ") +" GB "}}

Source

Tinggalkan Komen

Laman web ini menggunakan Akismet untuk mengurangkan spam. Ketahui bagaimana data komen anda diproses.