Solved

Script to get the free space in differents hard disk units

Posted on 2012-03-11
6
406 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
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

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

Optimum High-Definition Video Viewing and Control

The ATEN VM0404HA 4x4 4K HDMI Matrix Switch supports 4K resolutions of UHD (3840 x 2160) and DCI (4096 x 2160) with refresh rates of 30 Hz (4:4:4) and 60 Hz (4:2:0). It is ideal for applications where the routing of 4K digital signals is required.

Question has a verified solution.

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

Configuring Remote Assistance for use with SCCM
This article helps those who get the 0xc004d307 error when trying to rearm (reset the license) Office 2013 in a Virtual Desktop Infrastructure (VDI) and/or those trying to prep the master image for Microsoft Key Management (KMS) activation. (i.e.- C…
This tutorial will walk an individual through the steps necessary to install and configure the Windows Server Backup Utility. Directly connect an external storage device such as a USB drive, or CD\DVD burner: If the device is a USB drive, ensure i…
This Micro Tutorial hows how you can integrate  Mac OSX to a Windows Active Directory Domain. Apple has made it easy to allow users to bind their macs to a windows domain with relative ease. The following video show how to bind OSX Mavericks to …
Suggested Courses

623 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