Also entdeckte ich, was ich tun musste, und fand heraus, warum mein einziger Liner nicht funktionierte. Ich musste es etwas weiter abbauen. Ich konnte schließlich den Computernamen auf ein Präfix für den Client setzen, die letzten sechs Ziffern der Seriennummer (ich weiß, dass dies ein bisschen willkürlich ist, aber es ist das, was der Client wollte) und das Jahr, in dem das Macbook oder der iMac gebaut wurde mit den folgenden Ich bin immer noch nicht sicher, warum mein einziger Liner nicht funktioniert. Ich denke, es liegt irgendwo ein abgekoppeltes Token vor. Ich konnte es tun, indem es als Toto-Funktion vorgeschlagen wurde:
#!/bin/bash # Logging exec 3>&1 4>&2 trap 'exec 2>&4 1>&3' 0 1 2 3 exec 1>>/private/var/log/"$(basename $0)"_"$(date "+%Y%m%d_%H%M%S")".log 2>&1 # Variables theSerial=$(system_profiler SPHardwareDataType | awk '/Serial/ ' | cut -c 7-) theModel=$(system_profiler SPHardwareDataType | grep 'Model Name:' | awk -F': ' '') lastFour=$(system_profiler SPHardwareDataType | awk '/Serial/ ' | cut -c 9-) theYear=$(curl -s https://support-sp.apple.com/sp/product?cc=$lastFour | grep -o '\d\d\d\d') #XXX is a client code slug # Begin script echo "Begin script: $(theNow)" # Write: ComputerName, HostName, LocalHostName, NetBIOS touch /private/var/log/fv2.log scutil --set ComputerName "XXX-$theSerial-$theYear" #XXX is a client code slug scutil --set HostName "XXX-$theSerial-$theYear" scutil --set LocalHostName "XXX-$theSerial-$theYear" defaults write /Library/Preferences/SystemConfiguration/com.apple.smb.server NetBIOSName "XXX-$theSerial-$theYear" echo "XXX-" > /private/var/log/fv2.log # Finish up echo "Finish Script: $theNow" exit 0
Zwei Dinge - 1 - ältere Apple-Maschinen können Seriennummern mit einer unterschiedlichen Anzahl von Zeichen haben. Ich glaube nicht, dass sie im Rahmen meines Skriptlebens sein werden, also muss ich die Zeichen nicht zuerst zählen - dann kann Apple dieses Dienst irgendwann nicht mehr anbieten oder es neu formatieren, indem es eine weitere 4-stellige Zeichenfolge in die XML-Zeile hinzufügt, das wird das brechen.
Das sind akzeptable Risiken für mich, könnten dies aber in Zukunft brechen. Dies ist der einzige Weg, um das Jahr der Herstellung eines Apple-Computers an einer mir bekannten Befehlszeile in eine var zu bringen.
JC