PowerShell导出服务器本地Administrators组内成员
很久没有上过51了,因为时间都花在了追女朋友上面,技术也都快荒废了,前几年一直做基础架构运维的工作,也没有太大的提升,现在转做系统运维了,发现不懂Shell很吃亏,管理几十台服务器的时候,还能用人肉干活,管理上百台,上千台服务器的时候,好铁也打不了几颗钉了。 公司有数千台服务器,很多非IT运维人员都可以远程登陆服务器,这样的问题在每个公司多少应该都会存在,来源大概可以分为以下几类: 1.运维制度不健全,任意有管理员权限的人都可以给其它人授予远程访问权限 2.运维人员工作懈怠,给仅需要查看权限的人员授权管理员权限 3.运维不严谨,临时开放的权限,时间久了没有回收,就变成了永久权限 4.历史遗留问题等等 为了降低运维安全风险,决定将不必要的人员远程登陆权限回收,经过分析讨论,公司目前的服务器能够远程登陆的,可以分为这几种权限: 1.域内Domain Admins组内成员 2.域内、本地Remote Desktop组内成员 3.域内、本地Administrators组内成员 域内成员非常容易获取,方法很多,使用Powershell命令也比较方便,一条命令可以搞定,以导出Domain Admins成员为例
Get-ADGroupMember -Identity "domain admins" | Select-Object name,samaccountname | Export-Csv -Encoding utf8 c:logDomainAdminsMember.csv $server_list = Get-Content C:LOGserver.txtforeach ( $hostname in $server_list){if (!(test-connection $hostname -count 1 -quiet)){Write-Output $hostname | Out-File C:LOGadministrator-error.txt -Append}#将无法ping通的服务器记录在一个txt文件中else{get-user -strcomputer $hostname | Out-File C:LOGtestAdministrator-users.txt -Append}#导出Administrators组内的成员} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |