UUID、GUID、SID、SUSID

1. UUID: (Universally Unique Identifier) 通用唯一标识符,

是一个标识符标准用于软件架构,由开放软件基金会(OSF)作为分布式计算环境(DCE)的一部分而制作的标准。

UUID的目的是让分布式系统中的所有元素都能有唯一的辨识资讯,不需要透过中央控制端来做辨认资讯的制定。如此一来每个人都建立一个与其他人不同的标识符,这样在存储到数据库中时,就不用担心名称相同的事情(功能类似数据库中的主键,但是数据库的主键只是在一张表中有效).

这个标准现在被广泛应用在微软的全球唯一标识上面(GUID)。

2. GUID:(Globally Unique Identifier) 全球唯一标识符,是一个假随机数用于软件中。

    GUID的特点:

    (1). 全球唯一性:

世界上两台计算机生成的GUID都不相同,GUID主要用于拥有多个节点、多台计算机组成的计算机网络和系统中,分配具有唯一性的标志符。在时间和空间上都能保证唯一性,保证在同一时间不同的地点生成的GUID值不同。

    (2). 组成结构:通过特定算法生成的一个二进制长度为为128的字符串,在用GUID时是由算法自动生成,不需要任何机构来帮助。

GUID 的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每个 x 是 0-9 或 a-f 范围内的一个十六进制的数字。

例如:6F9619FF-8B86-D011-B42D-00C04FC964FF 即为有效的 GUID 值。------>一个16进制是4个二进制,所以共32位。

   (3). 应用:世界上所有用户的每一个Office文档计算机都会自动生成一个GUID值,并作为这个Office的唯一标识符;而且这个GUID值与计算机的网卡是相关的,

但是这个GUID值对作者是不可见的。作者的信息可以通过GUID的值找到。

 

3、修改VMware UUID.BIOS

当某台ESX主机上的虚拟机(例如:Windows 2003)都是由一个模版(Template Window 2003)发布而来,当其中一台A,需要增加系统盘空间的时候,这时候我会做一个操作,将A关机;之后,将A机的系统盘挂载到B机上,准备进行增加容量操作;但在启动B机后,就会弹出错误框,说UUID相同,即UUID冲突,B机启动失败。

修改之前,首先必须关闭将被修改的虚拟机,否则会收到如下错误:

Failed to open 'XXXX.vmdk' : Device or resource busy (1048585).

使用ESX自带命令: vmkfstools(推荐)

       1、使用SSH client 连接到ESX主机

       2、转到UUID相同的磁盘存放路径(我的例子为B机磁盘存放路径)

       3、输入命令:vmkfstools -J setuuid XXXX.vmdk

命令成功执行后,会显示新分配的UUID。

例如: UUID is 56 4d c6 6c c7 67 cf 73-ee a9 62 54 d6 63 1c c5

补充:vmkfstools -J getuuid XXXX.vmdk 可以查看当前系统的UUID

 

 
4、wmic获取系统的UUID

wmic path win32_computersystemproduct get uuid

wmic bios get name, serialnumber, version

wmic csproduct get name, identifyingnumber, uuid

wmic cpu get name, CurrentClockSpeed, MaxClockSpeed

WMIC csproduct list /format

get-wmiobject Win32_ComputerSystemProduct -computername RANTPC | Select-Object -ExpandProperty UUID

 

5、查看电脑SID和域SID方法:

注册表:HKEY_LOCAL_MACHINE-----SAM---SAM--Domain---Builtin-Aliases--Members--

查看SID客户端加入域时,RID角色的域控制器会分配给客户端一个对象的SID(域SID+RID),SID一般不会变,除非重新加入域。

 

 

6、sysprep重新生成SID

Sysprep.exe可用于重新生成SID,运行sysprep.exe后,重新封装计算机)

在虚拟机上安装好操作系统中,进入c:\windows\system32\sysprep进入系统全新体验OOBE勾选通用然后关机

再复制此系统就不会重复系统SID

 

 

 

 7、WSUS susid

参考http://www.cnblogs.com/thescentedpath/p/registerkey.html

 

 

A computer that is running Windows 2000, Windows Server 2003, or Windows XP does not appear in the Windows Server Update Services (WSUS) console.

 

