Итак, у меня есть скрипт powershell, который я играю с этим, и я хотел бы попросить помощи сообщества. Я должен предвосхитить, что я не всегда лучший в сообщении того, что я пытаюсь сделать, отчасти потому, что у меня нет опыта программирования, поэтому, пожалуйста, потерпите меня и задавайте вопросы / исправляйте меня, если я использую неправильные слова, чтобы объяснить, что я имею в виду.
С учетом сказанного, вот что я пытаюсь сделать:
при увеличении как служб, так и типов запуска:
остановка службы A ($ services) на сервере X ($ rebootingServer)
Отключить службу A ($ services) на сервере X ($ rebootingServer)
Учитывая: мы знаем, что служба A отключена на сервере Y до запуска сценария
Включить службу A на сервере Y на основе списка текстовых файлов $ startuptypes
- Запуск службы A на сервере Y
- Промывать и повторять, пока $ services и $ startuptypes не будут в конце каждого списка
Итак, предположим, что $ services имеет:
bits
appmgmt
и $ startuptypes имеет:
Automatic
Manual
я хочу, чтобы они применялись соответственно (биты> автоматическое приложение> руководство)
Вот что у меня есть:
$services = Get-Content "C:\TEMP\services.txt"
$Startuptypes = Get-Content "C:\TEMP\StartupTypes.txt"
$RebootingServer = Read-Host 'Name of the server that you are bringing down'
$FailoverServer = Read-Host 'Name of the server it is failing over to'
#foreach ($service in $services && $Startuptype in $Startuptypes) {
Invoke-Command -ComputerName $RebootingServer -ArgumentList $service - ScriptBlock {param($service) Stop-Service $service}
Start-Sleep -s 3
Invoke-Command -ComputerName $RebootingServer -ArgumentList $service - ScriptBlock {param($service) set-service $service -StartupType Disabled}
Start-Sleep -s 10
Invoke-Command -ComputerName $FailoverServer -ArgumentList $service $StartupType -ScriptBlock {param($service,$startuptype) Set-Service $service -StartupType $startuptype}
Start-Sleep -s 3
Invoke-Command -ComputerName $FailoverServer -ArgumentList $service - ScriptBlock {param($service) Start-Service $service}
Start-sleep -s 10
}
Оператор 'for each' - это псевдокод того, что я хочу, но пока не уверен, существует ли он или как его написать соответствующим образом. Я даже не знаю, как это будет правильно называться. Несколько условий? Кроме того, как бы я правильно написал, что я пытаюсь достичь? Спасибо за любую помощь в продвинутом.