安装失败或安装完成

时间:2020-03-27 14:48:49

标签: powershell

我试图进行设置

public async Task<string> ReadObjectData(string filename)
{
    string accessKey = configuration.GetValue<string>("AppSettings:accessKeyID");
    string secretKey = configuration.GetValue<string>("AppSettings:secretAccessKey");
    string bucketName = configuration.GetValue<string>("AppSettings:bucketName");
    string keyName = filename;
    RegionEndpoint bucketRegion = RegionEndpoint.USEast1;
    IAmazonS3 client;
    client = new AmazonS3Client(accessKey, secretKey, bucketRegion);
    string responseBody = "";
    try
    {
        GetObjectRequest request = new GetObjectRequest
        {
            BucketName = bucketName,
            Key = keyName
        };
        using (GetObjectResponse response = await client.GetObjectAsync(request))
        using (Stream responseStream = response.ResponseStream)
        using (StreamReader reader = new StreamReader(responseStream))
        {
            string title = response.Metadata["x-amz-meta-title"]; 
            string contentType = response.Headers["Content-Type"];
            Console.WriteLine("Object metadata, Title: {0}", title);
            Console.WriteLine("Content type: {0}", contentType);

            responseBody = reader.ReadToEnd(); // Now you process the response body.
        }

    }
    catch (AmazonS3Exception e)
    {
        Console.WriteLine("Error encountered ***. Message:'{0}' when writing an object", e.Message);
    }
    catch (Exception e)
    {
        Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message);
    }
    return responseBody;
}

但是现在无论安装什么路径,它都告诉我安装成功,即使我断开路径,它仍然会告诉我安装成功。我想知道我做错了什么,或者我还能做些什么而导致这对我不起作用,我尝试了-ne 0并得到了相同的结果。

2 个答案:

答案 0 :(得分:0)

您是否要检查启动进程的命令是否已完成,而不是进程本身。您可以检查注册表以检查是否成功安装了程序。

$software = "My software name";
$installed = (Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Where { $_.DisplayName -eq $software }) -ne $null

If(-Not $installed) {
    Write-Host "'$software' NOT is installed.";
} else {
    Write-Host "'$software' is installed."
}

答案 1 :(得分:0)

您为msiexec使用了错误的错误代码。

0->安装成功完成

1602->用户取消了操作。

1603->安装过程中出现致命错误。

1604->安装已暂停/未完成。

此处提供了msiexec退出代码的完整列表:http://docs.netecm.ch/launcher/troubleshooting/msi-exit-codes.html

固定代码:

& msiexec.exe "filepath.msi" /qn
switch ($LastExitCode){
  0 {"Installation completed successfully "}
 1602 {" Operation cancelled by the user."}
 1603 {"Fatal error during the installation."}
 1604 {" Installation suspended/incomplete"}
}