Invoke-ASCmd
使数据库管理员能够针对 Analysis Services 实例执行 XMLA 脚本、TMSL 脚本、数据分析表达式 (DAX) 查询、多维表达式 (MDX) 查询或数据挖掘扩展插件 (DMX) 语句。
语法
Invoke-ASCmd
[-ProgressAction <ActionPreference>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-ASCmd
[-Database <String>]
[-Query <String>]
[-ConnectionString <String>]
[-QueryTimeout <Int32>]
[-ConnectionTimeout <Int32>]
[-TraceFile <String>]
[-Variables <String[]>]
[-TraceTimeout <Int32>]
[-TraceLevel <TraceLevelOption>]
[-TraceFileFormat <TraceFileFormatOption>]
[-TraceFileDelimiter <String>]
[-Server <String>]
[-Credential <PSCredential>]
[-ServicePrincipal]
[-ApplicationId <String>]
[-TenantId <String>]
[-CertificateThumbprint <String>]
[-ProgressAction <ActionPreference>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-ASCmd
[-Database <String>]
[-ConnectionString <String>]
[-InputFile <String>]
[-QueryTimeout <Int32>]
[-ConnectionTimeout <Int32>]
[-TraceFile <String>]
[-Variables <String[]>]
[-TraceTimeout <Int32>]
[-TraceLevel <TraceLevelOption>]
[-TraceFileFormat <TraceFileFormatOption>]
[-TraceFileDelimiter <String>]
[-Server <String>]
[-Credential <PSCredential>]
[-ServicePrincipal]
[-ApplicationId <String>]
[-TenantId <String>]
[-CertificateThumbprint <String>]
[-ProgressAction <ActionPreference>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-ASCmd
[-Server <String>]
[-Credential <PSCredential>]
[-ServicePrincipal]
[-ApplicationId <String>]
[-TenantId <String>]
[-CertificateThumbprint <String>]
[-ProgressAction <ActionPreference>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-ASCmd
[-Server <String>]
[-Credential <PSCredential>]
[-ServicePrincipal]
[-ApplicationId <String>]
[-TenantId <String>]
[-CertificateThumbprint <String>]
[-ProgressAction <ActionPreference>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
说明
使数据库管理员能够针对 Analysis Services 实例执行 XMLA 脚本、TMSL 脚本、数据分析表达式 (DAX) 查询、多维表达式 (MDX) 查询或数据挖掘扩展插件 (DMX) 语句。
这些查询或脚本在输入文件中执行的 cmdlet。
传递的脚本是 XMLA 命令,并且支持以下命令:Alter、Backup、Batch、BeginTransaction、Cancel、ClearCache、CommitTransaction、Create、Delete、DesignAggregations、Drop、Insert、Lock、MergePartitions、NotifyTableChange、Process、Restore、RollbackTransaction、Statement(用于执行 MDX 查询和 DMX 语句)、Subscribe、Synchronize、Unlock、Update、UpdateCells。
此脚本还将接受旨在针对兼容模式为 1200 或更高版本的表格数据库执行的 JSON 命令。
Module requirements: version 21+ on PowerShell 5.1; version 21 (recent preview) or version 22+ on PowerShell 7.x.
示例
调用发现
Invoke-ASCmd -Server:localhost -Query "<Discover xmlns='urn:schemas-microsoft-com:xml-analysis'><RequestType>DBSCHEMA_CATALOGS</RequestType><Restrictions /><Properties /></Discover>"
调用发现 2
Invoke-ASCmd -Database "Adventure Works DW 2008R2" -Query "<Discover xmlns='urn:schemas-microsoft-com:xml-analysis'><RequestType>DISCOVER_DATASOURCES</RequestType><Restrictions></Restrictions><Properties></Properties></Discover>"
调用选择
Invoke-ASCmd -Database "Adventure Works DW 2008R2" -Query "SELECT {[Measures].[Internet Sales Amount]} ON COLUMNS, BOTTOMCOUNT(NONEMPTY(DESCENDANTS( [Customer].[Customer Geography].[All Customers], [Customer].[Customer Geography].[Customer]), ( [Measures].[Internet Sales Amount] ) ), 10, ( [Measures].[Internet Sales Amount] )) ON ROWS FROM [Adventure Works] WHERE ( [Date].[Calendar].[Calendar Year].&[2008] )"
调用选择 2
Invoke-ASCmd -Database "Adventure Works DW 2008R2" -Query "SELECT MODEL_CATALOG, MODEL_NAME, ATTRIBUTE_NAME, NODE_NAME FROM [Forecasting].CONTENT"
使用 xmla 文件调用
Invoke-ASCmd -InputFile C:\MyFolder\DiscoverConnections.xmla
<# DiscoverConnections.xmla is as follows:
<Discover xmlns="urn:schemas-microsoft-com:xml-analysis">
<RequestType>DISCOVER_CONNECTIONS</RequestType>
<Restrictions />
<Properties>
<PropertyList>
<Content>Data</Content>
</PropertyList>
</Properties>
</Discover>
#>
参数
-ApplicationId
服务主体的应用程序 ID。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-CertificateThumbprint
服务主体的证书指纹。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Confirm
在运行 cmdlet 之前,提示你进行确认。
类型: | SwitchParameter |
别名: | cf |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-ConnectionString
指定连接字符串。
请注意,在指定此属性时,其他连接级别属性(如服务器、数据库等)将被忽略,因此这些属性必须包含在连接字符串中。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-ConnectionTimeout
指定与 Analysis Services 实例的连接超时前的秒数。超时值必须是介于 0 和 65534 之间的整数。 如果指定了 0,则连接尝试不会超时。
类型: | Int32 |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Credential
如果指定此参数,则传递的用户名和密码将用于连接到指定的 Analysis Server 实例。 如果未指定运行该工具的用户的默认 Windows 帐户,则使用凭据。
类型: | PSCredential |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Database
指定要对其执行 MDX 查询或 DMX 语句的数据库。 当 cmdlet 执行 XMLA 脚本时,将忽略数据库参数,因为数据库名称嵌入到 XMLA 脚本中。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-InputFile
标识包含 XMLA 脚本、MDX 查询、DMX 语句或 TMSL 脚本(以 JSON 为单位)的文件。 在使用 Invoke-AsCmd 时,必须为 InputFile 或 *Query *参数指定值。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-ProgressAction
确定 PowerShell 如何响应脚本、cmdlet 或提供程序生成的进度更新,例如由 Write-Progress cmdlet 生成的进度栏。 Write-Progress cmdlet 创建显示命令状态的进度栏。
类型: | ActionPreference |
别名: | proga |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Query
直接在命令行上指定实际的脚本、查询或语句,而不是在文件中指定。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-QueryTimeout
指定查询超时前的秒数。如果未指定超时值,则查询不会超时。超时必须是介于 1 和 65535 之间的整数。
类型: | Int32 |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Server
(可选)指定要连接到的服务器实例(如果当前不在 SQLAS 提供程序目录中)。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-ServicePrincipal
指定此连接使用服务主体。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-TenantId
服务主体的租户 ID。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-TraceFile
标识在执行 XMLA 脚本、MDX 查询或 DMX 语句时接收 Analysis Services 跟踪事件的文件。 如果文件已存在,则会自动覆盖该文件(使用 -TraceLevel:Duration 和 -TraceLevel:DurationResult 参数设置创建的跟踪文件除外)。
包含空格的文件名必须用引号(“)括起来。
如果文件名无效,则会生成错误消息。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-TraceFileDelimiter
将 csv 指定为使用 -TraceFileFormat 参数的跟踪文件的格式时,将单个字符指定为跟踪文件分隔符。
默认值为 |(管道或垂直条)。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-TraceFileFormat
指定 -TraceFile 参数的文件格式(如果指定此参数)。
默认值为“Csv”。
类型: | TraceFileFormatOption |
接受的值: | Csv, Text |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-TraceLevel
指定在跟踪文件中收集和记录哪些数据。 可能的值为 High、Medium、Low、Duration、DurationResult。
类型: | TraceLevelOption |
接受的值: | High, Medium, Low, Duration, DurationResult |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-TraceTimeout
指定 Analysis Services 引擎在结束跟踪之前等待的秒数(如果指定 -TraceFile 参数)。
如果在指定时间段内未记录任何跟踪消息,则跟踪被视为已完成。
默认跟踪超时值为 5 秒。
类型: | Int32 |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Variables
指定其他脚本变量。 每个变量都是一个名称-值对。 如果值包含嵌入空格或控制字符,则必须用双引号括起来。 使用 PowerShell 数组指定多个变量及其值。
类型: | String[] |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-WhatIf
显示 cmdlet 运行时会发生什么情况。 cmdlet 未运行。
类型: | SwitchParameter |
别名: | wi |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
输入
PSObject
输出
string
备注
在所有 Analysis Services 实例(包括 PowerBI Premium)上受支持