Problems with Get-Content...

by TechKnow at 2013-03-18 16:47:02

Okay. I thought this would be a simple task, apparently not… At least for me anyway.

I need to list the drives, available space and computer names for about 900 remote machines.

I have done similar things in the past with borrowed code, but I wanted to try my hand and cobbling something together. Here is my code:

Get-Content D:\ListOfComps.txt | Foreach-Object {Get-WmiObject -Class Win32_LogicalDisk} | Select -Property DeviceID, @{Name=’FreeSpaceMB’;Expression={$.FreeSpace/1MB} } | export-csv "D:\Scripts\DriveStat\Output.csv" -notypeinformation

I realize that I am just getting the letter and free space so far, but that is not the issue…

The script outputs the available drive space of the local computer as many times as there is objects in the ListOfComps file. For clarity… If I list 10 computers the script lists the available space of my local drive 10 times.

To further complicate things, I will need to authenticate as a different user as these machines are not on my domain. I can do it from a jump box, but I am thinking there are virtual drives because it will not pick up the path to the .txt file when I try it from there…

I hope this makes sense. Please ping me with any questions/comments you have and I get you what you need…

Thanks in Advance!
by mjolinor at 2013-03-18 17:22:51
You forgot to tell it which computer to get the information from, so it defaulted to localhost.

Get-Content D:\ListOfComps.txt |
Foreach-Object {Get-WmiObject -Class Win32_LogicalDisk -ComputerName $
} |
Select -Property DeviceID, @{Name=’FreeSpaceMB’;Expression={$_.FreeSpace/1MB} } |
export-csv "D:\Scripts\DriveStat\Output.csv" -notypeinformation
by TechKnow at 2013-03-19 10:38:19
"forgot". You are so kind. In reality it was more like I know not what I do…

Thanks for the heads up Mjolinor