You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell获取AD用户属性时返回UserSmimeCertificate存在性或截断值

解决方案:自定义AD用户属性提取与SMIME证书状态判断

我来给你整理一个能完美适配需求的PowerShell脚本,既能精准提取你需要的指定属性,又能通过计算属性处理最后登录时间、判断SMIME证书是否存在,完全不需要拆分多次命令:

# 先定义你需要的基础属性列表(这里示例10个左右,可根据实际需求增删)
$targetProperties = @(
    'Name',
    'SamAccountName',
    'UserPrincipalName',
    'EmailAddress',
    'Enabled',
    'Department',
    'Title',
    'Manager',
    'Created',
    'LastLogonDate'
)

# 执行AD查询并拼接计算属性
Get-ADUser -Filter * -Properties $targetProperties, 'UserSmimeCertificate' |
    Select-Object -Property $targetProperties,
        # 格式化最后登录时间,未登录则返回友好提示
        @{
            Name = 'LastLogonFormatted'
            Expression = { 
                if ($_.LastLogonDate) { 
                    $_.LastLogonDate.ToString('yyyy-MM-dd HH:mm:ss') 
                } else { 
                    '从未登录' 
                } 
            }
        },
        # 判断SMIME证书是否存在,返回true/false
        @{
            Name = 'HasSmimeCertificate'
            Expression = { [bool]$_.UserSmimeCertificate }
        },
        # 【可选】如果需要返回证书前x位字符,替换上面的HasSmimeCertificate即可
        # @{
        #     Name = 'SmimeCertPreview'
        #     Expression = { 
        #         if ($_.UserSmimeCertificate) { 
        #             $_.UserSmimeCertificate.Substring(0, 20) # 这里的20可自定义位数
        #         } else { 
        #             $null 
        #         } 
        #     }
        # }

关键细节说明

  • 精准属性选取:$targetProperties里列的是你需要的常规属性,完全避免了select *带来的冗余数据拉取,按需获取更高效。
  • 最后登录时间处理:通过计算属性LastLogonFormatted把原始的LastLogonDate转换成易读的格式,还兼容了用户从未登录的场景。
  • SMIME证书存在性判断:利用[bool]类型转换,直接把UserSmimeCertificate的数组状态转换成布尔值——只要证书存在(数组非空)就返回$true,否则返回$false,完美契合你要的状态标识需求。
  • 可选预览功能:如果确实需要看证书的前几位字符,把注释里的SmimeCertPreview计算属性替换掉HasSmimeCertificate即可,调整数字就能自定义预览长度。

小提示

如果只需要查询特定用户,把-Filter *改成具体筛选条件就行,比如-Filter {SamAccountName -eq 'alice.smith'}。

内容的提问来源于stack exchange,提问作者strytsters

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:47:29