吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 372|回复: 1
收起左侧

[学习记录] 一个简单的域账户导出脚本小记(需配合正则)

[复制链接]
hoochanlon 发表于 2024-11-9 16:27

前言:

导出域账号的简单脚本,有论坛网友需要的话,直接拿去用吧。使用 @niansan 的 ADUserManagement 工具导出也行。

https://www.52pojie.cn/forum.php?mod=viewthread&tid=1861896&highlight=%D3%F2%D3%C3%BB%A

需求:

公司每月需要对生产人员总数进行核对,域账户导出相关生产人员与人事进行核对,确认无误上报给领导。

实现:

导出指定的几个相关组织单元进行汇总统计,排除系统自带用户。

源码地址:https://github.com/hoochanlon/scripts/blob/main/d-pwsh-dc/%E5%9F%9F%E7%94%A8%E6%88%B7%E5%AF%BC%E5%87%BA.ps1

# 导出文件路径
$outputFile = "C:\Users\Administrator\Desktop\域用户清单.txt"

# 清空或创建导出文件
Out-File -FilePath $outputFile # -Encoding UTF8 -Force

# 导入 Active Directory 模块
Import-Module ActiveDirectory

# 设置组织单元的 DistinguishedName
$ous = @(
    "OU=生产团队,DC=CSXZX,DC=com",
    "OU=培训,DC=CSXZX,DC=com",
    "OU=临时保存权限,DC=CSXZX,DC=com"
)

foreach ($ou in $ous) {
    # 获取组织单元中的所有用户
    $users = Get-ADUser -Filter * -SearchBase $ou -Properties Name

    # 将用户名字写入文件
    if ($users) {
        $ouName = (Get-ADOrganizationalUnit -Identity $ou).Name  # 获取 OU 名称
        Add-Content -Path $outputFile -Value "组织单元:$ouName"
        foreach ($user in $users) {
            Add-Content -Path $outputFile -Value $user.Name  # 只保留用户名称
        }
        Add-Content -Path $outputFile -Value "`r`n"  # 添加换行分隔符
    } else {
        Write-Host "未找到任何用户在组织单元 $ouName 中。"
    }
}

Write-Host "已导出所有指定组织单元中的用户名字到 $outputFile"

# 暂停 5 秒
Start-Sleep -Seconds 5

再打开 vscode 使用正则表达式

  • 匹配 所有 组织单元 及后续字符所有的行:^.*组织单元.*$
  • 匹配 所有 生产 及后续字符所有的行:^.*生产.*$
  • 匹配 所有 测试 及后续字符所有的行:^.*测试.*$
  • 删除所有空白行:^\s*\n

去除不必要的域控测试账户,以及相关公共账户,删除后再删除空白行即可。

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
jamescookers988 + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

jamescookers988 发表于 2024-11-10 07:51
感谢分享!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 01:55

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表