Почему среда virtualenv содержит argparse, distribue и wsgiref? [Дубликат]

Здесь я создал новый PSsession для каждого сервера в списке и использовал команду invoke для таргетинга на этот сервер. Я протестировал его в своей среде, и он успешно устанавливает мое приложение exe с помощью ключа / q на моих удаленных серверах.

Этот метод, однако, не указывает, успешно ли вы выполнили команду на удаленной стороне, вам нужно будет выполнить вход на сервер или выполнить тестовый путь к ожидаемому местоположению установленных файлов для проверки. Кроме того, PSsessions остаются открытыми до тех пор, пока консоль, запускающая команду, не будет закрыта. Если PSsession заканчивается до завершения установки, установка завершится с ошибкой.

Function InstallApp {

    param(
        [parameter(Mandatory=$true)] [String] $ServerNameFilePath,
        [parameter(Mandatory=$true)] [String] $InstallerFilePath,
        [parameter(Mandatory=$true)] [String] $CommandArgument,
        [parameter(Mandatory=$true)] [String] $UserName,
        [parameter(Mandatory=$true)] [String] $Password
    )

    $secpasswd = ConvertTo-SecureString $Password -AsPlainText -Force
    $mycreds = New-Object System.Management.Automation.PSCredential ($UserName, $secpasswd)

    Get-Content $ServerNameFilePath | ForEach-Object {
        $remoteSession = new-PSSession $_ -Credential $mycreds
        Invoke-command -Session $remoteSession -Scriptblock {& ($args[0]) @($args[1])} -ArgumentList $InstallerFilePath,$CommandArgument 
    }
}

InstallApp -ServerNameFilePath $ServerNameFilePath -InstallerFilePath $InstallerFilePath -CommandArgument $CommandArgument -UserName $UserName -Password $Password
15
задан Alex 22 April 2013 в 05:48
поделиться