Добавление оператора If / If Not в PowerShell - PullRequest
0 голосов
/ 28 января 2020

Мы переходим к сервисам JumpCloud AD, и вместе с этим приходят команды автоматического развертывания из консоли JumpCloud. Я создал скрипт, который работает с Chocolatey для установки некоторых приложений, а те, что не на Chocolatey, у меня они есть в S3-контейнере на AWS, который я привязал к команде Invoke-WebRequest -Uri, чтобы вытащить пакет и скопировать это в папку назначения.

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

Кто-нибудь желает дать мне несколько советов? В настоящее время копируется 7 пакетов, поэтому я предполагаю, что мне понадобятся 7 if операторов.

Вот код того, что я пытался сделать до сих пор:

if ( -not (Test-Path -path "C:\Windows\Temp\JC_ScheduledTasks")) {
     New-Item -Path "C:\Windows\Temp\JC_ScheduledTasks" -ItemType directory
}

Но я Я не уверен, как настроить это для предметов, извлеченных из AWS:

Invoke-WebRequest -Uri "cavo-deploy-virginia.s3.amazonaws.com/QualysCloudAgent.exe" -OutFile "c:\jumpcloud\QualysCloudAgent.exe"

1 Ответ

0 голосов
/ 28 января 2020

Поскольку у вас есть массив файлов, для которых вы хотите выполнить тот же набор команд. Затем используйте простой l oop либо foreach или ForEach-Object.

$DestinationFolder = 'c:\jumpcloud\'                                                       #'

# Define the array here or use Get-Content for a list from a text file
$Files = @('QualysCloudAgent.exe','example1.exe')

foreach ($File in $Files) {

    # Determine the destination for the file
    $DestinationFile = Join-Path $DestinationFolder $File

    # Validate if the file already exists
    if ( -not (Test-Path $DestinationFile)) {
        Invoke-WebRequest -Uri "cavo-deploy-virginia.s3.amazonaws.com/$File" -OutFile $DestinationFile
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...