← 返回主页
案例 01
Windows Server AD 域控搭建与客户端批量加域

背景描述

某制造企业有 200 台 Windows 10 办公电脑和 10 台 Windows Server 2019,员工账号各自为政,IT 无法统一管理。需部署 Active Directory 域控,实现统一认证、组策略管理和文件共享。

解决方案

部署两台域控(主域控 + 辅助域控)实现高可用,创建组织单位(OU)按部门分组,编写 PowerShell 脚本批量加域。组策略统一配置密码策略、桌面壁纸、网络驱动器映射。

技术要点

  • 主域控安装 AD DS 角色 + DNS,辅助域控实现容灾冗余
  • OU 结构设计:按部门(研发/财务/人事/生产)划分,方便组策略定向应用
  • 200 台客户端通过 PowerShell 脚本批量加域并自动重启
  • 组策略:密码复杂度、锁屏策略、软件限制策略、共享驱动器映射
# 安装 AD DS 角色(PowerShell) Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools Install-ADDSForest -DomainName "corp.local" -DomainNetbiosName "CORP" ` -SafeModeAdministratorPassword (Read-Host -AsSecureString) # 批量加域脚本(在客户端执行) $domain = "corp.local" $cred = Get-Credential "CORP\Administrator" Add-Computer -DomainName $domain -Credential $cred -Restart -Force # 批量创建用户(从 CSV 导入) Import-Csv "users.csv" | ForEach-Object { New-ADUser -Name $_.Name -SamAccountName $_.SamAccountName ` -UserPrincipalName "$($_.SamAccountName)@corp.local" ` -AccountPassword (ConvertTo-SecureString $_.Password -AsPlainText -Force) ` -Enabled $true -Path "OU=$($_.Department),DC=corp,DC=local" }
案例 02
IIS 站点部署与高可用负载均衡

背景描述

某企业内部 OA 系统(ASP.NET)部署在单台 IIS 服务器上,近一年已出现 3 次因服务器故障导致全公司无法访问。需部署 IIS 集群 + ARR 负载均衡,实现高可用。

解决方案

搭建 3 台 IIS Web 服务器组成集群,前端使用 IIS ARR(Application Request Routing)做反向代理和负载均衡,配置健康检查和会话保持。结合 Windows DFS 实现站点文件同步。

技术要点

  • ARR 服务器安装 URL Rewrite + ARR 模块
  • 配置 Server Farm 添加 3 台后端 IIS 节点,健康检查间隔 30s
  • 会话保持使用 ARR 的 Client Affinity(Cookie 方式)
  • 站点文件通过 DFS Replication 实现多台服务器实时同步
# PowerShell 安装 ARR 依赖 Install-WindowsFeature Web-Server, Web-WebServer, Web-Common-Http Install-WindowsFeature Web-App-Dev, Web-Asp-Net45 # 通过 Web Platform Installer 安装 ARR 3.0 + URL Rewrite # 创建 Server Farm(PowerShell / appcmd) New-WebFarm -Name "OA-Cluster" Add-WebFarmServer -WebFarm "OA-Cluster" -Name "web01" -Address "192.168.1.11" Add-WebFarmServer -WebFarm "OA-Cluster" -Name "web02" -Address "192.168.1.12" Add-WebFarmServer -WebFarm "OA-Cluster" -Name "web03" -Address "192.168.1.13" # 健康检查 URL 配置 Set-WebFarmHealthMonitoring -WebFarm "OA-Cluster" -Url "http://{server}/healthcheck" ` -Interval 30 -ResponseMatch "OK"
案例 03
Windows 服务器勒索病毒应急响应与恢复

背景描述

某财务公司的 Windows Server 2016 文件服务器遭勒索病毒感染,所有 .docx/.xlsx/.pdf 文件被加密为 .locked 扩展名。攻击者要求支付 2 个比特币。服务器未加入域,RDP 3389 端口暴露在公网。

解决方案

第一时间断网隔离,通过 Windows Server Backup 恢复被加密文件。关闭 3389 公网暴露,部署 RD Gateway + 双因素认证。配置 AppLocker 白名单策略,阻止未知可执行文件运行。

技术要点

  • 应急:断网 → 提取样本 → 确认加密算法(AES-256 无法解密)→ 启动灾难恢复
  • 恢复:通过 Windows Server Backup 完整还原(备份策略:每日增量 + 每周完整)
  • 加固:关闭 3389 公网映射,启用 RD Gateway + Azure MFA
  • AppLocker 配置默认拒绝规则,仅允许 Program Files 和特定签名程序运行
# 快速断网 Get-NetAdapter | Disable-NetAdapter -Confirm:$false # Windows Server Backup 还原 wbadmin get versions wbadmin start recovery -version:06/23/2026-02:00 -itemType:Volume ` -items:D: -recoveryTarget:D: # AppLocker 默认拒绝规则 New-AppLockerPolicy -RuleType Exe -User Everyone -Action Deny Set-AppLockerPolicy -Policy (Get-AppLockerPolicy -Effective) # 禁用 SMBv1(防勒索横向传播) Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
案例 04
Windows 服务器性能优化与资源瓶颈诊断

背景描述

某 SQL Server 2019 服务器的业务系统在月底结算日出现严重卡顿,查询超时频繁。初步查看 CPU 100%、内存 98%,客户认为是硬件不足,要求加配。

解决方案

使用 PerfMon + Resource Monitor 深度诊断,发现真正瓶颈是磁盘 IO —— TempDB 和日志文件在同一块 HDD 盘上导致大量等待。将 TempDB 迁移到 SSD 后,CPU 降至 40%,性能恢复正常。

技术要点

  • PerfMon 添加计数器:PhysicalDisk\Avg. Disk sec/Read、SQLServer:Buffer Manager\Page life expectancy
  • Resource Monitor 发现 sqlservr.exe 的 Disk I/O 队列深度持续 > 20
  • SQL Server 配置:TempDB 拆分 8 个数据文件均衡负载,移入独立 SSD
  • 虚拟内存配置:将 Pagefile 从系统盘移到独立 SSD 盘
# PowerShell 查看磁盘队列深度 Get-PhysicalDisk | Select-Object FriendlyName, MediaType, Size Get-Counter '\PhysicalDisk(_Total)\Avg. Disk Queue Length' # SQL Server 迁移 TempDB ALTER DATABASE tempdb MODIFY FILE ( NAME = tempdev, FILENAME = 'E:\SSD_TempDB\tempdb.mdf' ); ALTER DATABASE tempdb MODIFY FILE ( NAME = templog, FILENAME = 'E:\SSD_TempDB\templog.ldf' ); -- 重启 SQL Server 后生效 # 移动 Pagefile $pageFileSet = Get-CimInstance Win32_PageFileSetting Set-CimInstance -InputObject $pageFileSet -Property @{ Name="E:\pagefile.sys" }