I'm having trouble with adding "=>" to each line of the output of the list of enabled administrators
$isEnabled = (Get-LocalUser | Where-Object {$_.Enabled}).Name
$localAdminUsers = (Get-CimInstance Win32_GroupUser | where {$_.GroupComponent -like "*admini*"} | select -ExpandProperty PartComponent).Name
$EnabledLocalAdmin = ($localAdminUsers | Where {$isEnabled -Contains $_}) #-join "`r`n"
for ($i=0; $i -lt $EnabledLocalAdmin.Count; $i++) { $EnabledLocalAdmins[$i] = "`n`t => " + $EnabledLocalAdmin }
$EnabledLocalAdmins
Output from the above script:
=> Admin1 Admin2 admin3
The desired output should be:
=> Admin1
=> Admin2
=> Admin3
$EnabledLocalAdmin
is an array (contains multiple user names), so your output is to be expected, because when an array is stringified, its (stringified) elements are space-concatenated.[1]A simple example:
I suggest streamlining your code as follows, which also solves the problem:
[1] Technically, you can override this default separator via the
$OFS
preference variable, but that is rarely done in practice.