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