Get-IssuedRequest无法显示Request.RequesterName属性的技术求助
解决PowerShell中Get-IssuedRequest的Request.RequesterName属性提取问题
问题原因
你遇到的情况是因为Request.RequesterName是一个名称包含点号的NoteProperty,直接使用点语法($_.Request.RequesterName)会被PowerShell解析为“先访问Request属性,再访问其下的RequesterName属性”,但实际上这个属性的完整名称就是Request.RequesterName,并非嵌套属性,因此点语法无法正确定位到该属性。
解决方案
方法1:使用Select-Object -ExpandProperty提取纯值
这是最简洁的方式,-ExpandProperty参数会直接提取指定属性的原始值,而非返回带表头的对象:
$IssuedCERTS = Get-IssuedRequest -CertificationAuthority server.xx.xom | Where-Object { $_.CertificateTemplate -match "xx" -or $_.CertificateTemplate -match "xx" } $IssuedCERTS | Select-Object -ExpandProperty "Request.RequesterName"
方法2:通过属性名索引器访问
对于集合中的单个对象或批量处理,都可以用索引器直接指定完整属性名:
# 批量提取所有对象的属性值 $IssuedCERTS | ForEach-Object { $_["Request.RequesterName"] } # 提取单个对象的属性值(假设$IssuedCERTS是数组,取第一个元素) $IssuedCERTS[0]["Request.RequesterName"]
两种方法都会直接输出DOMAIN\user格式的纯文本值,无额外表头或对象结构。
内容的提问来源于stack exchange,提问作者Alex Lum
相关产品推荐
相关产品推荐

