Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用PowerShell创建SSRS数据驱动订阅_C#_Powershell_Reporting Services - Fatal编程技术网

C# 使用PowerShell创建SSRS数据驱动订阅

C# 使用PowerShell创建SSRS数据驱动订阅,c#,powershell,reporting-services,C#,Powershell,Reporting Services,编辑:将整个已转换的c#添加到存在问题的PowerShell中 我正在尝试将MSDN C#代码转换为PowerShell脚本。 这是MSDN 我几乎完成了转换,但我在最后一行遇到了一些问题 这是完整的错误消息:使用“7”参数调用“CreateDataDrivenSubscription”时出现异常:“生成XML文档时出错。” 下面是创建数据驱动订阅中第7个参数的代码片段 下面是PowerShell脚本: $Parameters | Add-Member -type NoteProperty -N

编辑:将整个已转换的c#添加到存在问题的PowerShell中

我正在尝试将MSDN C#代码转换为PowerShell脚本。 这是MSDN

我几乎完成了转换,但我在最后一行遇到了一些问题

这是完整的错误消息:使用“7”参数调用“CreateDataDrivenSubscription”时出现异常:“生成XML文档时出错。”

下面是创建数据驱动订阅中第7个参数的代码片段

下面是PowerShell脚本:

$Parameters | Add-Member -type NoteProperty -Name $EMPID.ParameterName -Value $EMPID.FieldAlias

$ReportYear = New-Object $ParameterValue
$ReportYear.Name = "ReportYear"
$ReportYear.Value = "2017"

$Parameters | Add-Member -type NoteProperty -Name $ReportYear.Name -Value $ReportYear.Value

$ReportMonth = New-Object $ParameterValue

$ReportMonth.Name = "ReportMonth"
$ReportMonth.Value = "6"

$Parameters | Add-Member -Type NoteProperty -Name $ReportMonth.Name -Value $ReportMonth.Value


$SubscriptionID = $objWebServerProxy.CreateDataDrivenSubscription($Report,$Settings,$arrDataRetrievalPlan,$Description,$EventType,$MatchData,$Parameters)
这是C代码

你能告诉我我错过了转换的什么地方吗

这是我的全部转换脚本

$URI = "URI"

$objWebServerProxy = New-WebServiceProxy -Uri $URI -UseDefaultCredential -ErrorAction Stop

$Namespace = $objWebServerProxy.GetType().Namespace
$ExtensionSettigs = ($Namespace + '.ExtensionSettings')
$ParameterValueOrFieldReference = ($Namespace + '.ParameterValueOrFieldReference')
$ParameterFieldReference = ($Namespace + '.ParameterFieldReference')
$ParameterValue = ($Namespace + '.ParameterValue')
$Datasource = ($Namespace + '.DataSource')
$DataSourceDefinition = ($Namespace + '.DataSourceDefinition')
$Field = ($Namespace + '.Field')
$CredentialRetrievalEnum = ($Namespace + '.CredentialRetrievalEnum')
$DataSetDefinition = ($Namespace + '.DataSetDefinition')
$QueryDefinition = ($Namespace + '.QueryDefinition')
$DataSetDefinition = ($Namespace +'.DataSetDefinition')
$DataRetrievalPlan = ($Namespace+'.DataRetrievalPlan')
$ScheduleReference = ($Namespace+'.ScheduleReference')

$NameSharedSchedule="Mike_Test";
$NeverExpireSchedule= $objWebServerProxy.ListSchedules([System.Management.Automation.Language.NullString]::Value) | where {$_.Name -eq "$NameSharedSchedule"}
$NeverExpireScheduleID = $NeverExpireSchedule.scheduleid;
$NeverExpireDescription = $NeverExpireSchedule.Description;
$NeverExpireDefinition = $NeverExpireSchedule.Definition;
#Write-Host "Found Shared Schedule: '$NameSharedSchedule' with id $NeverExpireScheduleID and definition $NeverExpireDescription";

$NeverExpireScheduleRef =New-Object $ScheduleReference
$NeverExpireScheduleRef.ScheduleID=$NeverExpireScheduleID;

#$Report = "/ForMigration/Subscription_Test/SSRSRationalization_ExecutionLog_LastEightDays"
$Report = "/Gayatree/GTest/ExecutionLog_LastEightDays"
$Description = "My new Data Driven Subscription"

