微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将PC序列号转换为字符串

如何解决如何将PC序列号转换为字符串

| 首先,我想知道我是否可以使用这两个说明
gwmi win32_bios | select serialnumber

gwmi win32_Computersystemproduct | select identifyingnumber
淡然。 第二个问题是为什么我要写
$sn = gwmi win32_bios | select serialnumber | out-string
$sn.gettype()
返回system.object 和 即使我的序列号由22个字符组成,3ѭ也会返回561。谢谢。     

解决方法

        通过使用Out-String,您将
gwmi win32_bios | select serialnumber
的输出转换为字符串并将其存储在
$sn
中。因此,ѭ5现在将具有以下内容:
PS> $sn

serialnumber
------------
xxxxxxx
因此,
$sn.length
向您显示整个字符串的长度。如果仅要将其更改为序列号:
PS> $sn = gwmi win32_bios | select -Expand serialnumber | out-string
PS> $sn
xxxxxxx    
PS> $sn.Length
9
如您所见,我的序列号(我删除了原来的序列号)只有7个字符宽。但是,
$sn.length
显示9。输出之后可能有几个隐藏的字符。在控制台的输出之后,我可以看到一个空行。 到实际点,此空间加上
Out-String
。因此,您甚至不需要它。你可以做:
PS> $sn = gwmi win32_bios | select -Expand serialnumber
PS> $sn
XXXXXX
PS> $sn.Length
7
$sn
仍然是字符串。
PS> $sn.GetType()

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     String                                   System.Object
    ,        看起来这两个wmi属性在我的机器上给出了相同的结果。我猜他们是从同一个地方拉过来的。 根据GetType的结果,我得到以下信息:
IsPublic IsSerial Name                                     BaseType                                                                                                                    
-------- -------- ----                                     --------                                                                                                                    
True     True     String                                   System.Object
这意味着$ sn是一个String,它是从System.Object派生的。 哦,是的...最后一部分。 $ sn不仅是序列号。它是GetType()函数结果的标题,格式,空格和所有属性。     ,        如果在
gwmi win32_bios | select serialnumber
的输出上执行get-member,您将看到它实际上具有以下属性,如.NET中的任何对象。
typeName: Selected.System.Management.ManagementObject

Name         MemberType   Definition                                
----         ----------   ----------                                
Equals       Method       bool Equals(System.Object obj)            
GetHashCode  Method       int GetHashCode()                         
GetType      Method       type GetType()                            
ToString     Method       string ToString()                         
serialnumber NoteProperty System.String serialnumber=N1B85 T10 55757
如果需要序列号,则需要执行以下操作:
$sn = gwmi win32_bios | select serialnumber
$sn.serialnumber
这样,您将选择序列号对象的serialnumber属性的内容。     ,        或者,您可以执行以下操作:
$sn = (gwmi win32_bios).serialnumber 
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。