输出的 Powershell 分割线

Powershell splitting line from output

我到处涉猎 PowerShell,但我仍然需要一些工作。我正在尝试从文本文件的一行中获取输出,以准备使用它迁移到具有相同用户名库的另一个域。提取的是名为“Group-Executives-ronly”的组名,下一组数据是名为“Group-Executives-ronly”的组和该组中的用户

$variable1 = '"Group-Executives-ronly","Group Approvers for accounts;Wilson, Frank fwilson;Jorden, mike mjorden;smith, David dsmith"'

我只是在实际使用这些数据做其他工作之前显示结果。我想像这样打印每一行,但拆分的每次迭代都不适用于用户名部分。

Group-Executives-ronly

Group Approvers for accounts
fwilson
mjorden
dsmith

我先把它和

分手了
$group=$variable1.Split('"')\[1\]
$Userslist=$variable1.Split('"')\[3\]

第一个数组 Group-Executives-ronly 和第三个数组 Group Approvers for accounts;Wilson, Frank fwilson;Jorden, mike mjorden;smith, David dsmith

我用 ;

做了另一个分割数组
$Users=$Userslist.Split(';')

这给了我所有的 group/users 分裂,就像这样

Group Approvers for accounts

Wilson, Frank fwilson

Jorden, mike mjorden

smith, David dsmith

我喜欢我得到了完整的组名,但我不想要那些用户的名字,我只需要他们的 UID,这可能吗,我做错了吗?所需的期望输出是

Group Approvers for accounts

fwilson

mjorden

dsmith

说了什么。

你很接近:在拆分为“;”后的用户列表中,如果它包含“,”,则在 space 上拆分并获取最后一项,否则只获取整个用户列表项。

PS /> $variable1 = '"Group-Executives-ronly","Group Approvers for accounts;Wilson, Frank fwilson;Jorden, mike mjorden;smith, David dsmith"'
PS /> $group=$variable1.Split('"')[1]                                                                                                      
PS /> $Userslist=$variable1.Split('"')[3]                                                                                                  
PS /> $Userslist.split(';') | %{if ($_.contains(',')){$_.split(' ')[-1]} else {$_}}                                                        
Group Approvers for accounts
fwilson
mjorden
dsmith
PS />