[学习心得]构筑Powershell学习环境(一)
课题大纲

环境前提
- 在 Windows Server 的 Active Directory (AD) 中,创建用户
UserA
和组GroupA
,并将UserA
添加为GroupA
的成员。 - 在 SQL Server 2016 中,创建一个测试数据库,包含存储用户和组信息的表结构。
PowerShell 脚本开发要求
- 获取 AD 中的用户列表,如果用户不在数据库中,则插入到用户表中。
- 查询数据库中的用户,如果这些用户在 AD 中不存在,则从数据库中删除。
- 获取 AD 中的组列表,如果组不在数据库中,则插入到组表中。
- 查询数据库中的组,如果这些组在 AD 中不存在,则从数据库中删除。
- 获取组的成员信息,并保存到数据库中的成员表中。
- 输出用户列表、组列表和成员信息列表到日志文件中。
- 实现功能:能够将指定的用户加入到组中,或从组中移除用户。
流程总结
整个环境搭建流程如下:
- 安装并配置 Windows Server 和 Active Directory。
- 安装并配置 SQL Server 2016 和测试数据库。
- 安装 PowerShell 模块,并测试与 AD 和 SQL Server 的连接。
- 编写并运行 PowerShell 脚本,实现 AD 与 SQL Server 数据的同步和管理。
云端实现属于可选内容,在将近结束时如果还有空余时间的话就考虑做一下。
详细步骤
(一)安装并配置 Windows Server 和 Active Directory
首先是Windows Server,现代的Windows Server操作起来基本上大同小异,我用的是WinServer2025的试用版。打开之后我们打开服务器管理器。如下图所示。

我们接下来打开 服务器管理器,选择 添加角色和功能。在角色一览中我们勾选Active Directory 域服务 (AD DS) 角色,这时候会弹出右边的窗口,点击添加功能。

DNS 服务器
- 解释: DNS 是 AD 域服务的关键组件,提供域名解析服务。如果您的网络环境中没有其他 DNS 服务器,建议同时安装 DNS 服务器角色。
- 是否需要: 建议安装。安装 AD DS 时,系统通常会提示勾选 DNS 服务器。如果没有自动勾选,建议手动勾选以确保 AD 环境的正常运行。




下一步操作:
- 选择 “新しいフォレストを追加する (Add a new forest)” 选项。
- 在 ドメイン (Domain) 字段中,输入您希望创建的域名。例如,您可以使用
xiaohai.local
或test.local
作为您的域名。- 注意: 使用
.local
或.lan
作为内部域名后缀,避免与公共域名冲突。
- 注意: 使用
- 点击 “次へ (Next)” 继续配置。


由于您正在配置的是一个新的内部 Active Directory 环境,默认情况下没有外部父级 DNS,因此 可以忽略这个警告,继续安装和配置。系统会自动创建必要的 DNS 区域和记录。
操作步骤:
- 点击 “OK” 按钮,忽略警告。
- 不要勾选 “DNS 委任の作成 (Create DNS delegation)”,因为:
- 您并没有上级 DNS 服务器来委派这个域的解析。
- 您正在创建新的内部域,DNS 委任不是必须的。
- 点击 “次へ (Next)”,继续配置。




在 前提条件のチェック (Prerequisites Check) 页面,会出现下列的非阻塞性警告。我们来逐个分析一下。
警告 1:网络适配器没有分配静态 IP 地址
- 解释: 这个警告表示,当前的网络适配器可能正在使用 动态 IP 地址 (DHCP)。Active Directory 域控制器通常要求配置 静态 IP 地址,以确保 DNS 解析和域名解析的稳定性。
- 是否需要关注:
- 测试环境:可以忽略。如果您是在虚拟环境(如 ESXi)中测试,并且网络环境较简单,动态 IP 可能不会影响您的测试结果。
- 生产环境:建议手动设置为静态 IP 地址。
- 打开 网络和共享中心 > 以太网 > 属性 > TCP/IPv4,并配置静态 IP 地址。
警告 2:没有找到 DNS 委任记录
- 解释: 这是因为您在之前的配置中选择了 不创建 DNS 委任(这也是正确的选择)。这意味着没有上级 DNS 服务器可以为您的新域
test.local
创建委任记录。 - 是否需要关注:
- 新建的内部域:可以忽略。您的域是新的内部域,不涉及外部 DNS,系统会自动创建必要的 DNS 区域和记录。
- 现有环境中的子域:如果是在现有环境中添加子域,才需要考虑 DNS 委任。
警告 3:IPv6 没有配置
- 解释: 当前服务器可能没有启用或配置 IPv6。Windows Server 默认支持 IPv6,且建议启用,即使您当前没有使用 IPv6 网络。
- 是否需要关注:
- 测试环境:可以忽略。如果您使用的是 IPv4 网络,暂时禁用或未配置 IPv6,不会影响 AD 的基本功能。
- 生产环境:建议保留 IPv6 启用状态,即使没有配置具体的地址。Windows Server 在内部通信时可能依赖 IPv6。

点击 “インストール (Install)” 按钮,开始安装 Active Directory 域控制器。安装完成后,服务器将自动重启,并完成配置。
重启之后本地管理员会自动升格到域管理员,密码一样。
在RDP连接的用户名处输入{域NETBios名\用户名},密码处输入原先自己Administrator的密码,注意不要输成DSRM的密码。

