Project is Dead. Please use https://github.com/pudquick/pyMacWarranty File: warranty2.sh Description: Looks up Apple warranty info based on serial number. Uses Apple's https://selfsolve.apple.com/wcResults.do Based on a script by Scott Russell, IT Support Engineer, University of Notre Dame http://www.nd.edu/~srussel2/macintosh/bash/warranty.txt Edited to add the ASD Versions by Joseph Chilcote Re-written by Rusty Myers for csv processing, plist and csv output. DSProperties output and HW_END_DATE error fix by Nate Walck. Edited 11/03/2011 Adding iOS Device support and specific fields. Adding logic to only show appropriate fields should be done, later... Known Issue: Apple recently updated the URL, reworking the code to accomodate... Usage: Input: no flags = use this computers serial -b = loop through BULK csv file * Your BULK file should list each serial on a new line and not have any commas. * Processing a csv file will only output to a csv file. other output formats will be ignored -s = specify SERIAL number -h = print help Output: -f [csv|plist|DSProperties|spx] = FORMAT output file to csv, plist, spx, or DeployStudio format. -o [/path/to/] = OUTPUT. Don't not include filename. Default is same directory as script. -n [warranty.plist|.csv] = Speficiy output file NAME. Ensure you use the appropriate extension for your output. -v = Enable sexy verboseness -k = Enable debugging (Don't delete temp files) Defaults: WarrantyTempFile="/tmp/warranty.DATE.txt" ModelTempFile="/tmp/model.DATE.txt" AsdCheck="/tmp/asdcheck.DATE.txt" Output="." Format="stdout" DEBUGG= VERBOSE= Examples: Default Use - Uses machine serial, prints to screen ./warranty2.sh Specify serial, prints to screen ./warranty2.sh -s 4H632JhQXZ Specify output format to Plist and save in specified output ./warranty2.sh -f plist -o /Library/Admin/ Specify output format to Plist and save in specified output and a custom name ./warranty2.sh -f plist -o ~/Desktop/ -n myserials.plist Process list of serials and output to custom location and custom name ./warranty2.sh -b serials.csv -o ~/Desktop/ -n myserials.csv Print the output during DeployStudio workflow to enter into custom properties. More info: http://osxadm.in/?p=64 ./warranty2.sh -f DSProperties Generate a system profile report to open and/or merged with another report. $0 -f spx After generating a warranty SPX file, add it to a full system profiler report with these commands: A) Generate System Profiler Report /usr/sbin/system_profiler -xml > firstreport.spx B) Merge "warranty.spx" file with "firstreport.spx" ${PlistBuddy} -c "Merge warranty.spx" firstreport.spx To Do: Pull in the following... Hardware Image: null({"PROD_IMAGE_URL:https://km.support.apple.com.edgekey.net/kb/securedImage.jsp?configcode=YA8&size=72x72 Resolved: P) Sometimes when processing bulk files, the script spits out one of the serial numbers as unkown and then prints tons of ASD numbers. I'm usure why it does this because the serial usually works if run on a new csv or by itself. S) When running the script in twice, the asd and warranty temp files are overwritten by each process. The fix is to add a unique identifier to the filename. Each loop will have it's own files. Number of days since purchase has been added. NUM_DAYS_SINCE_DOP:1557 Number of days remaining in coverage has been added. DAYS_REM_IN_COV:180 Is serial an iPhone has been added IS_IPHONE:Y or N iPhone Carrier has been added (not showing anything yet?) CARRIER: iPhone Part Description has been added PART_DESCR:IPHONE 4 32GB BLACK Depreciated (Apple moved the cheese): Serial is an iPhone IS_IPHONE:N ----------------------------------------------------------------------- File: warranty.rb Description: Contact's Apple's selfserve servers to capture warranty information about your product. Accepts arguments of machine serial numbers. Outputs to STDOUT and a plist in the same directory. Usage: warranty.rb