sted Posted July 16, 2014 Posted July 16, 2014 i have a powershell script that i have set to run on every pc at bootup. In testing it works fine (needs powershell 4 for somereason but that i can live with) but every now and again it seems to end up creating a blank file that then nothing else ever updates. Can anyone see why it all looks ok to me (though granted im new to powershell) I suspect its something really dumb that i just cant see # system info ps v1 #check ps version if <4 exit $psver1=get-host $psver2=$psver1.version.major if ($psver2 -lt 4) { exit } #locate output file & define default values $filepath="\\server\inventory2$\outputfile.csv" $dop="-" $warantyyears="-" $warantyend="-" $location = "-" $file="" $csvout="" $arrayloc="" $newline="" #import existing file if it exists if(test-path -path $filepath) { $fileexists="true" $file = Import-Csv $filepath } if(!(test-path -path $filepath)) { $fileexists="false" } # get mac address active cards (tested on multinics) $mac= Get-WmiObject Win32_NetworkAdapterConfiguration -Filter 'ipenabled = "true"' | Select macAddress if ($mac.count) {$mac3=$mac.macaddress[0] + " : " + $mac.macaddress[1]} else {$mac3=$mac.macaddress} # get processor and pc name $procinfo = Get-WmiObject Win32_Processor $cpuname=$procinfo.Name $pcname=$procinfo.SystemName # get memory info/model/make $pcinfo = Get-WmiObject Win32_ComputerSystem $maker=$pcinfo.Manufacturer $model=$pcinfo.Model $ram=$pcinfo.TotalPhysicalMemory/1024/1024/1024 $ram = "{0:N1}" -f $ram #get serial no $serial=Get-WmiObject Win32_BIOS $serial2=$serial.SerialNumber #hdd size and free in gb rounded to nearest whole no $hdddata=Get-WmiObject Win32_LogicalDisk -Filter 'deviceid="c:"' $freespace=$hdddata.FreeSpace/1024/1024/1024 $freespace = "{0:N0}" -f $freespace $totalspace=$hdddata.size/1024/1024/1024 $totalspace = "{0:N0}" -f $totalspace # get windows version $os=Get-WmiObject Win32_OperatingSystem | select caption $os2=$os.caption #date-time $now= Get-Date $now2 = $now.date #create csv data if no existing file if ($fileexists -eq "false") { #echo "new file created" $csvout = New-Object psobject $csvout | add-member NoteProperty Macaddress $mac3 $csvout | add-member NoteProperty PCName $pcname $csvout | add-member NoteProperty Manufacturer $Maker $csvout | add-member NoteProperty "PC Model" $model $csvout | add-member NoteProperty Processor $CPUName $csvout | add-member NoteProperty Memory $ram $csvout | add-member NoteProperty "HDD Size" $totalspace $csvout | add-member NoteProperty "HDD Free" $freespace $csvout | add-member NoteProperty "Serial No" $serial2 $csvout | add-member NoteProperty "Windows Version" $os2 $csvout | add-member NoteProperty "Date Collected" $now2 $csvout | add-member NoteProperty "Date purchased" $dop $csvout | add-member NoteProperty "Warranty years" $warantyyears $csvout | add-member NoteProperty "Warranty Expiration" $warantyend $csvout | add-member NoteProperty "Location" $location $csvout | export-csv $filepath -notypeinformation #-Append } if($fileexists -eq "true") { $arrayloc=[array]::indexof($file.pcname, $pcname) if (!($arrayloc -eq -1)) { #echo "replacing data" #$file[$arrayloc] |Format-Table $file[$arrayloc].macaddress=$mac3 $file[$arrayloc].pcname= $pcname $file[$arrayloc].Manufacturer=$maker $file[$arrayloc]."pc model"=$model $file[$arrayloc].processor=$cpuname $file[$arrayloc].memory=$ram $file[$arrayloc]."hdd size" = $totalspace $file[$arrayloc]."hdd free" = $freespace $file[$arrayloc]."serial no" = $serial2 $file[$arrayloc]."Windows Version" = $os2 $file[$arrayloc]."Date Collected" = $now2 $file | export-csv $filepath -notypeinformation } if ($arrayloc -eq -1) { #echo "adding new line" $csvout = New-Object psobject $csvout | add-member NoteProperty Macaddress $mac3 $csvout | add-member NoteProperty PCName $pcname $csvout | add-member NoteProperty Manufacturer $Maker $csvout | add-member NoteProperty "PC Model" $model $csvout | add-member NoteProperty Processor $CPUName $csvout | add-member NoteProperty Memory $ram $csvout | add-member NoteProperty "HDD Size" $totalspace $csvout | add-member NoteProperty "HDD Free" $freespace $csvout | add-member NoteProperty "Serial No" $serial2 $csvout | add-member NoteProperty "Windows Version" $os2 $csvout | add-member NoteProperty "Date Collected" $now2 $csvout | add-member NoteProperty "Date purchased" $dop $csvout | add-member NoteProperty "Warranty years" $warantyyears $csvout | add-member NoteProperty "Warranty Expiration" $warantyend $csvout | add-member NoteProperty "Location" $location $csvout | export-csv $filepath -notypeinformation -Append } }
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now