$Settings = New-Object $ExtensionSettigs

$Settings.Extension = "Report Server Email";

$ExtensionParams = New-Object $ParameterValueOrFieldReference

#$ExtensionParams.ParameterValueOrFieldReference ='8'



$To = New-Object $ParameterFieldReference 
$To.ParameterName = "TO"
$To.FieldAlias = "Email"

$ExtensionParams | Add-Member -type NoteProperty -name $To.ParameterName -Value $To.FieldAlias

$ReplyTo = New-Object $ParameterValue
$ReplyTo.Name = "ReplyTo"
$ReplyTo.Value = "Email"

$ExtensionParams | Add-Member -type NoteProperty -name $ReplyTo.Name -Value $ReplyTo.Value

$IncludeReport = New-Object $ParameterValue
$IncludeReport.Name = "IncludeReport"
$IncludeReport.Value = $false

$ExtensionParams | Add-Member -type NoteProperty -name $IncludeReport.Name -Value $IncludeReport.Value

$RenderFormat = new-object $ParameterValue
$RenderFormat.Name = "ReportFormat";
$RenderFormat.Value = "HTML4.0"

$ExtensionParams | Add-Member -type NoteProperty -name $RenderFormat.Name -Value $RenderFormat.Value

$Priority = New-Object $ParameterValue
$Priority.Name = "Priority"
$Priority.Value = "Normal"

$ExtensionParams | Add-Member -type NoteProperty -name $Priority.Name -Value $Priority.Value

$Subject = New-Object $ParameterValue
$Subject.Name = "Subject"
$Subject.Value = "Your sales report"
$ExtensionParams | Add-Member -type NoteProperty -name $Subject.Name -Value $Subject.Value

$Comment = New-Object $ParameterValue
$Comment.Name = "Comment"
$Comment.Value = "Here is the link to your report."

$ExtensionParams | Add-Member -type NoteProperty -name $Comment.Name -Value $Comment.Value 

$IncludeLink = New-Object $ParameterValue
$IncludeLink.Name = "IncludeLink";
$IncludeLink.Value = $true

$ExtensionParams | Add-Member -Type NoteProperty -name $IncludeLink.Name -Value $IncludeLink.Value

$Settings.ParameterValues = $ExtensionParams



$DSName = New-Object $Datasource
$DSName.Name = "Mike_Test"

<#
$DSDefinition = New-Object $DataSourceDefinition
$CredentialRetrieval = New-Object $CredentialRetrievalEnum
$CredentialRetrieval.value__ = 1

$DSDefinition.ConnectString = "Data source = server;Initial Catalog = ReportServer"
$DSDefinition.CredentialRetrieval = $CredentialRetrieval
$DSDefinition.Enabled = $true
$DSDefinition.EnabledSpecified = $true
$DSDefinition.Extension = "SQL"
$DSDefinition.ImpersonateUserSpecified = $false
$DSDefinition.UserName = "Username"
$DSDefinition.Password = "Password"

#>
$DS = $objWebServerProxy.ListChildren('/',$false)|Where-Object {$_.TypeName -eq "DataSource"}

   foreach($DSS in $DS){
   $anotherPass = $DSS.path
$another = $objWebServerProxy.GetDataSourceContents("$anotherPass")
$another.Password = "TestPass"
}
$another
$DSName.Item = $another

$FieldList = New-Object $Field
$FieldList.Name = "EmailAddress"
$FieldList.Alias = "EmailAddress"

$FieldList | Add-Member -Type NoteProperty -name $FieldList.Name -Value $FieldList.Alias

$FieldList.Name = "EmpID"
$FieldList.Alias = "EmpID"

$FieldList | Add-Member -Type NoteProperty -name $FieldList.Name -Value $FieldList.Alias


$DataSetDef = New-Object $DataSetDefinition

$DataSetDef.AccentSensitivitySpecified = $false
$DataSetDef.CaseSensitivitySpecified = $false
$DataSetDef.KanatypeSensitivitySpecified = $false
$DataSetDef.WidthSensitivitySpecified = $false
$DataSetDef.Fields = $FieldList


