Сканирование компьютеров из Active Directory для учетных записей локальных администраторов - PullRequest
0 голосов
/ 11 мая 2018

Мне нужно отсканировать Active Directory и передать информацию в скрипт проверки локального администратора.Но по какой-то причине этот скрипт продолжает сбой.Ошибка на

$Group = $computer.psbase.children.find(”Administrators”)

Вот скрипт

 ################################################
 #Start looking for windows 10 & computers 7    #
 ################################################
$root = {Get-ADComputer -Filter * | Where-Object {$_.Name -like "win10*"} | Select -Property Name
Get-ADComputer -Filter * | Where-Object {$_.Name -like "*win7"} | Select -Property Name}
foreach ($server in $root)
 {
$computer = [ADSI](”WinNT://” + "$server" + “,computer”)
$Group = $computer.psbase.children.find(”Administrators”)
$members = ($Group.psbase.invoke(”Members”) | %{$_.GetType().InvokeMember(”Adspath”, ‘GetProperty’, $null, $_, $null)}) -  replace ('WinNT://DOMAIN/' + $server + '/'), '' -replace ('WinNT://DOMAIN/', 'DOMAIN\') -replace ('WinNT://', '')
 $members  }

1 Ответ

0 голосов
/ 16 мая 2018

Вы смотрели не на ту строку.Это строка $members =, на которую она жалуется.У вас есть два пробела между дефисом и вашей первой заменой:

-  replace ('WinNT://DOMAIN/' + $server + '/')

Там не должно быть пробелов.Попробуйте это:

$root = {Get-ADComputer -Filter * | Where-Object {$_.Name -like "win10*"} | Select -Property Name
Get-ADComputer -Filter * | Where-Object {$_.Name -like "*win7"} | Select -Property Name}
foreach ($server in $root)
{
    $computer = [ADSI](”WinNT://” + "$server" + “,computer”)
    $Group = $computer.psbase.children.find(”Administrators”)
    $members = ($Group.psbase.invoke(”Members”) | %{$_.GetType().InvokeMember(”Adspath”, ‘GetProperty’, $null, $_, $null)}) -replace ('WinNT://DOMAIN/' + $server + '/'), '' -replace ('WinNT://DOMAIN/', 'DOMAIN\') -replace ('WinNT://', '')
    $members
}

Если вы этого еще не сделали, попробуйте использовать Windows PowerShell ISE, входящий в состав Windows, для написания сценариев PowerShell.Он выделит простые синтаксические ошибки, подобные этому.

...