Table-Format help - output not expected


while have been using vbscript while new powershell.  started new job took on managing in house written powershell tool.  additionally, trying streamline other processes , while can via vbscript trying in powershell learning. 


so, said, have script working on , trying output formatted way want it.  using export-csv output looks right when trying use format-table doesn't (will show example below)

foreach ($line in (get-content email_addresses.txt))  {  	$user = get-aduser - filter 'emailaddress -like $line' -properties emailaddress, displayname, samaccountname, description |  	select enabled, samaccountname, displayname, emailaddress, description  	#note: select display order used export-csv  	$obj = new-object psobject  	if (-not ($user -eq $null))  	{  		$enabled = @{ name = " enabled"; expression = { " " + $_.enabled }; width = 9; alignment = "left" }  		$name = @{ name = "  userid  "; expression = { "  " + $_.samaccountname + "  " }; width = 15; alignment = "left" }  		$displayname = @{ name = "displayname"; expression = { $_.displayname }; width = 35; alignment = "left" }  		$emailaddress = @{ name = "emailaddress"; expression = { $_.emailaddress }; width = 20; alignment = "left" }  		$description = @{ name = "description"; expression = { $_.description }; width = 50; alignment = "left" }  		$table = $enabled, $name, "displayname", "emailaddress", $description  		write-output $user | format-table $table -hidetableheaders  		$user | export-csv output.csv -append -notypeinformation -force		  	}  	#	$obj | add-member "display name" $displayname  	#	$obj | add-member "email address" $emailaddress  	#	$obj | add-member "username" $username  	#	$obj | add-member "account enabled?" $enabled  	#	$obj | add-member description $desc  	#   write-output $obj	| format-table  -hidetableheaders -autosize  }  

the output shows below.  user info, 3 empty lines, user info (rinse , repeat).  if remove hidetableheaders table headers each line. 

my goal have header once each user afterwards.  missing?  stated, export-csv writes correctly.

the table-format:

 true       username1         smith, bob                              bs@blah.com                someinfo here



 true       username2        jones, john                           jj@blah.com                     info here

 
 3rd line (repeat)

and in case reading knows answer, output enable check supposed blank if false?  appears case.

hi,

generally should build entire object first , use format-* cmdlets.

what version of powershell running?


edit: here's how i'd handle (this work in v2, there's shorter ways in later versions):

$out = @()  get-content .\email_addresses.txt | foreach {      $userdetails = get-aduser -filter "emailaddress -eq '$_'" -properties emailaddress, displayname, description      $props = @{         enabled = $userdetails.enabled         userid = $userdetails.samaccountname         displayname = $userdetails.displayname         emailaddress = $userdetails.emailaddress         description = $userdetails.description     }      $out += new-object psobject -property $props  }  $out | select enabled,userid,displayname,emailaddress,description | export-csv .\userdetails.csv -notypeinformation  $out | select enabled,userid,displayname,emailaddress,description | format-table -autosize


don't retire technet! - (don't give yet - 12,830+ strong , growing)



Windows Server  >  Windows PowerShell



Comments

Popular posts from this blog

2008 Windows Deployment Server Properties Error

Can no longer user MS Update - Files required to use Microsoft Update are no longer registered

How do a find data in one file, search for it in another file and if not found, write a custom message to another file