我获取这些计算机的名称并将它们放入一个数组中。现在我想要做的是将它们转换为字符串数组,以便能够使用Get-ADComputer for
循环或使用foreach
循环检查它们所处的策略(您能推荐使用哪一个)
$global:arrComputers = @()
$computerStrings = Get-ADComputer -Filter 'SamAccountName -like "*Name*"' | Select -Expand Name
foreach ($line in $computerStrings)
{
$a = $line.ToString()
$b = $a.split()
$temp = @{}
$temp = New-Object object
$temp | Add-Member -MemberType "noteproperty" -Name Name -Value $b[0]
$global:arrComputers += $temp
}
$global:arrComputers
这是我想要运行的命令,以检查它们所在的政策
Get-ADComputer "Name" -Properties MemberOf | %{if ($_.MemberOf -like "*POLICY_NAME*") {Write-Host "ON"} else {Write-Host "NOT ON"}}
我已经测试了两个代码块,他们正在解决的问题就是将该数组转换为字符串数组。我还尝试了ToString()
能够使用Get-ADComputer "Name"
答案 0 :(得分:1)
$computers = @();
Get-ADComputer -Filter * -Properties Name,MemberOf | %{if ($_.MemberOf -like "*computer_group_name*") { $computers += $_.Name } }
说明: 第一行,定义一个数组$ computers 第二行,查询计算机对象属性的名称Name,MemberOf 然后,$ _。MemberOf包含字符串中的组名,将Name属性(字符串)添加到您在第1行定义的字符串数组