We help IT Professionals succeed at work.

Powershell - Get values between brackets

amaru96
amaru96 asked
on
Hi guys, I'm running the below command which shows me a list of updates within a group.

Get-CMSoftwareUpdate -UpdateGroupName group1 | select LocalizedDisplayName

The result looks something like this:
Security update for Windows 7 (KB123456)
Security update for Windows 7 (KB123456)
Security update for Windows 7 (KB123456)
Security update for Windows 7 (KB123456)
Security update for Windows 7 (KB123456)
Security update for Windows 7 (KB123456)
etc

What I'd like is the list of KB numbers instead of the entire name of the update.

Like this, without the brackets:
KB123456
KB123456
KB123456
KB123456
KB123456

How would I go about getting these values? I tried using .split but don't really know what I'm doing and didn't get anywhere.

Also, a small number of results don't have KB numbers, so it would be great if the script listed that result as "No KB" or something similar.
Comment
Watch Question

Most Valuable Expert 2019
Most Valuable Expert 2018
Commented:
Get-CMSoftwareUpdate -UpdateGroupName group1 | Select-Object -Property LocalizedDisplayName, @{Name="KB"; Expression={If ($_.LocalizedDisplayName -match '\((?<KB>KB\d{6,7})\)') {$Matches["KB"]} Else {"n/a"}}}

Open in new window

Author

Commented:
Perfect! Thanks so much.