Множественный foreach в инструкции if - PullRequest
0 голосов
/ 28 мая 2020

Я пытаюсь повторно запустить последовательности задач на нескольких компьютерах из раскрывающегося списка, который содержит имена последовательностей задач, а список компьютеров загружается через текстовый файл.

Я пробовал 2 разных функции, но действие не запускается, нет ошибок или вывода из ISE.

Как я могу этого добиться?

#Removed #foreach ($Computer in $Computers)

#TaskSequences
$W10_PRELOAD_1809 = "W10_PRELOAD_1809"
$W10_UPG_1809 = "W10_UPG_1809"
$W10_UPG_1809_FORCE = "W10_UPG_1809_FORCE"

$Browse_OnClick = {
    $FileName = Select-FileDialog
    $Computers = Get-Content $FileName
    $Install.enabled = $true
}

$TaskSequence = "$W10_PRELOAD_1809", "$W10_UPG_1809", "$W10_UPG_1809_FORCE", "$W7_CHECK_PRELOAD", "$W7_1809_PRELOAD", "$W7_UPG_1809", "$W7_UPG_1809_FORCE"
$TaskSequence | % { $ListApps.Items.Add($_) }

$Install_OnClick= {

    if (!$ListApps.SelectedItem) {[System.Windows.Forms.MessageBox]::Show("Please select a Task-Sequence from the drop down menu")

       }
    else {

        $TaskSequenceItem = $ListApps.SelectedItem.ToString()

      if ($TaskSequenceItem -eq "W10_PRELOAD_1809")
        {
           New-Item -Path \\emeamai-rs08\TEMP\Baseline_FMT\test_PRELOAD_$Computer.txt -Force
        }

        if ($TaskSequenceItem -eq "W10_UPG_1809")
        {
             New-Item -Path \\emeamai-rs08\TEMP\Baseline_FMT\test_UPG_$Computer.txt -Force
        }

        if ($TaskSequenceItem -eq "W10_UPG_1809_FORCE")
        {
          New-Item -Path \\emeamai-rs08\TEMP\Baseline_FMT\test_Force_$Computer.txt -Force
        }

    }
}

1 Ответ

0 голосов
/ 01 июня 2020
$Servers = Get-Content $FileName

ForEach ($Server in $Servers){

    if (!$ListApps.SelectedItem) {[System.Windows.Forms.MessageBox]::Show("Please select a Task-Sequence from the drop down menu")

       }
    else {

        $TaskSequenceItem = $ListApps.SelectedItem.ToString()

      if ($TaskSequenceItem -eq "W10_PRELOAD_1809")
        {
            New-Item -Path \\emeamai-rs08\TEMP\Baseline_FMT\test_PRELOAD_$Server.txt -Force

        }

        if ($TaskSequenceItem -eq "W10_UPG_1809")
        {
             New-Item -Path \\emeamai-rs08\TEMP\Baseline_FMT\test_UPG_$Server.txt -Force
        }

        if ($TaskSequenceItem -eq "W10_UPG_1809_FORCE")
        {
          New-Item -Path \\emeamai-rs08\TEMP\Baseline_FMT\test_Force_$Computer.txt -Force
        }

    }
}
}

...