我是powershell的新手,所以如果有人可以帮助我了解这种情况的最佳实践,那就太好了:
我正在使用 Centrify Powershell 模块来获取用户的 uid 属性。如果我输入
Get-CdmUserProfile -Zone "DN_NAME_HERE" | select name,uid
它返回以下内容:
markok 3252423756
markusa 32356514982
markusk 417
markusp 32187
我需要过滤掉uid
长度。所以我尝试了
Get-CdmUserProfile -Zone "DN_NAME_HERE" | ? {($_.Uid).length -lt 6 } | select name,uid
但它会使返回用户的uid
长度超过 6 个字符。所以我试图找出每个的长度uid
:
Get-CdmUserProfile -Zone "DN_NAME_HERE" | %{($_.uid).length}
和
Get-CdmUserProfile -Zone "DN_NAME_HERE" | %{($_.uid).count}
但它会1
为每一个返回uid
,这显然是不正确的。
所以我决定找出uid
属性的类型Get-CdmUserProfile -Zone "DN_NAME_HERE" | %{($_.uid).gettype()}
,对象类型是Int64 System.ValueType
我设法通过使用方法找到了解决tostring()
方法:
Get-CdmUserProfile -Zone "DN_NAME_HERE" | %{(($_.uid).tostring()).length}
它确实是工作,但我不确定这是否是性能和整洁打字方面的最佳实践。有没有其他方法可以找出int64
物体的长度?
TL;博士
找到 int64 长度的最佳做法是什么?