使用Azure功能输出文件

时间:2017-01-24 14:08:58

标签: powershell azure-functions

我正在尝试使用Azure功能。基本上我的用例是使用GUID调用函数作为GET参数,具有下载WIX工具包DLL和MSI文件的函数,更新MSI文件中的参数,以及将该文件返回给函数的调用者(作为下载)例如提示)。

我大部分时间都在那里,只需要一些帮助就可以获得下载提示/发送,我的代码到目前为止:

$urlWix = "http://domain/wix.dll"
$outputWix = "$Env:TEMP\wix.dll"

Invoke-WebRequest -Uri $urlWix -OutFile $outputWix
try{Add-Type -Path $outputWix}catch{$Null}
$urlMSI = "http://domain/file.msi"
$outputFile = "$Env:TEMP\file.msi"

Invoke-WebRequest -Uri $urlMSI -OutFile $outputFile

$oDatabase = New-Object Microsoft.Deployment.WindowsInstaller.Database($outputFile,[Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode]::Direct);

$sSQLQuery = "SELECT * FROM Property WHERE Property= 'MYPROPERTY'"

[Microsoft.Deployment.WindowsInstaller.View]$oView = $oDatabase.OpenView($sSQLQuery)
$oView.Execute()

$oRecord = $oView.Fetch() 
$oRecord.SetString("Value","MyCustomValue")
$oView.Modify([Microsoft.Deployment.WindowsInstaller.ViewModifyMode]::Update,$oRecord)

$oView.Close();
$oDatabase.Dispose();
$file = get-item $outputFile
write-output $file

1 个答案:

答案 0 :(得分:1)

不幸的是,由于内容类型问题,这在powershell中是不可能的。您可以通过C#,F#或Node(isRaw)函数执行此操作。问题是您需要通过JSON响应格式指定标头,该格式会将任何非文本数据转换为base64字符串。

如果您想通过powershell发送文本文件,可以:

{{1}}