【发布时间】:2014-11-28 15:10:47
【问题描述】:
我正在尝试查找我们环境中的任何服务器是否尚未应用于特定组。 我有一个组列表,我们用来在特定的白天/夜晚/手动等上修补我们的 Windows 服务器...,我正在尝试检查我们环境中的任何服务器是否被错误地放在域中并错过了这一步 - 没有有一个修补组成员。
到目前为止我有:
$servers = get-adcomputer -Filter 'ObjectClass -eq "Computer"' -properties *
foreach ($server in $servers) {
if($server.OperatingSystem -match "Windows Server 2008" -or $server.operatingsystem match "Windows Server 2003" ) {
$server.Name, $server.OperatingSystem, $server.memberof
}
}
上面列出了我们环境中运行 Windows 的所有服务器以及分配给该计算机对象的成员。假设我们有 3 个特定的小组来管理这些服务器的修补方式。
组 1、组 2、组 3
上面脚本中的每个服务器都应该返回带有 group1、group2 或 group3 的服务器。我想返回所有未应用 group1、group2 或 group3 的服务器。
请有人指出正确的方向。
谢谢。
【问题讨论】:
-
有人会打败我,但您可以将您的组组合成一个正则表达式过滤器,如答案here。此外,我会缩短您的
If,就像if($server.OperatingSystem -match "Windows Server 200[38]"一样,因为它将匹配 2003 年和 2008 年。您在第二个匹配关键字上缺少连字符 -
也感谢您的评论,每一个提示和建议都有帮助!