首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell运行簿[Invoke-ASCmd],用于xmla文件的FileNotFoundException

Powershell运行簿[Invoke-ASCmd],用于xmla文件的FileNotFoundException
EN

Stack Overflow用户
提问于 2019-06-13 13:03:31
回答 1查看 322关注 0票数 2

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

我的代码如下所示:

代码语言:javascript
复制
$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 

使用以下代码时:

代码语言:javascript
复制
$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)

我知道这个错误:

当尝试这个代码时:

代码语言:javascript
复制
$byteArray = New-Object Byte[] $blob.Length
$file = $blob.ICloudBlob.DownloadToByteArray($byteArray, 0)

我知道这个错误:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-13 14:50:26

修起来容易。

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

相反,使用-Query参数将文件的内容传递给Invoke-ASCmd,例如:

代码语言:javascript
复制
...

$query = $blob.ICloudBlob.DownloadText()
Invoke-ASCmd `
    -Database $AnalysisServiceDatabase `
    -Query $query `
    -server $AnalysisServiceServer 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56581170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档