我试图创建一个脚本,通过Powershell运行簿为SSAS创建自动解析,但是每当我试图读取xmla文件时,我都会得到以下错误:


我的代码如下所示:
$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 使用以下代码时:
$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)我知道这个错误:

当尝试这个代码时:
$byteArray = New-Object Byte[] $blob.Length
$file = $blob.ICloudBlob.DownloadToByteArray($byteArray, 0)我知道这个错误:

发布于 2019-06-13 14:50:26
修起来容易。
在第一个示例中,您正在正确地从blob读取文件的内容。但是,-InputFile需要一个文件路径(例如C:\arst.xmla),并且无法处理.xmla文件的原始内容。
相反,使用-Query参数将文件的内容传递给Invoke-ASCmd,例如:
...
$query = $blob.ICloudBlob.DownloadText()
Invoke-ASCmd `
-Database $AnalysisServiceDatabase `
-Query $query `
-server $AnalysisServiceServer https://stackoverflow.com/questions/56581170
复制相似问题