Как изменить тип запуска и задачу для запуска / остановки служб из файла CSV? - PullRequest
0 голосов
/ 30 октября 2018

У меня есть следующий CSV-файл:

Server,Service,Startup Type,Task
server1,SQL Server Analysis Services (MSSQLSERVER),automatic,start
server2,"SQL Server Analysis Services (MSSQLSERVER), SQL Server Analysis Services (MSSQLSERVER) CEIP",Manual,stop

У меня есть следующий скрипт, но сейчас он использует встроенный Stop-Service или Start-Service.

Я хочу позволить гибко определять все параметры в файле csv, и служба запускается / останавливается на основе того, что имеет файл csv, а также устанавливает startup type в другое значение startup type, если оно изменилось / отличается от файла CSV и текущего состояния на сервере (ах).

$csvFile = Import-CSV .\SSAS_services.csv

ForEach ($Server in $csvFile)
{   Invoke-Command -ScriptBlock { Stop-Service $args[0] } -ComputerName $Server.Server -ArgumentList $Server.Service.Split(",")
}
Start-Sleep -Seconds 60

ForEach ($service in (($csvFile.Count - 1)..0))
{   Invoke-Command -ScriptBlock { Stop-Service $args[0] } -ComputerName $csvFile[$service].Server -ArgumentList $csvFile[$service].Service.Split(",")  
}

1 Ответ

0 голосов
/ 31 октября 2018

Вы можете использовать $using для чтения локальной переменной в удаленном сеансе, см. Раздел about_remote_variables .

Я предполагаю, что вы хотите сделать следующее на удаленных компьютерах:

  • Остановить услугу
  • Адаптируйте тип запуска
  • Запустить сервис

Таким образом, код должен соответствовать. выглядеть:

$rows = Import-CSV .\SSAS_services.csv

ForEach ($row in $rows)
{   
    # Stop the service on the remote machine
    Invoke-Command -ScriptBlock { Stop-Service $using:row.Service } -ComputerName    $row.Server -ArgumentList $row
    Start-Sleep 60
    Invoke-Command -ScriptBlock { 
         # Set the startup type on the remote machine
         Set-Service $using:row.Service -StartupType $using:row."Startup Type"
         Start-Service $using:row.Service 
    } -ComputerName    $row.Server -ArgumentList $row   
}

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...