$arrQueryDefinition = New-Object $QueryDefinition
$arrQueryDefinition.CommandText = "Select getdate()"
$arrQueryDefinition.CommandType = "Text"
$arrQueryDefinition.Timeout = '45'
$arrQueryDefinition.TimeoutSpecified = $true
$DataSetDef.Query = $arrQueryDefinition
$Results = New-Object $DataSetDefinition
$Bool = $true
$Name = "Parameter"
$DSDefinition

$DataSetDef


$DSName
$Results = $objWebServerProxy.PrepareQuery($DSName,$DataSetDef,[ref]$Bool,[ref]$Name)

$arrDataRetrievalPlan = New-Object $DataRetrievalPlan
$arrDataRetrievalPlan.DataSet = $Results
$arrDataRetrievalPlan.Item = $another

$EventType = "TimedSubscription";
$MatchData = $NeverExpireScheduleID

$Parameters = New-Object $ParameterValueOrFieldReference
#
$EMPID = New-Object $ParameterFieldReference
$EMPID.ParameterName = "EmpID"
$EMPID.FieldAlias = "EmpID"

$Parameters | Add-Member -type NoteProperty -Name $EMPID.ParameterName -Value $EMPID.FieldAlias

$ReportYear = New-Object $ParameterValue
$ReportYear.Name = "ReportYear"
$ReportYear.Value = "2017"

$Parameters | Add-Member -type NoteProperty -Name $ReportYear.Name -Value $ReportYear.Value

$ReportMonth = New-Object $ParameterValue

$ReportMonth.Name = "ReportMonth"
$ReportMonth.Value = "6"

$Parameters | Add-Member -Type NoteProperty -Name $ReportMonth.Name -Value $ReportMonth.Value



