Powershell Runbook [Invoke-ASCmd],xmla文件的FileNotFoundException

时间:2019-06-13 13:03:31

标签: azure powershell ssas azure-runbook

我试图制作一个脚本,该脚本通过Powershell Runbook为SSAS创建自动分区,但是每当我尝试读取xmla文件时,都会出现以下错误: enter image description here

enter image description here

我的代码如下:

let search = [2342, 1900, 1800, 2310]

search = search.map((el, i) => {
  if (el > 2200) return i;
}).filter(el => el !== undefined);

console.log(search);

使用以下代码时:

$StorageAccount = Get-AzureRmStorageAccount -ResourceGroupName $ResourceGroupName -Name $StorageAccountName

$blob = Get-AzureStorageBlob -Context $StorageAccount.Context -Container "Database name" -Blob "CreateNewPartition.xmla"

$file = $blob.ICloudBlob.DownloadText()
Invoke-ASCmd `
    -Database $AnalysisServiceDatabase `
    -InputFile $file `
    -server $AnalysisServiceServer 

我收到此错误: enter image description here

在尝试此代码时:

$memStream = New-Object System.IO.MemoryStream
$blob.ICloudBlob.DownloadToStream($memStream)
$readStream = New-Object System.IO.StreamReader($memStream, [System.Text.Encoding]::Unicode)
$memStream.Position = 0
$file = ($readStream.ReadToEnd() -replace "`0",'' | ConvertFrom-Json)

我收到此错误: enter image description here

1 个答案:

答案 0 :(得分:2)

轻松修复。

在第一个示例中,您正在正确地从Blob中读取文件的内容。但是,C:\arst.xmla期望使用文件路径(例如.xmla),并且无法处理-Query文件的原始内容

相反,请使用Invoke-ASCmd参数将文件内容传递给... $query = $blob.ICloudBlob.DownloadText() Invoke-ASCmd ` -Database $AnalysisServiceDatabase ` -Query $query ` -server $AnalysisServiceServer ,例如:

iconEnabledColor