Mac-Osx-Server
dsimport 無法為電腦設置 GeneratedUID
我正在將機器填充到我們的 Apple OpenDirectory(在 10.5 伺服器上執行)。
我的腳本將輸出如下文件:
0x0A 0x5C 0x3A 0x2C dsRecTypeStandard:Computers 6 dsAttrTypeStandard:RecordName dsAttrTypeStandard:Comment dsAttrTypeStandard:ENetAddress dsAttrTypeStandard:GeneratedUID dsAttrTypeStandard:Keywords dsAttrTypeStandard:RealName XXX-1to1-47-Fai:Asset 01015:00\:19\:e3\:3c\:07\:28:1A964A90-ADB1-44D5-BA44-EE3B5C8255CA:1A964A90-ADB1-44D5-BA44-EE3B5C8255CA:XXX-1to1-47-Fai XXX-1to1-20-Bre:Asset 01012:00\:19\:e3\:3e\:a1\:fb:D3083AFF-8B62-4D74-B483-68BF40F41069:D3083AFF-8B62-4D74-B483-68BF40F41069:XXX-1to1-20-Bre
然後導入它,如下所示:
dsimport -g machines.txt "/LDAPv3/127.0.0.1" "O" -u diradmin -p diradmin_password -y remote_host -yrnm diradmin -yrpwd diradmin_password
由於我不明白的原因,它無法導入我設置的 GeneratedUID 欄位。相反,它自己創建一個。
當我看到這樣的結果時
dscl -u diradmin -p remote_host -readall /LDAPv3/127.0.0.1/Computers
我明白了
dsAttrTypeNative:apple-generateduid: 3247AAC8-CB4C-47B0-A97C-167722480C0E dsAttrTypeNative:apple-keyword: D3083AFF-8B62-4D74-B483-68BF40F41069 dsAttrTypeNative:apple-ownerguid: 9DD42971-FD0D-4232-931C-FB42507B3185 dsAttrTypeNative:apple-realname: XXX-1to1-20-Bre dsAttrTypeNative:cn: XXX-1to1-20-Bre dsAttrTypeNative:description: Asset 01012 dsAttrTypeNative:gidNumber: 157380 dsAttrTypeNative:macAddress: 00:19:e3:3e:a1:fb dsAttrTypeNative:objectClass: apple-computer top AppleMetaNodeLocation: /LDAPv3/127.0.0.1 Comment: Asset 01012 ENetAddress: 00:19:e3:3e:a1:fb GeneratedUID: 3247AAC8-CB4C-47B0-A97C-167722480C0E Keywords: D3083AFF-8B62-4D74-B483-68BF40F41069 PasswordPlus: ******** PrimaryGroupID: 157380 RealName: XXX-1to1-20-Bre RecordName: XXX-1to1-20-Bre RecordType: dsRecTypeStandard:Computers
對於第一條記錄,第二條記錄的相關部分是,注意我讓它導出了我為 GeneratedUID 欄位和關鍵字欄位生成的 UUID:
GeneratedUID: 13C81E32-F4C6-433F-AB62-54A801E25180 Keywords: 1A964A90-ADB1-44D5-BA44-EE3B5C8255CA
我可以使用 dscl 手動更改設置,但是,在我設置 GeneratedUID(例如使用者和組)的任何其他時間,我都沒有遇到問題。知道為什麼會這樣嗎?
$$ Yes, I know you normally don’t care about what the GeneratedUID is. Knowing it makes it easier for my script to create groups. $$
我發現如果我按照上面指定的方式導入它,在覆蓋模式下:
dsimport -g machines.txt "/LDAPv3/127.0.0.1" "O" -u diradmin -p diradmin_password -y remote_host -yrnm diradmin -yrpwd diradmin_password
然後在合併模式下導入相同的文件:
dsimport -g machines.txt "/LDAPv3/127.0.0.1" "M" -u diradmin -p diradmin_password -y remote_host -yrnm diradmin -yrpwd diradmin_password
我得到了想要的結果。這讓我覺得 dsimport 中有一個錯誤。