$SubscriptionID = $objWebServerProxy.CreateDataDrivenSubscription($Report,$Settings,$arrDataRetrievalPlan,$Description,$EventType,$MatchData,$Parameters)
$URI=“URI”
$objWebServerProxy=新WebServiceProxy-Uri$Uri-UseDefaultCredential-ErrorAction Stop
$Namespace=$objWebServerProxy.GetType().Namespace
$ExtensionSettigs=($Namespace+'.ExtensionSettings')
$ParameterValueOrFieldReference=($Namespace+'.ParameterValueOrFieldReference')
$ParameterFieldReference=($Namespace+'.ParameterFieldReference')
$ParameterValue=($Namespace+'.ParameterValue')
$Datasource=($Namespace+'.Datasource')
$DataSourceDefinition=($Namespace+'.DataSourceDefinition')
$Field=($Namespace+'.Field')
$CredentialRetrievalEnum=($Namespace+'.CredentialRetrievalEnum')
$DataSetDefinition=($Namespace+'.DataSetDefinition')
$QueryDefinition=($Namespace+'.QueryDefinition')
$DataSetDefinition=($Namespace+'.DataSetDefinition')
$DataRetrievalPlan=($Namespace+'.DataRetrievalPlan')
$ScheduleReference=($Namespace+'.ScheduleReference')
$NameSharedSchedule=“Mike_测试”;
$NeverExpireSchedule=$objWebServerProxy.ListSchedules([System.Management.Automation.Language.NullString]::Value)|其中{$\ Name-eq“$NameSharedSchedule”}
$NeverExpireScheduleID=$NeverExpireScheduleID.scheduleid;
$NeverExpireDescription=$NeverExpireSchedule.Description;
$NeverExpireDefinition=$NeverExpireSchedule.Definition;
#写入主机“找到共享计划:'$NameSharedSchedule',id为$NeverExpireScheduleID,定义为$NeverExpireDescription”;
$NeverExpireScheduleRef=新对象$ScheduleReference
$NeverExpireScheduleRef.ScheduleID=$NeverExpireScheduleID;
#$Report=“/formiglation/Subscription\u Test/SSRSRationalization\u ExecutionLog\u last8ttdays”
$Report=“/Gayatree/GTest/ExecutionLog\u最近八天”
$Description=“我的新数据驱动订阅”
$Settings=新对象$extensionsetigs
$Settings.Extension=“报表服务器电子邮件”;
$ExtensionParams=新对象$ParameterValueOrFieldReference
#$ExtensionParams.ParameterValueOrFieldReference='8'
$To=新对象$ParameterFieldReference
$To.ParameterName=“To”
$To.FieldAlias=“电子邮件”
$ExtensionParams |添加成员-类型NoteProperty-名称$To.ParameterName-值$To.FieldAlias
$ReplyTo=新对象$ParameterValue
$ReplyTo.Name=“ReplyTo”
$ReplyTo.Value=“电子邮件”
$ExtensionParams |添加成员-类型NoteProperty-名称$ReplyTo.name-值$ReplyTo.Value
$IncludeReport=新对象$ParameterValue
$IncludeReport.Name=“IncludeReport”
$IncludeReport.Value=$false
$ExtensionParams |添加成员-类型NoteProperty-名称$IncludeReport.name-值$IncludeReport.Value
$RenderFormat=新对象$ParameterValue
$RenderFormat.Name=“ReportFormat”;
$RenderFormat.Value=“HTML4.0”
$ExtensionParams |添加成员-类型NoteProperty-名称$RenderFormat.name-值$RenderFormat.Value
$Priority=新对象$ParameterValue
$Priority.Name=“优先级”
$Priority.Value=“正常”
$ExtensionParams |添加成员-类型NoteProperty-名称$Priority.name-值$Priority.Value
$Subject=新对象$ParameterValue
$Subject.Name=“Subject”
$Subject.Value=“您的销售报告”
$ExtensionParams |添加成员-类型NoteProperty-名称$Subject.name-值$Subject.Value
$Comment=新对象$ParameterValue
$Comment.Name=“Comment”
$Comment.Value=“这是指向您的报告的链接。”
$ExtensionParams |添加成员-类型NoteProperty-名称$Comment.name-值$Comment.Value
$IncludeLink=新对象$ParameterValue
$IncludeLink.Name=“IncludeLink”;
$IncludeLink.Value=$true
$ExtensionParams |添加成员-类型NoteProperty-名称$IncludeLink.name-值$IncludeLink.Value
$Settings.ParameterValues=$ExtensionParams
$DSName=新对象$Datasource
$DSName.Name=“Mike_测试”
$DS=$objWebServerProxy.ListChildren('/',$false)|其中对象{$\类型名-eq“数据源”}
foreach($DS中的DSS){
$anotherPass=$DSS.path
$other=$objWebServerProxy.GetDataSourceContents($anotherPass)
$other.Password=“TestPass”
}
另一美元
$DSName.Item=$other
$FieldList=新对象$Field
$FieldList.Name=“电子邮件地址”
$FieldList.Alias=“电子邮件地址”
$FieldList |添加成员-类型NoteProperty-名称$FieldList.name-值$FieldList.Alias
$FieldList.Name=“EmpID”
$FieldList.Alias=“EmpID”
$FieldList |添加成员-类型NoteProperty-名称$FieldList.name-值$FieldList.Alias
$DataSetDef=新对象$DataSetDefinition
$DataSetDef.AccentSensitivitySpecified=$false
$DataSetDef.CaseSensitivitySpecified=$false
$DataSetDef.KanatypeSensitivitySpecified=$false
$DataSetDef.WidthSensitivitySpecified=$false
$DataSetDef.Fields=$FieldList
$arrQueryDefinition=新对象$QueryDefinition
$arrQueryDefinition.CommandText=“选择getdate()”
$arrQueryDefinition.CommandType=“Text”
$arrQueryDefinition.Timeout='45'
$arrQueryDefinition.TimeoutSpecified=$true
$DataSetDef.Query=$arrQueryDefinition
$Results=新对象$DataSetDefinition
$Bool=$true
$Name=“参数”
$DSDefinition
$DataSetDef
$DSName
$Results=$objWebServerProxy.PrepareQuery($DSName,$DataSetDef,[ref]$Bool,[ref]$Name)
$arrDataRetrievalPlan=新对象$DataRetrievalPlan
$arrDataRetrievalPlan.DataSet=$Results
$arrDataRetrievalPlan.Item=$Other
$EventType=“TimedSubscription”;
$MatchData=$NeverExpireScheduleID
$Parameters=新对象$ParameterValueOrFieldReference
#
$EMPID=新对象$ParameterFieldReference
$EMPID.ParameterName=“EmpI
$URI = "URI"

$objWebServerProxy = New-WebServiceProxy -Uri $URI -UseDefaultCredential -ErrorAction Stop

