i'm new powershell , have had little coding experience.
apologies initial reading, trying put context i'm attempting do, make easier, have reduced wall of text. , added source files.
my sincere apologies...
i've been tasked creating script verify user accounts against output .csv server.
importing .csv have additional columns in it, having trouble filtering on usernames column.
first, output columns need $'machine name' , $'user name' "$aduserlist", removing "" around each entry, with:
$sourcefile1 | select $_'machine name', $_'user name' | convertto-csv -delimiter ',' -notypeinformation | foreach { $_ -replace '^"','' -replace "`"$delimiter`"",$delimiter -replace '"$','' }|'
this have issues:
i import "$aduserlist" attempt output each row matches expected user format ( 8digits long, numbers) "goodaduser.csv" , don't match "badaduser.csv".
failure point:
$aduserlist = import-csv $psscriptroot\output\aduserlist.csv foreach-object {$item -in $aduserlist if ($sourcefile1.'user name'.length -eq 8 -and $sourcefile1.'user name' -is [int]) {$item | convertto-csv -delimiter $delimiter -notypeinformation | foreach { $i -replace '^"','' -replace "`"$delimiter`"",$delimiter -replace '"$','' }| out-file $psscriptroot\output\goodaduserlist.csv -force } else {$item | convertto-csv -delimiter $delimiter -notypeinformation | foreach { $i -replace '^"','' -replace "`"$delimiter`"",$delimiter -replace '"$','' }| out-file $psscriptroot\output\badaduserlist.csv -force } }
at point, no file output , error message:
false convertto-csv : cannot validate argument on parameter 'delimiter'. argument null. provide valid value argument, , try running command again. @ c:\users\administrator\desktop\drive encryption script\quick test.ps1:17 char:39 + {$item | convertto-csv -delimiter $delimiter -notypeinformation | foreach { ... + ~~~~~~~~~~ + categoryinfo : invaliddata: (:) [convertto-csv], parameterbindingvalidationexception + fullyqualifiederrorid : parameterargumentvalidationerror,microsoft.powershell.commands.converttocsvcommand
i've uploaded script , sample files here: https://1drv.ms/f/s!ajx8h3isp9tuoaz7a37rbuvo7h5h
thanks guys, appreciate help...
here's couple corrections script.
you have better luck passing object through pipe each method. when default object variable $_
$aduserlist = import-csv $psscriptroot\output\aduserlist.csv $aduserlist | foreach-object { $item = $_ if ($sourcefile1.'user name'.length -eq 8 -and $sourcefile1.'user name' -is [int]) {$item | convertto-csv -delimiter $delimiter -notypeinformation | foreach { $i -replace '^"','' -replace "`"$delimiter`"",$delimiter -replace '"$','' }| out-file $psscriptroot\output\goodaduserlist.csv -force } else {$item | convertto-csv -delimiter $delimiter -notypeinformation | foreach { $i -replace '^"','' -replace "`"$delimiter`"",$delimiter -replace '"$','' }| out-file $psscriptroot\output\badaduserlist.csv -force }
Comments
Post a Comment