powershell - 从给定的组列表中提取用户并使用 powershell 将数据提取到文本中的每个新组名
问题描述
从给定的组列表中提取用户列表时,输出文件命令行开关面临问题。我每次都需要以文本格式生成一个新的文本文件,其中包含内容列表中给出的组名称,并且每次生成的数据都应该在该文本文件中。
$grp= Get-Content 'C:\Users\p731400a\Desktop\groups.txt'
$grpdata= @()
$grpname=@()
foreach($grps in $grp)
{
$grps
$data= get-qadgroupmember $grps | Select-Object samaccountname | ft -AutoSize
$grpname +=$grps
$grpdata+= $data
}
Out-File -FilePath C:\Users\p731400a\Desktop\$grps.txt -InputObject $grpdata
解决方案
如果在输入文件中,组名分别存储在单独的行上,应该这样做:
# read the input file as string array and loop through the list
Get-Content 'C:\Users\p731400a\Desktop\groups.txt' | ForEach-Object {
# the $_ automatic variable here represents one group name at a time
# add the `-Indirect` switch to get group members recursively when using 'Get-QADGroupMember'
$members = Get-QADGroupMember $_ -Type 'user' -Indirect |
Select-Object -ExpandProperty SamAccountName
# or use
# $members = Get-ADGroupMember -Identity $_ -Recursive |
# Where-Object { $_.objectClass -eq 'user' } |
# Select-Object -ExpandProperty SamAccountName
#output on screen:
Write-Host ("{0}`r`n{1}" -f $_, ('-' * $_.Length)) -ForegroundColor Yellow
$members
#output to file:
$members | Add-Content -Path "C:\Users\p731400a\Desktop\$_.txt"
}
希望有帮助
推荐阅读
- perl - perl dbi 准备变量表列名
- php - 如何在数组中添加条件
- python - 列表重叠查找器
- android - DatePickerDialog 月份名称显示 M+0+月份数
- scala - 使用 spark 用下一行值填充 null 或空
- c# - 如何将列表框中所选项目的颜色更改为特定的 ARGB 值?
- javascript - var 没有定义,即使它是
- javascript - 删除或覆盖 .onclick = function(){}
- node.js - Redhat nodeJS 是否支持异步?
- elasticsearch - 无法使用公共 IP 而不是 localhost 启动 ElasticSearch