Я запрашиваю список подключенных к домену компьютеров с помощью PowerShell, как показано ниже:
dsquery.exe computer > "C:\testfolder\host.txt"
Вывод работает, как ожидалось, но как показано ниже:
"CN=WIN-20CCF3DC8D,OU=Domain Controllers,DC=hosting,DC=xyz,DC=com"
"CN=WIN-20XYS8CM7D,OU=Computers,DC=hosting,DC=xyz,DC=com"
Здесь мне нужно сделать следующее.
Либо:
Мне нужно отредактировать этот файл (используя PowerShell): удалить все " удалите все записи, в которых OU не равно Computers.
Или
Мне нужно получить содержимое CN в строку, но без ".
Пробовали использовать
$contents = Get-Content C:\testfolder\host.txt | Foreach-Object {$_ -replace '"', ""}
но, похоже, не работает. Может ли кто-нибудь помочь мне в этом?
Это должно работать:
$contents = Get-Content C:\testfolder\host.txt | where { $_ -match "OU=Computers" } | Foreach-Object {$_ -replace '"', ""}
затем echo $contents
дает:
CN=WIN-20XYS8CM7D,OU=Computers,DC=hosting,DC=xyz,DC=com
Это возвращает только строки, содержащие OU=Computers
и удаляет двойные кавычки из этих строк.