This issue occurs if the computer was set up by using a Windows 2000 image, a Windows Server 2003 image, or a Windows XP image in which the registry value for SusClientID is populated before it is deployed to client computers.

 

When you use Sysprep to generalize an image for a virtual machine, or when you use a unique SID-generating technology to create the images, the SusClientId registry value is not cleared if it is populated within the image before the image is deployed.

 

Note In WSUS 3.0, the client changes its SusClientID if the hardware configuration changes. For Windows Vista, for Windows Server 2008, and for later versions, Sysprep is changed to reset the SusClientID. Therefore, this problem affects only virtual machines that run pre-Windows Vista operating systems, or that were not created by using Sysprep.

 

https://support.microsoft.com/en-us/kb/903262

浅谈移动端设备标识码:DeviceID、IMEI、IDFA、UDID和UUID - 简书 (jianshu.com)

【心路历程】
最近刚好在思考工作中统计数据所用的标识码产生的数据误差到底有多大,借此机会几番搜索资料+请教大神,整理出此文。

因为自己是产品经理,所以出发点是整理知识点、理解个大概、知道什么不能用、什么标识是靠谱的,并不研究太深入。毕竟非专业开发,有时候若了解知识点太深入,反倒会更困惑(关联知识点太多)。即使研究清楚了,工作中碰到和自己研究相悖的情况,也不好丢个文档告诉开发应该怎么做(除非很熟,但次数多了也伤感情)。

此外,不同公司、不同开发可能对同一个词的释义/实现方式有略微不同,但基本上是这样。
欢迎大家指正~

【先说结论】
UDID是移动端相对最靠谱的设备标识码,不论Android或iOS。

【名词释义】

  • Device ID:设备ID。
  • IMEI:International Mobile Equipment Identity,国际移动设备身份码的缩写。是由15位数字组成的“电子串号”,它与每台手机一一对应,每个IMEI在世界上都是唯一的。
  • IDFA:Identifier For Advertising,iOS独有的广告标识符。
  • UDID:Unique Device Identifier,唯一设备标识码。
  • UUID:Universally Unique Identifier,通用唯一识别码。目前最广泛应用的UUID,是微软公司的全局唯一标识符GUID。其目的是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。

【再说过程】
名词释义是不是看得一脸懵逼?莫慌,下图介绍了各个设备标识码的区别,以及目前的情况。

 
点击图片查看清晰大图

Android设备标识码

  1. device ID。
    又叫设备ID。可以用系统提供的TelephonyManager服务来获取,具有唯一性。其中又包括IMEI和MEID/ESN。
  2. IMEI:GSM设备返回的,并且是写在主板上的,重装APP不会改变IMEI。Android 6.0以上系统需要用户授予read_phone_state权限,如果用户拒绝就无法获得。
  3. mac地址:硬件标识符,包括WiFi mac地址和蓝牙mac地址。Android 6.0之后被禁止,若获取则会被判定为有害应用。
  4. MEID/ESN:CDMA设备返回的,一般不使用。
  5. UDID:用来标示设备的唯一性。获取UUID后,写入.so文件生成UDID。即使APP重装,值也不变,除非root手机(普通用户做不到)
  6. UUID:APP重装后会改变。

iOS设备标识码

  1. device ID。
  2. IMEI:iOS 5 之后被禁止。写在主板上,重装APP不会改变。
  3. IDFA:于iOS 6 时面世,可以监控广告效果,同时保证用户设备不被APP追踪的折中方案。可能发生变化,如系统重置、在设置里还原广告标识符。用户可以在设置里打开“限制广告跟踪”。
  4. mac地址:硬件标识符,包括WiFi mac地址和蓝牙mac地址。iOS 7 之后被禁止(同时禁止的还有OpenUDID)。
  5. UDID:用来标示设备的唯一性 。iOS 6 之后被禁止获取系统原生的UDID,但可以通过uuid,写入到钥匙串中,从而获得自定义的UDID(非系统原生),即使用户重装APP,只要每次都取这个钥匙串返回,就是不变的。
  6. UUID:APP重装后会改变。

【总结】
若想用于数据统计,使用UDID是最靠谱的。

posted @ 2018-10-11 13:38  CharyGao  阅读(893)  评论(0编辑  收藏  举报