Author Posts

January 1, 2012 at 12:00 am

by obiwein at 2013-04-22 07:35:06

Trying to pull from Active Directory a list of all computer objects along with various information for each.

So far have this which is working:
Get-QADComputer -SizeLimit 10000 | Select-Object Name, NTAccountName, OSName, OSVersion, OSServicePack, Description |export-csv -path z:\script\assets.csv

Also want to grab the serial number with something like this:
Get-WMIObject -Class "Win32_BIOS" -Computer $computer

Need some help putting the two things together in a foreach loop and then getting it to correctly export to a CSV file.

by ArtB0514 at 2013-04-22 07:55:40

You can't do that in a one-liner. You'll need to do something like this:
$Data = @()
Get-QADComputer -SizeLimit 0 | Foreach-Object
$Computer = $_
$BIOS = Get-WMIObject Win32_BIOS -ComputerName $Compter.Name
$Data += New-Object PSObject -Property @{
'Name' = $Computer.Name
'NTAccountName' = $Computer.NTAccountName
'OS Name' = $Computer.OSName
'OS Version' = $Computer.OSVersion
'Service Pack' = $Computer.OSServicePack
'Description' = $Computer.Description
'BIOS' = $BIOS.BIOSVersion
'BIOS Version' = $BIOS.SMBIOSBIOSVersion
'Manufacturer' = $BIOS.Manufacturer
'Serial No' = $BIOS.SerialNumber
}
$Data | Export-CSV Z]

by obiwein at 2013-04-22 08:17:49

Fixed line 4 $Compter to $Computer.

I get the following when running:

cmdlet ForEach-Object at command pipeline position 2
Supply values for the following parameters:
Process[0]]

Pressing Enter twice gets past this, but the resulting CSV is empty except for column headers.

by MasterOfTheHat at 2013-04-22 08:26:07

You should be able to do that in a one-liner... I don't use the Quest cmdlets, but here's the basic equivalent, (I think), in the built-in cmdlets:
Get-ADComputer -ResultSetSize 100 -Filter * -Properties * | Select-Object name,SamAccountName,OperatingSystem,OperatingSystemVersion,OperatingSystemServicePack,Description | Export-Csv c]

by obiwein at 2013-04-22 08:29:36

[quote="MasterOfTheHat"]Get-ADComputer -ResultSetSize 100 -Filter * -Properties * | Select-Object name,SamAccountName,OperatingSystem,OperatingSystemVersion,OperatingSystemServicePack,Description | Export-Csv c]

That doesn't include serial number though.

by MasterOfTheHat at 2013-04-22 08:45:16

Whoops! Missed that part of your post. Sorry...

Art's post is missing the brackets for the ForEach-Object cmdlet. Try this:
Import-Module ActiveDirectory

$Data = @()
Get-QADComputer -SizeLimit 0 | Foreach-Object {
$Computer = $_
$BIOS = Get-WMIObject Win32_BIOS -ComputerName $Computer.Name
$Data += New-Object PSObject -Property @{
'Name' = $Computer.Name
'NTAccountName' = $Computer.NTAccountName
'OS Name' = $Computer.OSName
'OS Version' = $Computer.OSVersion
'Service Pack' = $Computer.OSServicePack
'Description' = $Computer.Description
'BIOS' = $BIOS.BIOSVersion
'BIOS Version' = $BIOS.SMBIOSBIOSVersion
'Manufacturer' = $BIOS.Manufacturer
'Serial No' = $BIOS.SerialNumber
}
}
$Data | Export-CSV Z]

by ArtB0514 at 2013-04-22 08:52:30

Sorry about that! Thanks for the catch.

by obiwein at 2013-04-22 09:55:46

Perfect.
Thanks a bunch for the help.