Solved

Script to get the free space in differents hard disk units

Posted on 2012-03-11
6
403 Views
Last Modified: 2012-06-03
Hi guys,

I need your help. I am not able to achive it by myself, I am trying but I am having troubles.

I need to run a script to get the size of a unit and the avilable free space. The same for all units in that server.  I would like to create an .xls with the output

Example:  
server: server01

c:   20 gb   10 gb free
d:  30 gb    20 gb free
...
and so for all units


I would like to use WSH and WMI but it is not friendly for me as I would like. I am working hard to learn but I need now.

Could anyone help me?
0
Comment
Question by:projectja
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 3
6 Comments
 
LVL 8

Expert Comment

by:fundacionrts
ID: 37707696
This script [Powershell] returns CSV file with DeviceID, Size and FreeSize of all local hard drives

Get-WMIObject Win32_LogicalDisk -Filter "DriveType=3" | Select-Object DeviceID,FreeSpace,Size | Export-Csv ./localhdd.csv
0
 

Author Comment

by:projectja
ID: 37713103
Hi,

Thanks for the reply, It is interesting.

Please, let me explain better.

I would need a powershell such as:

- It will be launch from  my workstation or server of my domain providing administrattors credential in other domains to be able to execute command there.
- The goal is to get:
* To get information about differents hard disk units on target server; total space in disk and free space available. (could have c,d,e,...) units. There is not a rule.
* Export that information to excel, creating the file iin the pc where the scrilpt is being launching (source pc in which I am launching the script). The name of the file is the same that the IP adress of the server where we are connecting to get information.
* In a specific folder on the target server check for files which are  contained into a specific folder and are two weeks old, the goal is delete them (are logs files). report the action in a logs indicating amount of deleted files and the size disk.

Please, I need the help of an expert, It is very important for me to be able to finish this task.


*
0
 
LVL 8

Expert Comment

by:fundacionrts
ID: 37713583
## This scripts generate 2 output files
## remoteip.csv - CSV file that includes all logical drivers of a computer with free space and total size
## remoteip.log - Log file that includes all files remove from remote folder that have more than 15 days (last write access)

#
# Constants
#

#$pathoutputfiles ALWAYS ends with \
$pathoutputfiles = "c:\path\to\output\files\"

#
# Read parameters
#

Write-Host "Enter remote computer IP (Format: xxx.xxx.xxx.xxx) ..."
$remoteip = Read-Host
Write-Host "Enter credentials for remote computer connection (Format: domain\username)..."
$credential = Get-Credential
Write-Host "Enter remote folder to scan (Format: \\server\path\) ..."
$remotefolder = Read-Host

#
# Get Hard Disk stats
#

Get-WMIObject Win32_LogicalDisk -Filter "DriveType=3" | Select-Object DeviceID,FreeSpace,Size | Export-Csv "$pathoutputfiles$remoteip.csv"

#
# Scan remote logs files
#
$stream = [System.IO.StreamWriter] "$pathoutputfiles$remoteip.log"
$files = Get-ChildItem -Path "$remotefolder" | Where-Object {$_.LastWriteTime -le [System.DateTime]::Now.AddDays(-15)}
foreach ($file in $files) {
    if ($File -ne $NULL) {
            Write-Host "Deleting File $File"
            $stream.WriteLine("Deleting File $File")
            Remove-Item $File.FullName | Out-Null
      }
}
$stream.close()
0
Don't Miss ATEN at InfoComm 2017!

Visit booth #2167 to see the  new ATEN VM3200 32 x 32 Modular Matrix Switch. Other highlights include the VE8950 4K HDMI Over IP Extender, VS1912 12-Port DP Video Wall Media Player  and VK2100 ATEN Control System. Register now with Free Pass Code ATEN288!

 

Author Comment

by:projectja
ID: 37719491
Sorry for the dalay.

I have been working, but I happily saw your reply.
It is very intesting. Now, I am working to prepare it.
With regard to the .XLS file, I would like to add the day date so I have modified in this way:

#==================================r======
#==========================================
$fechadeHoy = [System.DateTime]::Now

$day=$fechadehoy.day.ToString()
$month = $fechadehoy.month.ToString()
$year= $fechadehoy.year.Tostring()


$stream = [System.IO.StreamWriter] "$pathoutputfiles$remoteip$day$month$year.log"

Issues:

- I get "month" = 3,  I want "03"

Any advice?
0
 
LVL 8

Accepted Solution

by:
fundacionrts earned 500 total points
ID: 37719675
$day=$fechadehoy.ToString("dd")
$month = $fechadehoy.ToString("MM")
$year= $fechadehoy.Tostring("yyyy")
0
 

Author Comment

by:projectja
ID: 37732371
Thank you very much. Is has been very useful
0

Featured Post

Manage your data center from practically anywhere

The KN8164V features HD resolution of 1920 x 1200, FIPS 140-2 with level 1 security standards and virtual media transmissions at twice the speed. Built for reliability, the KN series provides local console and remote over IP access, ensuring 24/7 availability to all servers.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

No single Antivirus application (despite claims by manufacturers) will catch or protect you from all Virus / Malware or Spyware threats. That doesn't stop you from further protecting yourself however - and this article is to show you how.
Configuring Remote Assistance for use with SCCM
With the advent of Windows 10, Microsoft is pushing a Get Windows 10 icon into the notification area (system tray) of qualifying computers. There are many reasons for wanting to remove this icon. This two-part Experts Exchange video Micro Tutorial s…
The Task Scheduler is a powerful tool that is built into Windows. It allows you to schedule tasks (actions) on a recurring basis, such as hourly, daily, weekly, monthly, at log on, at startup, on idle, etc. This video Micro Tutorial is a brief intro…

752 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question