PowerShell:搜索所有属性值

Jus*_*ane 5 powershell

如何搜索给定字符串的单个对象的所有属性?

假设我有以下命令输出:

get-aduser jtest -properties *

DistinguishedName : CN=jtest,CN=Users,DC=confederationc,DC=on,DC=ca
Enabled           : True
GivenName         : Justus
Name              : jtest
ObjectClass       : user
ObjectGUID        : f4d31d45-0505-433e-9442-152419e75d26
SamAccountName    : jtest
SID               : S-1-5-21-2138664166-620177494-281947949-184391
Surname           : Test
UserPrincipalName : jtest@confederationcollege.ca
...output truncated
Run Code Online (Sandbox Code Playgroud)

如何搜索包含字符串“jtest”的任何属性?

我觉得我一定错过了一些明显的东西。

js2*_*010 4

总是有 findstr (不区分大小写),但结果只是文本。这是一个常见问题。

\n
get-aduser jtest | findstr /i jtest\n\nName              : jtest\nSamAccountName    : jtest\nUserPrincipalName : jtest@confederationcollege.ca\n
Run Code Online (Sandbox Code Playgroud)\n

这并不适用于所有情况,但适用于注册表项。这可以与大多数属性名称或值匹配。这取决于“$_”转换为字符串的内容。通用 pscustomobjects 可以工作。它不适用于 get-aduser 示例(对象转换为可分辨名称字符串)。

\n
get-itemproperty hkcu:\\key1 | ? { $_ -match 'foo' } # or 'emspace'\n\n\nvalue1       : 17\nemspace      : foo\xe2\x80\x83bar\nrefcount     : {255, 255}\nPSPath       : Microsoft.PowerShell.Core\\Registry::HKEY_CURRENT_USER\\key1\nPSParentPath : Microsoft.PowerShell.Core\\Registry::HKEY_CURRENT_USER\nPSChildName  : key1\nPSDrive      : HKCU\nPSProvider   : Microsoft.PowerShell.Core\\Registry\n\n\nget-itemproperty hkcu:\\key1 | % { "$_" }  # showing string conversion\n\n@{value1=17; emspace=foo\xe2\x80\x83bar; refcount=System.Byte[]; PSPath=Microsoft.PowerShell.Core\\Registry::HKEY_CURRENT_USER\\key1; PSParentPath=Microsoft.PowerShell.Core\\Registry::HKEY_CURRENT_USER; PSChildName=key1; PSDrive=HKCU; PSProvider=Microsoft.PowerShell.Core\\Registry}\n
Run Code Online (Sandbox Code Playgroud)\n

  • 您可以使用“ConvertFrom-StringData”将此结果转换为哈希表。类似“get-aduser jtest |”之类的东西 查找str /i jtest | ConvertFrom-StringData - 分隔符 ':'`。 (3认同)