Windows系统初始化脚本

一键自动化配置Windows服务器的用户、远程桌面、防火墙等基础设置

![License](LICENSE) ![PowerShell](https://docs.microsoft.com/en-us/powershell/) ![Platform](https://www.microsoft.com/windows/)

✨ 特性

  • 🚀 一键部署 - 支持PowerShell直接执行,无需手动下载
  • 👥 多用户管理 - 支持管理员、高级用户、普通用户三种权限类型
  • 🖥️ 远程桌面配置 - 自动启用和配置远程桌面连接
  • 🛡️ 防火墙配置 - 自动配置Windows防火墙规则
  • ⚙️ 系统服务优化 - 禁用不必要的系统服务
  • 📊 详细日志 - 完整的操作记录和结果汇总
  • 独立验证 - 提供专门的配置验证工具

功能说明

这个脚本用于自动化Windows系统的初始化配置,包括:

  • 用户管理 - 创建管理员账户和多个应用账户
  • 远程桌面 - 启用远程桌面并配置端口
  • 防火墙配置 - 配置Windows防火墙规则
  • 系统服务 - 优化系统服务配置
  • Windows Update - 配置自动更新策略
  • 安全策略 - 配置密码复杂度等安全设置

快速开始

一键安装(推荐)

# 以管理员身份运行PowerShell,然后执行:
PowerShell -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://api.asfor.cn/shellscript/install_windows.ps1'))"

手动安装

# 下载文件
Invoke-WebRequest -Uri "https://api.asfor.cn/shellscript/system_init_windows.conf" -OutFile "system_init_windows.conf"
Invoke-WebRequest -Uri "https://api.asfor.cn/shellscript/init_windows.ps1" -OutFile "init_windows.ps1"
# 修改配置文件(可选)
notepad system_init_windows.conf
# 执行脚本
.\init_windows.ps1

配置文件说明

用户账户配置

# 管理员账户
$ADMIN_USER = "dxcadmin"
$ADMIN_PASSWORD = "your_password"
# 应用账户
$APP_USERS = @(
    @{Username="app1"; Password="password"; Permission="admin"},    # 管理员权限
    @{Username="app2"; Password="password"; Permission="power"},    # 高级用户权限
    @{Username="app3"; Password="password"; Permission="user"}      # 普通用户权限
)

权限类型说明

  • admin: 管理员权限,加入Administrators组
  • power: 高级用户权限,加入Power Users组
  • user: 普通用户权限,仅在Users组

远程桌面配置

$ENABLE_RDP = $true        # 启用远程桌面
$RDP_PORT = 3389          # 远程桌面端口

防火墙配置

$CONFIGURE_FIREWALL = $true      # 配置防火墙
$ALLOW_RDP_FIREWALL = $true      # 允许远程桌面通过防火墙

系统配置

$CONFIGURE_WINDOWS_UPDATE = $true    # 配置Windows Update
$AUTO_UPDATE_ENABLED = $false       # 禁用自动更新
$DISABLE_UNNECESSARY_SERVICES = $true # 禁用不必要的服务

执行结果示例

==============================================
           账户信息汇总
==============================================
【管理员账户】
用户名: dxcadmin
密码:   Hyz4jDcnfs@2025
权限:   管理员权限
【应用账户】
用户名: crmadmin
密码:   L38@Nz%4KQc%i9
权限:   管理员权限
用户名: crmsvc
密码:   6yCL*R@&v!88in
权限:   普通用户权限
用户名: crmro
密码:   5Z%G#6!Y2y!e7!
权限:   普通用户权限
==============================================
成功创建账户总数: 4 个
  - 管理员账户: 1 个
  - 应用账户: 3 个
==============================================

独立验证工具

一键验证(推荐)

# 自动下载配置文件和验证脚本
PowerShell -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://api.asfor.cn/shellscript/install_verify_windows.ps1'))"

手动验证

# 下载验证脚本
Invoke-WebRequest -Uri "https://api.asfor.cn/shellscript/verify_windows.ps1" -OutFile "verify_windows.ps1"
# 使用配置文件验证(推荐)
.\verify_windows.ps1
# 自动检测模式验证
.\verify_windows.ps1 -AutoDetect
# 显示帮助信息
.\verify_windows.ps1 -Help

验证内容

  • 系统基本信息:操作系统、版本、运行时间
  • 远程桌面验证:RDP启用状态、端口配置
  • 用户账户验证:账户存在性、权限配置正确性
  • 系统服务验证:关键服务运行状态
  • 防火墙配置验证:防火墙规则状态
  • 网络连接验证:RDP端口监听状态

部署说明

云端部署文件

需要上传到云端的文件:

  • install_windows.ps1 - 一键安装脚本
  • init_windows.ps1 - 主初始化脚本
  • system_init_windows.conf - 配置文件
  • verify_windows.ps1 - 验证脚本
  • install_verify_windows.ps1 - 验证脚本安装器

文件结构

https://api.asfor.cn/shellscript/
├── install_windows.ps1           # Windows一键安装入口
├── install_verify_windows.ps1    # Windows验证脚本安装器
├── init_windows.ps1             # Windows主脚本
├── system_init_windows.conf     # Windows配置文件
└── verify_windows.ps1           # Windows验证脚本

安全特性

  • 权限检查 - 确保以管理员权限运行
  • 配置备份 - 注册表配置自动备份
  • 权限验证 - 用户组权限配置验证
  • 服务安全 - 禁用不必要的系统服务
  • 防火墙配置 - 自动配置安全的防火墙规则

注意事项

  • 权限要求 - 脚本必须以管理员权限运行
  • 执行策略 - 可能需要临时修改PowerShell执行策略
  • 配置检查 - 建议在运行前检查配置文件
  • 测试环境 - 建议先在测试环境验证功能
  • 密码安全 - 建议使用复杂密码组合
  • 网络要求 - 确保服务器能访问下载地址

故障排除

常见问题

  • 执行策略限制

   # 临时允许脚本执行
   Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
   

  • 远程桌面连接问题

   # 检查远程桌面状态
   Get-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' -Name "fDenyTSConnections"
   # 重启远程桌面服务
   Restart-Service TermService
   

  • 用户创建失败

   # 检查用户
   Get-LocalUser
   # 检查用户组
   Get-LocalGroupMember -Group "Administrators"
   

  • 防火墙问题

   # 检查防火墙规则
   Get-NetFirewallRule -DisplayGroup "Remote Desktop"
   # 手动启用远程桌面规则
   Enable-NetFirewallRule -DisplayGroup "Remote Desktop"
   

验证配置

# 一键验证
PowerShell -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://api.asfor.cn/shellscript/install_verify_windows.ps1'))"

支持的系统

  • Windows Server 2016+
  • Windows Server 2019
  • Windows Server 2022
  • Windows 10 Pro/Enterprise
  • Windows 11 Pro/Enterprise

更新日志

  • v1.0 - 基础功能实现
  • v1.1 - 添加防火墙配置
  • v1.2 - 独立验证脚本
  • v1.3 - 改进用户权限管理

许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。


免责声明: 本脚本会修改系统配置,请在生产环境使用前充分测试。作者不对使用本脚本造成的任何损失承担责任。