$Namespace = $objWebServerProxy.GetType().Namespace
$ExtensionSettigs = ($Namespace + '.ExtensionSettings')
$ParameterValueOrFieldReference = ($Namespace + '.ParameterValueOrFieldReference')
$ParameterFieldReference = ($Namespace + '.ParameterFieldReference')
$ParameterValue = ($Namespace + '.ParameterValue')
$Datasource = ($Namespace + '.DataSource')
$DataSourceDefinition = ($Namespace + '.DataSourceDefinition')
$Field = ($Namespace + '.Field')
$CredentialRetrievalEnum = ($Namespace + '.CredentialRetrievalEnum')
$DataSetDefinition = ($Namespace + '.DataSetDefinition')
$QueryDefinition = ($Namespace + '.QueryDefinition')
$DataSetDefinition = ($Namespace +'.DataSetDefinition')
$DataRetrievalPlan = ($Namespace+'.DataRetrievalPlan')
$ScheduleReference = ($Namespace+'.ScheduleReference')

$NameSharedSchedule="Mike_Test";
$NeverExpireSchedule= $objWebServerProxy.ListSchedules([System.Management.Automation.Language.NullString]::Value) | where {$_.Name -eq "$NameSharedSchedule"}
$NeverExpireScheduleID = $NeverExpireSchedule.scheduleid;
$NeverExpireDescription = $NeverExpireSchedule.Description;
$NeverExpireDefinition = $NeverExpireSchedule.Definition;
#Write-Host "Found Shared Schedule: '$NameSharedSchedule' with id $NeverExpireScheduleID and definition $NeverExpireDescription";

$NeverExpireScheduleRef =New-Object $ScheduleReference
$NeverExpireScheduleRef.ScheduleID=$NeverExpireScheduleID;

#$Report = "/ForMigration/Subscription_Test/SSRSRationalization_ExecutionLog_LastEightDays"
$Report = "/Gayatree/GTest/ExecutionLog_LastEightDays"
$Description = "My new Data Driven Subscription"

$Settings = New-Object $ExtensionSettigs

$Settings.Extension = "Report Server Email";

$ExtensionParams = New-Object $ParameterValueOrFieldReference

#$ExtensionParams.ParameterValueOrFieldReference ='8'



$To = New-Object $ParameterFieldReference 
$To.ParameterName = "TO"
$To.FieldAlias = "Email"

$ExtensionParams | Add-Member -type NoteProperty -name $To.ParameterName -Value $To.FieldAlias

$ReplyTo = New-Object $ParameterValue
$ReplyTo.Name = "ReplyTo"
$ReplyTo.Value = "Email"

$ExtensionParams | Add-Member -type NoteProperty -name $ReplyTo.Name -Value $ReplyTo.Value

$IncludeReport = New-Object $ParameterValue
$IncludeReport.Name = "IncludeReport"
$IncludeReport.Value = $false

$ExtensionParams | Add-Member -type NoteProperty -name $IncludeReport.Name -Value $IncludeReport.Value

$RenderFormat = new-object $ParameterValue
$RenderFormat.Name = "ReportFormat";
$RenderFormat.Value = "HTML4.0"

$ExtensionParams | Add-Member -type NoteProperty -name $RenderFormat.Name -Value $RenderFormat.Value

$Priority = New-Object $ParameterValue
$Priority.Name = "Priority"
$Priority.Value = "Normal"

$ExtensionParams | Add-Member -type NoteProperty -name $Priority.Name -Value $Priority.Value

$Subject = New-Object $ParameterValue
$Subject.Name = "Subject"
$Subject.Value = "Your sales report"
$ExtensionParams | Add-Member -type NoteProperty -name $Subject.Name -Value $Subject.Value

$Comment = New-Object $ParameterValue
$Comment.Name = "Comment"
$Comment.Value = "Here is the link to your report."

$ExtensionParams | Add-Member -type NoteProperty -name $Comment.Name -Value $Comment.Value 

$IncludeLink = New-Object $ParameterValue
$IncludeLink.Name = "IncludeLink";
$IncludeLink.Value = $true

$ExtensionParams | Add-Member -Type NoteProperty -name $IncludeLink.Name -Value $IncludeLink.Value

$Settings.ParameterValues = $ExtensionParams



$DSName = New-Object $Datasource
$DSName.Name = "Mike_Test"

