0
嘗試獲取此PowerShell腳本以檢查域中所有PC上的文件中的特定條目,並將具有指定OLD服務器名稱的文件寫入文件,然後運行替換隻有具有找到價值的電腦。我可以通過這樣做到每臺PC,因爲我知道這隻適用於具有匹配數據的那些數據,但是我必須運行停止服務,然後在每臺PC上啓動服務,並在其中進行更改,但我不想在域中的每臺PC上停止/啓動服務。我已經儘可能將所有PC輸出到一個文件,但不知道如何將它結合到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導出到完全不同的文本文件?爲什麼在更換之前需要停止服務(哪個服務?),然後再重新啓動?你想要做什麼「改變」?請退後一步,描述您嘗試解決的實際問題,而不是您認爲的解決方案。 –