PS-Commands/Scripts/Telegraf-Replace-Win-Config.ps1

40 lines
No EOL
2 KiB
PowerShell

$local_path = "D:\Telegraf-Replace-Win-Config"
$remote_path = "D:\Telegraf"
$csv = Get-Content "$local_path\win-all-nt.csv"
$conf = Get-Content "$local_path\telegraf.conf" -Raw -Encoding UTF8
$srv_name_list = ($csv | ConvertFrom-Csv -Delimiter ",").name
foreach ($srv in $srv_name_list) {
#$srv = "tvsds-polit0110.delta.sbrf.ru"
$session = New-PSSession $srv -ErrorAction Ignore
if ($session) {
Invoke-Command -Session $session {
$name = (Get-WmiObject -Class Win32_ComputerSystem).Name+"."+(Get-WmiObject -Class Win32_ComputerSystem).Domain
$local_conf = "$using:remote_path\telegraf.conf"
$remote_conf = $using:conf
if (Test-Path $local_conf) {
Write-Host "Telegraf path to $name - true" -ForegroundColor Green
Get-Service telegraf | Stop-Service
#(Get-Filehash -Algorithm SHA256 $local_conf).Hash
$remote_conf | Out-File $local_conf -Encoding UTF8
#(Get-Filehash -Algorithm SHA256 $local_conf).Hash
Get-Service telegraf | Start-Service -ErrorAction Ignore
$status = Get-Service telegraf | Select-Object
if ($status.Status -eq "Stopped") {
Get-Service telegraf | Start-Service -ErrorAction Ignore
$status = $(Get-Service telegraf | Select-Object)
}
if ($status.Status -eq "Stopped") {
Write-Host "Telegraf service $($status.Status) to $($using:srv)" -ForegroundColor Red
} else {
Write-Host "Telegraf service $($status.Status) to $($using:srv)" -ForegroundColor Green
}
} else {
Write-Host "Telegraf path to $name - false" -ForegroundColor Red
}
}
Disconnect-PSSession $session > $null
Remove-PSSession $session > $null
} else {
Write-Host "Connect to $srv - false" -ForegroundColor Red
}
}