Попытка получить этот скрипт powershell для проверки конкретной записи в файле на всех ПК в моем домене и тех, у которых указанное имя OLD-сервера выписано в файл, затем запустите замену на только компьютеры с найденным значением. Я могу получить его, сделав это на каждом ПК, поскольку я знаю, что применим только к тем, у кого есть соответствующие данные, однако мне нужно запустить службу остановки, а затем запустить сервис на каждом ПК, где я делаю изменения, и я не хочу остановить/запустить службу на каждом ПК в домене. Я дошел до того, что все ПК выведены в файл, но не уверены, как их объединить в заявление IF.Найти все компьютеры с конкретным текстовым файлом
$path = "C:\myfile.txt"
$find = "OldServerName"
$replace = "NewServerName"
$adcomputers = "C:\computers.txt"
$changes = "C:\changes.txt"
Get-ADComputer -Filter * | Select -Expand Name | Out-File -FilePath .\computers.txt
#For only computers that need the change
Stop-Service -name myservice
(get-content $path) | foreach-object {$_ -replace $find , $replace} | out-file $path
Start-Service -name myservice
Я не понимаю, чего вы пытаетесь достичь. Какая цель заменила имя сервера в текстовом файле, когда вы нигде не используете ни старое, ни новое имя? Почему вы экспортируете все вычислительные имена из AD в совершенно другой текстовый файл? Зачем вам нужно прекратить услугу (услугу?), Прежде чем выполнять замену и запустить ее снова? Какое «изменение» вы пытаетесь сделать? Пожалуйста, сделайте шаг назад и опишите фактическую проблему, которую вы пытаетесь решить, вместо того, что вы считаете решением. –