# ************************************************************
# Puts DISKINFO.TXT on your Desktop.
# contains info about your disks
# **********************INSTRUCTIONS**************************
# STEP 1 *****************************************************
# RUN PowerShell as administrator
# START ORB | type POWERSHELL | CTRL+SHIFT+ENTER key combo | ALT+Y keycombo
# ************************************************************
# STEP 2 *****************************************************
# COPY, using CTRL+C, every line down thru both EXIT statements
# PASTE into Powershell == Right-Click at the PowerShell Prompt
# (Ctrl+V does not work)
# Start copying with first line without a # at start of the line
# Note: Actually, you can paste the entire file if you rather
# Lines starting with a # are ignored by PowerShell
# ************************************************************
function get-ID {
param ([string]$title, [int]$arraycnt, [int]$arrayndx)
$id = " " + $title + " "
If ($arraycnt -eq 1) {} else {$id = $id + [string]$arrayndx + " "}
$id
}
function get-title { param ([string]$id)
$hashes = ([int](44 - $id.length)/2)
For ($j=0; $j -lt $hashes; $j++){$hashstr += "#" }
$title = $hashstr + $id + $hashstr
If ($title.length -le 44) {$title += "#"}
$title
}
function Get-DrvType ([int]$n) { $result = "Unknown"
IF ($n -eq 2) {$result = "Removable"}
If ($n -eq 3) {$result = "Partition"}
If ($n -eq 5) {$result = "CDROM"}
$result
}
#################### OS ####################
# Constants
#create a new object
$obj = New-Object PSObject
$dskarr =@(gwmi win32_diskdrive)
$cnt = $dskarr.count
for($ndx=1; $ndx -le $cnt; $ndx++) {
$d = $dskarr[$ndx -1];
$id = get-id "DISK" $cnt $ndx
$obj | Add-member -membertype noteproperty -name (get-title $id) -value $sterne
$obj | add-member -membertype noteproperty -name ($id + "Partitions") -value($d.partitions)
$obj | add-member -membertype noteproperty -name ($id + "Device ID") -value($d.deviceid)
$obj | add-member -membertype noteproperty -name ($id + "Model") -value($d.model)
$obj | add-member -membertype noteproperty -name ($id + "Size") -value([string][int]($d.size/1073741824) + " GB")
$obj | add-member -membertype noteproperty -name ($id + "Caption") -value($d.caption)
$obj | add-member -membertype noteproperty -name ($id + "Status") -value($d.status)
$obj | add-member -membertype noteproperty -name ($id + "Bytespersector") -value($d.bytespersector)
$obj | add-member -membertype noteproperty -name ($id + "Sectors per track") -value($d.sectorspertrack)
$obj | add-member -membertype noteproperty -name ($id + "Interface Type") -value($d.interfacetype)
$obj | add-member -membertype noteproperty -name ($id + "Capabilities") -value($d.capabilitydescriptions)
$obj | add-member -membertype noteproperty -name ($id + "Description") -value($d.description)
$obj | add-member -membertype noteproperty -name ($id + "Firmware revision") -value($d.firmwarerevision)
$obj | add-member -membertype noteproperty -name ($id + "Manufacturer") -value($d.manufacturer)
$obj | add-member -membertype noteproperty -name ($id + "Media Type") -value($d.mediatype)
$obj | add-member -membertype noteproperty -name ($id + "Media Loaded") -value($d.medialoaded)
$obj | add-member -membertype noteproperty -name ($id + "PNP Device ID") -value($d.pnpdeviceid)
$obj | add-member -membertype noteproperty -name ($id + "Serial Number") -value($d.serialnumber)
$obj | add-member -membertype noteproperty -name ($id + "Signature") -value($d.signature)
$obj | add-member -membertype noteproperty -name ($id + "Power Management Supported") -value($d.powermanagementsupported)
}
$dsk =@(gwmi win32_LogicalDisk)
$cnt = $dsk.count
for($ndx=1; $ndx -le $cnt; $ndx++){
$d = $dsk[$ndx-1];
$id = get-id "LOGICAL DISK" $cnt $ndx
$obj | add-member -membertype noteproperty -name (get-title $id) -value $sterne
$obj | add-member -membertype noteproperty -name ($id + "Caption") -value($d.caption)
$obj | add-member -membertype noteproperty -name ($id + "Volume Name") -value($d.volumename)
$obj | add-member -membertype noteproperty -name ($id + "Volume Serial Number") -value($d.volumeserialnumber)
$obj | add-member -membertype noteproperty -name ($id + "Description") -value($d.description)
$obj | add-member -membertype noteproperty -name ($id + "Size") -value([string][int]($d.size/1073741824) + " GB")
$obj | add-member -membertype noteproperty -name ($id + "Used Space") -value ([string][int](($d.size - $d.freespace)/1073741824) + " GB")
$obj | add-member -membertype noteproperty -name ($id + "Free Space") -value([string][int]($d.freespace/1073741824) + " GB")
$obj | add-member -membertype noteproperty -name ($id + "File System") -value($d.filesystem)
$obj | add-member -membertype noteproperty -name ($id + "Compressed") -value($d.compressed)
$obj | add-member -membertype noteproperty -name ($id + "Volume Dirty") -value($d.volumedirty)
}
$dsk =@(gwmi win32_diskpartition)
$cnt = $dsk.count
for($ndx=1; $ndx -le $cnt; $ndx++){
$d = $dsk[$ndx-1];
$id = get-id "DISK PARTITION" $cnt $ndx
$obj | add-member -membertype noteproperty -name (GET-title $id) -value $sterne
$obj | add-member -membertype noteproperty -name ($id + "Caption") -value($d.caption)
$obj | add-member -membertype noteproperty -name ($id + "Primary Partition") -value($d.primarypartition)
$obj | add-member -membertype noteproperty -name ($id + "Boot Partition") -value($d.bootpartition)
$obj | add-member -membertype noteproperty -name ($id + "Bootable") -value($d.bootable)
$obj | add-member -membertype noteproperty -name ($id + "Disk Index") -value($d.diskindex)
$obj | add-member -membertype noteproperty -name ($id + "Index") -value($d.index)
$obj | add-member -membertype noteproperty -name ($id + "Size") -value([string][int]($d.size/1073741824) + " GB")
$obj | add-member -membertype noteproperty -name ($id + "Block Size") -value($d.blocksize)
$obj | add-member -membertype noteproperty -name ($id + "Number of Blocks") -value($d.numberofblocks)
$obj | add-member -membertype noteproperty -name ($id + "Starting Offset") -value($d.startingoffset)
}
$dsk = @(gwmi win32_volume)
$cnt = $dsk.count
for ($ndx=1; $ndx -le $cnt; $ndx++) {
$d = $dsk[$ndx-1]
$id = get-id "DISK VOLUME" $cnt $ndx
$obj | add-member -membertype noteproperty -name (get-title $id) -value $sterne
$obj | add-member -membertype noteproperty -name ($id + "Caption") -value($d.caption)
$obj | add-member -membertype noteproperty -name ($id + "Drive Letter") -value($d.driveletter)
$obj | add-member -membertype noteproperty -name ($id + "Auto Mount") -value($d.automount)
$obj | add-member -membertype noteproperty -name ($id + "File System") -value($d.filesystem)
$obj | add-member -membertype noteproperty -name ($id + "Free Space") -value([string][int]($d.freespace/1073741824) + " GB")
$obj | add-member -membertype noteproperty -name ($id + "Block Size") -value($d.blocksize)
$obj | add-member -membertype noteproperty -name ($id + "Boot Volume") -value($d.bootvolume)
$obj | add-member -membertype noteproperty -name ($id + "Capacity") -value([string][int]($d.capacity/1073741824) + " GB")
$obj | add-member -membertype noteproperty -name ($id + "Compressed") -value($d.compressed)
$obj | add-member -membertype noteproperty -name ($id + "Dirty Bit Set") -value($d.dirtybitset)
$obj | add-member -membertype noteproperty -name ($id + "Label") -value($d.label)
$obj | add-member -membertype noteproperty -name ($id + "Serial Number") -value($d.serialnumber)
$obj | add-member -membertype noteproperty -name ($id + "System Volume") -value($d.systemvolume)
# $obj | add-member -membertype noteproperty -name ($id + "Device ID") -value($d.deviceid)
$obj | add-member -membertype noteproperty -name ($id + "Drive Type") -value($d.drivetype)
$obj | add-member -membertype noteproperty -name ($id + "Volume Type") -value(get-drvtype($d.drivetype))
$obj | add-member -membertype noteproperty -name ($id + "Indexing Enabled") -value($d.indexingenabled)
}
$obj > $env:userprofile\desktop\DiskInfo.txt
EXIT
EXIT
# ***************** NOTE - POWERSHELL VERSION*****************
# if you receive this error msg:
# Get-WinEvent: The system can not find the path specified
# you need to update your PowerShell
# you must be using Powershell 2.0 or later.
#
# To determine your Powershell version:
# Run PowerShell
# enter $host.version
# you should see at least:
# Major Minor Build Revision
# ----- ----- ----- --------
# 2 0 -1 -1
#
# If you do not see the above, update your Vista/Win 7.
# ************************************************************
# *************** NOTE - EXECUTION POLICY*********************
# If you haven't set the execution policy, you may need to:
# Run PowerShell
# enter Set-ExecutionPolicy -executionpolicy remotesigned
#
# ************************************************************