PowerShell 脚本域策略管理

大中型企业中,会设置许多组策略进行日常运维管理 ,毕然里面也存在许多废弃的策略,需要我们定期清理我们的组策略信息。通常我们导出HTML报告方式来帮助我们分析组策略信息:

#1

首先需要加载GroupPolicy模块:

Import-Module GroupPolicy

将GPO导出为一个HTML报告:

Get-GPOReport -All -ReportType html -Path C:\GPOReports\GposReport.html

#2

将每个GPO导出生成自己的HTML报告中:

Get-GPO -All | %{
Get-GPOReport -name $_.displayname -ReportType html -path ("c:\GPOReports\"+$_.displayname+".html")
}

#3

让我们查询所有设置被禁用的GPO策略:

$reportFile = "c:\GPOReports\AllSettingsDisabledGpos.csv"
Set-Content -Path $reportFile -Value ("GPO Name,Settings")
Get-GPO -All | where{ $_.GpoStatus -eq "AllSettingsDisabled" } | % {
add-Content -Path $reportFile -Value ($_.displayName+","+$_.gpoStatus)
}

#4

查询没有应用到任何用户的Gpo策略

$reportFile = "c:\GPOReports\GPOApplyToPermissions.csv"
Set-Content -Path $reportFile -Value ("GPO Name,User/Group,Denied")
Get-GPO -All | %{
$gpoName = $_.displayName
[int]$counter = 0
$security = $_.GetSecurityInfo()
$security | where{ $_.Permission -eq "GpoApply" } | %{
add-Content -Path $reportFile -Value ($gpoName + "," + $_.trustee.name+","+$_.denied)
$counter += 1
}
if ($counter -eq 0)
{
add-Content -Path $reportFile -Value ($gpoName + ",NOT APPLIED")
}
}

#4

获取GPO,链接和WMI过滤器:

$reportFile = "c:\GPOReports\GPOLinksAndWMIFilters.csv"
Set-Content -Path $reportFile -Value ("GPO Name,# Links,Link Path,Enabled,No Override,WMI Filter")
$gpmc = New-Object -ComObject GPMgmt.GPM
$constants = $gpmc.GetConstants()
Get-GPO -All | %{
[int]$counter = 0
[xml]$report = $_.GenerateReport($constants.ReportXML)
try
{
$wmiFilterName = $report.gpo.filtername
}
catch
{
$wmiFilterName = "none"
}
$report.GPO.LinksTo | % {
if ($_.SOMPath -ne $null)
{
$counter += 1
add-Content -Path $reportFile -Value ($report.GPO.Name + "," + $report.GPO.linksto.Count + "," + $_.SOMPath + "," + $_.Enabled + "," + $_.NoOverride + "," + $wmiFilterName)
}
}
if ($counter -eq 0)
{
add-Content -Path $reportFile -Value ($report.GPO.Name + "," + $counter + "," + "NO LINKS" + "," + "NO LINKS" + "," + "NO LINKS")
}
}

#5

查询具有阻止GPO继承的组织单位:

Import-Module ActiveDirectory
$reportFile = "c:\GPOReports\OUsWithBlockInharit.csv"
set-Content -Path $reportFile -Value ("Block Inharitance OU Path")
Get-ADOrganizationalUnit -SearchBase "DC=Your,DC=Domain" -Filter * | Get-GPInheritance | Where-Object { $_.GPOInheritanceBlocked } | %{
add-Content -Path $reportFile -Value ($_.path)
}

原文地址:http://blog.51cto.com/djclouds/2089006

时间: 2024-10-08 07:08:14

PowerShell 脚本域策略管理的相关文章

PowerShell 脚本执行策略

为防止恶意脚本的执行,PowerShell 中设计了一个叫做执行策略(Execution Policy)的东西(我更倾向于把它叫做脚本执行策略).我们可以在不同的应用场景中设置不同的策略来防止恶意脚本的执行.本文主要是解释这些执行策略,因为笔者在学习的时候发现它们并不是那么清晰易懂.PowerShell 提供了 Restricted.AllSigned.RemoteSigned.Unrestricted.Bypass.Undefined 六种类型的执行策略,接下来我们一一介绍. Restrict

Powershell脚本配合计划任务程序实现组策略自动备份

同样是在今天遇到了一个题目,要求每五分钟自动备份一次组策略(GPO),绞尽脑汁发现图形界面并不能解决这个问题,于是开始想Powershell能不能解决,最后真的解决了.下面是我做的过程 首先放脚本: 解释一下: 导入grouppolicy这个模块,后边要用它的方法 定义一个时间变量,每天的备份都会记录在一个以日期命名的文件夹 指定在C盘下某目录新建文件夹 然后指定备份所有组策略到该文件夹 保存并运行: 成功备份,开心 接下来才是重头戏: 打开任务计划程序,点击创建任务(注意是创建任务而不是创建基

在win2008 r2主域控制域上打开“组策略管理”报错“未打开组策略对对象。你可能没有合适的权限”

在win2008 r2主域控制域上打开“组策略管理”报错“未打开组策略对对象.你可能没有合适的权限” 打开组策略管理其它选项提示:找不到指定路径.之前做过的操作:取消域控主机上的共享目录sysvol和netlogon.关闭域控主机上和客户机上的“文件共享和打印机共享”. 现在打开域控主机上的组策略管理报上述两种错误.解决方法:1.C盘下搜索sysvol,找到该目录,恢复共享.2.域控主机及客户机启用文件和打印机共享3.开始---运行---services.msc----重新启动Netlogon服

组策略管理IE兼容性列表

场景:需要将某些内网/外网地址增加到所有客户端的IE兼容性列表中 实现方法:通过注册表修改,做成bat文件,通过组策略下发: 对于现在IT架构健全的公司,这条组策略设置有时候非常必要.网上关于这个的内容比较少,就分享一下自己的做法. 首先找台客户端,以XP+IE8为例子,点开兼容性视图列表,手动加入需添加的网址 接下来打开注册表,兼容性设置的注册表键值位于 HKEY_CURRENT_USER|Software\Microsoft\Internet Explorer\BrowserEmulatio

学习总结-Active Directory 域服务管理-活动目录部署

活动目录部署 一.先决条件 1.1)支持的版本:windows server 2.2)指定DC服务器的计算机名,承载NTDS.DIT数据库,安装ADDS服务,提供LDAP的查询服务,提供kerborse身份验证 2.3)准备IP地址,DNS信息 创建的第一台DC默认是第一个森林的根域,DNS服务器,GC(全局编录服务器) 二.部署过程 GUI: 2.1)添加ADDS角色 2.2)配置DC Sserver Code: 2.3)sconfig工具设置计算机,IP地址,DNS等信息 2.4)使用pow

