简单的 Active Directory 和 powershell 组合,问题
Simple Active Directory and powershell combo , issues
好吧,今天我决定要和 AD 玩得开心 PS 所以我基本上决定要编写一个脚本来访问我的 dc 及其 ou 和 sub ou 并获取我所有的 windows 服务器已部署。但是我的凭据给了我以下错误
具有 0 个参数的 FINDALL,已从服务器返回引用。 ... :(
目标是:找到所有 2008 年及更高版本的服务器,即 2012 ....这就是为什么我在计算机中使用版本标签设置为 6.1,即 2008 R2
这是我的代码::
$strFilter = "(&(objectCategory=Computer)(Versiont=6.1))"
$objDomain = New-Object System.DirectoryServices.DirectoryEntry("LDAP://OU=Windows,OU=Servers,OU=Alberta,OU=CA,OU=Shanes Home,dc=speed.speed.shane.net")
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = $objDomain
$objSearcher.PageSize = 1000
$objSearcher.Filter = $strFilter
$objSearcher.SearchScope = "Subtree"
$colProplist = "DNS Name"
foreach ($i in $colPropList){$objSearcher.PropertiesToLoad.Add($i)}
$colResults = $objSearcher.FindAll()
foreach ($objResult in $colResults)
{$objItem = $objResult.Properties; $objItem.name}
谢谢。
提示:我建议使用一个模块来简化 Powershell 对 AD 的管理。您是否有安装了 Active Directory Web 服务的 2008 R2+ 域控制器或 2003+?如果是这样,请使用 Windows Server 2008+ 或 RSAT 中的 ActiveDirectory 模块。如果没有,请尝试 Quest ActiveRoles powershell 模块。
#Import ActiveDirectory module (will fail if it's not available on your server/computer)
Import-Module ActiveDirectory
#I prefer to store the original data first just in case you want to modify or export it later.
$results = Get-ADComputer -Filter { OperatingSystem -Like "Windows Server*" -and OperatingSystemVersion -ge "6.1" } -Property OperatingSystemVersion, OperatingSystemVersion
#Only use `Format-` to display data, never store it. So I split it to a separate line.
$results | Format-Table Name, OperatingSystem -AutoSize
如果要将搜索限制在特定 OU,请将 -SearchBase "OU=Windows,OU=Servers,OU=Alberta,DC=corp,DC=contoso,DC=com"
添加到 Get-ADComputer
命令的末尾。
好吧,今天我决定要和 AD 玩得开心 PS 所以我基本上决定要编写一个脚本来访问我的 dc 及其 ou 和 sub ou 并获取我所有的 windows 服务器已部署。但是我的凭据给了我以下错误
具有 0 个参数的 FINDALL,已从服务器返回引用。 ... :(
目标是:找到所有 2008 年及更高版本的服务器,即 2012 ....这就是为什么我在计算机中使用版本标签设置为 6.1,即 2008 R2
这是我的代码::
$strFilter = "(&(objectCategory=Computer)(Versiont=6.1))"
$objDomain = New-Object System.DirectoryServices.DirectoryEntry("LDAP://OU=Windows,OU=Servers,OU=Alberta,OU=CA,OU=Shanes Home,dc=speed.speed.shane.net")
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = $objDomain
$objSearcher.PageSize = 1000
$objSearcher.Filter = $strFilter
$objSearcher.SearchScope = "Subtree"
$colProplist = "DNS Name"
foreach ($i in $colPropList){$objSearcher.PropertiesToLoad.Add($i)}
$colResults = $objSearcher.FindAll()
foreach ($objResult in $colResults)
{$objItem = $objResult.Properties; $objItem.name}
谢谢。
提示:我建议使用一个模块来简化 Powershell 对 AD 的管理。您是否有安装了 Active Directory Web 服务的 2008 R2+ 域控制器或 2003+?如果是这样,请使用 Windows Server 2008+ 或 RSAT 中的 ActiveDirectory 模块。如果没有,请尝试 Quest ActiveRoles powershell 模块。
#Import ActiveDirectory module (will fail if it's not available on your server/computer)
Import-Module ActiveDirectory
#I prefer to store the original data first just in case you want to modify or export it later.
$results = Get-ADComputer -Filter { OperatingSystem -Like "Windows Server*" -and OperatingSystemVersion -ge "6.1" } -Property OperatingSystemVersion, OperatingSystemVersion
#Only use `Format-` to display data, never store it. So I split it to a separate line.
$results | Format-Table Name, OperatingSystem -AutoSize
如果要将搜索限制在特定 OU,请将 -SearchBase "OU=Windows,OU=Servers,OU=Alberta,DC=corp,DC=contoso,DC=com"
添加到 Get-ADComputer
命令的末尾。