Вы смотрели не на ту строку.Это строка $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.Он выделит простые синтаксические ошибки, подобные этому.