如何通过PowerShell从指定登录脚本查询关联AD用户
批量查询关联特定登录脚本的AD用户解决方案
步骤1:提取目标登录脚本名称
先从筛选结果中提取出AD用户scriptpath属性对应的脚本名称(注意去掉文件名里的logon_前缀,匹配AD中存储的格式):
$scriptNames = Get-ChildItem \\logonserver\LogonBats -File -Filter *.bat | Select-String -Pattern 'Connect the S-Drive' -CaseSensitive | ForEach-Object { # 提取文件名并移除logon_前缀 $_.Filename -replace '^logon_', '' }
步骤2:批量查询AD用户
用提取到的脚本名构建AD查询过滤器,一次性获取所有关联用户:
# 构建多条件OR过滤器 $adFilter = $scriptNames | ForEach-Object { "scriptpath -eq '$_'" } -join ' -or ' # 查询并输出结果 Get-ADUser -Filter $adFilter -Properties scriptpath | Select-Object Name, SamAccountName, ScriptPath
注意事项
- 确保执行脚本的账号拥有读取AD用户属性和访问登录脚本共享目录的权限
- 如果AD用户
scriptpath存储的是完整路径(而非仅文件名),需调整步骤1的脚本名提取逻辑,保留完整路径格式 - 若存在重名登录脚本,需额外添加校验逻辑避免误匹配
内容的提问来源于stack exchange,提问作者Ajdin
相关产品推荐
相关产品推荐