WindowsAzure Powershell脚本定时启动关机Azure VM

说到windowsazure对于当下不是一个新鲜话题了,但是对于功能来说还是有点期待的,毕竟在云服务的世界里windowsazure还是一个菜鸟了.同样我们都知道,对于windowsazure上的服务操作我们有很多方式可以操作,比如:portal页面,powershell with azure及azure pack等,其他的都是图形界面操作,操作相对简单,今天咱们就说说通过windows azure powershell命令来管理windows azure上的部分服务,powershell操作命

本地策略、域策略

本地策略.域策略一.本地安全策略概述1.本地安全策略:本地安全策略影响本地计算机的安全设置2.打开方法:控制面板 → 管理工具"→ 本地安全策略 → 运行secpol.msc命令3.本地安全策略的分类本地安全策略主要包含:帐户策略和本地策略.4.帐户策略(1)密码策略① 密码必须符合复杂性需求:英文字母大小写.数字.特殊符号四者取其三.② 密码长度最小值:设置范围0-14,设置为0表示不需要密码.③ 密码最长使用期限:默认42天,设置为0表示密码永不过期,设置范围0和999天之间的值.④ 密码最

2. Magicodes框架之路——策略管理

闲话策略 策略,有很多解释.但鄙人个人比较看重这点: 策略,是为了实现某个目标或者针对某些问题而制定的应对方案,以最终实现目标.比如为实现生娃而XXOO. 因此在本框架中,策略(Strategy),则是为了实现某些功能或者处理某些特定问题而制定的通用方案或者规则.粗浅一点,你可以理解为XXOO这种方式,不管用啥姿势,归根到底都离不开活塞运动. 如果还不明白,我们举个文明点的例子,比如发送短信,这是系统中常用的功能,也许短信服务商有很多,实现发短信的方式也有很多,但是对于系统来说,只需要的是发送短

powershell脚本自动检核DAG

经常检查DAG复制是Exchange邮箱管理员日常任务之一,以前每天上去看也挺烦的,尤其数据库比较多的情况下.下图就是"好心"的台北同事经常提醒我检查,我的天,这要是通过EMC看还不累死.还CC我领导,搞的人怪没面子的. 几条需要注意: 一.此脚本放在exchange任一台主机运行即可. 二.Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010 添加Exchange管理模块 三.用Get-MailboxDatabase