如何使用PowerShell获取所有AD用户的允许登录时段并导出到Excel
AD用户允许登录时段查询及导出Excel实现方案
运行前提:需要在已安装Active Directory 模块的设备上运行(域控制器默认安装,成员服务器/工作站需安装RSAT-AD-PowerShell功能)
核心逻辑说明
AD的LogonHours属性为21字节的二进制数组,共168位,每一位对应一周中的1个小时(从周日零点开始按顺序排列),位值为1代表该时段允许登录,为0代表禁止。我们需要先将二进制数组转换为可读时段字符串,再导出表格。
完整实现脚本
# 加载AD模块 Import-Module ActiveDirectory # 定义二进制LogonHours转可读时段的函数 function Convert-LogonHoursToReadable { param( [byte[]]$LogonHours, [int]$TimeZoneOffset = 8 # 北京时间为UTC+8,根据实际时区调整 ) # 处理无登录限制的情况(所有字节都是0xFF) if ($null -eq $LogonHours -or ($LogonHours | Where-Object { $_ -ne 0xFF }).Count -eq 0) { return "无限制" } $weekDays = @("周日","周一","周二","周三","周四","周五","周六") $allowedHours = @() # 遍历168位对应7*24小时 for ($day = 0; $day -lt 7; $day++) { $dayHours = @() for ($hour = 0; $hour -lt 24; $hour++) { $totalHour = $day * 24 + $hour $adjustedHour = ($totalHour + $TimeZoneOffset) % 168 # 时区修正 $byteIndex = [math]::Floor($adjustedHour / 8) $bitIndex = $adjustedHour % 8 $bit = ($LogonHours[$byteIndex] -shr $bitIndex) -band 1 if ($bit -eq 1) { $dayHours += $hour } } # 合并当日连续时段 if ($dayHours.Count -gt 0) { $start = $dayHours[0] $end = $dayHours[0] for ($i = 1; $i -lt $dayHours.Count; $i++) { if ($dayHours[$i] -eq $end + 1) { $end = $dayHours[$i] } else { $allowedHours += "$($weekDays[$day]) $($start):00-$($end+1):00" $start = $dayHours[$i] $end = $dayHours[$i] } } $allowedHours += "$($weekDays[$day]) $($start):00-$($end+1):00" } } return $allowedHours -join ";" } # 查询所有AD用户并转换登录时段 $userLogonInfo = Get-ADUser -Filter * -Properties LogonHours | ForEach-Object { [PSCustomObject]@{ "姓名" = $_.Name "允许登录时段" = Convert-LogonHoursToReadable -LogonHours $_.LogonHours } } # 导出方案1:原生导出CSV,可直接用Excel打开 $userLogonInfo | Export-Csv -Path "C:\AD用户登录时段.csv" -Encoding UTF8 -NoTypeInformation # 导出方案2:若安装了ImportExcel模块,可直接导出为xlsx格式(需先执行Install-Module ImportExcel安装) # $userLogonInfo | Export-Excel -Path "C:\AD用户登录时段.xlsx" -WorksheetName "登录时段" -AutoSize
结果说明
- 若用户没有配置登录时段限制,
允许登录时段列会显示无限制 - 导出的文件路径可自行修改脚本中的路径参数
- 若需要调整时区,修改函数里的
TimeZoneOffset参数值即可
内容的提问来源于stack exchange,提问作者HeNeedsSomeMilk
相关产品推荐
相关产品推荐