<#
$DSDefinition = New-Object $DataSourceDefinition
$CredentialRetrieval = New-Object $CredentialRetrievalEnum
$CredentialRetrieval.value__ = 1

$DSDefinition.ConnectString = "Data source = server;Initial Catalog = ReportServer"
$DSDefinition.CredentialRetrieval = $CredentialRetrieval
$DSDefinition.Enabled = $true
$DSDefinition.EnabledSpecified = $true
$DSDefinition.Extension = "SQL"
$DSDefinition.ImpersonateUserSpecified = $false
$DSDefinition.UserName = "Username"
$DSDefinition.Password = "Password"

#>
$DS = $objWebServerProxy.ListChildren('/',$false)|Where-Object {$_.TypeName -eq "DataSource"}

   foreach($DSS in $DS){
   $anotherPass = $DSS.path
$another = $objWebServerProxy.GetDataSourceContents("$anotherPass")
$another.Password = "TestPass"
}
$another
$DSName.Item = $another

$FieldList = New-Object $Field
$FieldList.Name = "EmailAddress"
$FieldList.Alias = "EmailAddress"

$FieldList | Add-Member -Type NoteProperty -name $FieldList.Name -Value $FieldList.Alias

$FieldList.Name = "EmpID"
$FieldList.Alias = "EmpID"

$FieldList | Add-Member -Type NoteProperty -name $FieldList.Name -Value $FieldList.Alias


$DataSetDef = New-Object $DataSetDefinition

$DataSetDef.AccentSensitivitySpecified = $false
$DataSetDef.CaseSensitivitySpecified = $false
$DataSetDef.KanatypeSensitivitySpecified = $false
$DataSetDef.WidthSensitivitySpecified = $false
$DataSetDef.Fields = $FieldList


$arrQueryDefinition = New-Object $QueryDefinition
$arrQueryDefinition.CommandText = "Select getdate()"
$arrQueryDefinition.CommandType = "Text"
$arrQueryDefinition.Timeout = '45'
$arrQueryDefinition.TimeoutSpecified = $true
$DataSetDef.Query = $arrQueryDefinition
$Results = New-Object $DataSetDefinition
$Bool = $true
$Name = "Parameter"
$DSDefinition

$DataSetDef


$DSName
$Results = $objWebServerProxy.PrepareQuery($DSName,$DataSetDef,[ref]$Bool,[ref]$Name)

$arrDataRetrievalPlan = New-Object $DataRetrievalPlan
$arrDataRetrievalPlan.DataSet = $Results
$arrDataRetrievalPlan.Item = $another

$EventType = "TimedSubscription";
$MatchData = $NeverExpireScheduleID

$Parameters = New-Object $ParameterValueOrFieldReference
#
$EMPID = New-Object $ParameterFieldReference
$EMPID.ParameterName = "EmpID"
$EMPID.FieldAlias = "EmpID"

$Parameters | Add-Member -type NoteProperty -Name $EMPID.ParameterName -Value $EMPID.FieldAlias

$ReportYear = New-Object $ParameterValue
$ReportYear.Name = "ReportYear"
$ReportYear.Value = "2017"

$Parameters | Add-Member -type NoteProperty -Name $ReportYear.Name -Value $ReportYear.Value

$ReportMonth = New-Object $ParameterValue

$ReportMonth.Name = "ReportMonth"
$ReportMonth.Value = "6"

$Parameters | Add-Member -Type NoteProperty -Name $ReportMonth.Name -Value $ReportMonth.Value



$SubscriptionID = $objWebServerProxy.CreateDataDrivenSubscription($Report,$Settings,$arrDataRetrievalPlan,$Description,$EventType,$MatchData,$Parameters)
$reportServerUri = "http://localhost/reportserver/ReportService2010.asmx?wsdl"
$rs = New-WebServiceProxy -Uri $reportServerUri -UseDefaultCredential -Namespace "SSRS"

# Note the difference, here we use the type generated when creating the webservice proxy:
$ReportYear = New-Object SSRS.ParameterValue 
$ReportYear.Name = "ReportYear"
$ReportYear.Value = "2017"
$SubscriptionID = $objWebServerProxy.CreateDataDrivenSubscription($Report,$Settings,
           $arrDataRetrievalPlan,$Description,$EventType,$MatchData,$null)