I am trying to create a script which will loop through a text file <-- (Step 3.1) and find for specific keys and saving the values to a variable. Now that variable I am using in a command to generate the output file < --(step 4). I am using the code as of now.
Code:
# 1- Connect to Azure Account
$username = "abc@xyz.com"
$pass = ConvertTo-SecureString "abc123" -AsPlainText -Force
$cred = New-Object PSCredential($username,$pass)
#Connect-AzureRmAccount -Credential $cred | out-null
Connect-AzAccount -Credential $cred | out-null
# 2 - Input Area
$subscriptionName = 'Data Analytics'
$resourceGroupName = 'DataLake-Gen2'
$dataFactoryName = 'dna-production-gen2'
$runStartDateTimeUTC = '2020-09-12T06:40:00Z'
# 3 - (All Triggers Information)
$ErrorActionPreference="SilentlyContinue"
Stop-Transcript | out-null
$ErrorActionPreference = "Continue"
Start-Transcript -path D:\Powershell\TriggerInfo.txt -append
Get-AzDataFactoryV2Trigger -ResourceGroupName $resourceGroupName -DataFactoryName $dataFactoryName
Stop-Transcript
# 3.1 (Get the content in a variable)
Get-Content "D:\Powershell\TriggerInfo.txt" | ForEach-Object {
$trg_name = $_.TriggerName
} $trg_name
# 4 - (Write the output to a text file, The Get-AzDataFactoryV2TriggerRun command returns detailed information about trigger runs for the specified trigger
# in the given timeframe.)
foreach ($trg in $trg_name) {
$ErrorActionPreference="SilentlyContinue"
Stop-Transcript | out-null
$ErrorActionPreference = "Continue"
Start-Transcript -path D:\Powershell\output.txt -append
Get-AzDataFactoryV2TriggerRun -ResourceGroupName $resourceGroupName -DataFactoryName $dataFactoryName -TriggerName $trg -TriggerRunStartedAfter "2020-09-01" -TriggerRunStartedBefore "2020-09-17"
Stop-Transcript
"$trg = " + $trg.length
}
TriggerInfo.txt:
TriggerName : TRG_CM_TBLEnhanced_prod
ResourceGroupName : DataLake-Gen2
DataFactoryName : dna-production-gen2
Properties : Microsoft.Azure.Management.DataFactory.Models.ScheduleTrigger
RuntimeState : Started
TriggerName : TRG_CM_tblEnhanced_QA
ResourceGroupName : DataLake-Gen2
DataFactoryName : dna-production-gen2
Properties : Microsoft.Azure.Management.DataFactory.Models.ScheduleTrigger
RuntimeState : Started
TriggerName : TRG_CustCaseData
ResourceGroupName : DataLake-Gen2
DataFactoryName : dna-production-gen2
Properties : Microsoft.Azure.Management.DataFactory.Models.ScheduleTrigger
RuntimeState : Started
TriggerName : TRG_RP_Dashboard_TAE
ResourceGroupName : DataLake-Gen2
DataFactoryName : dna-production-gen2
Properties : Microsoft.Azure.Management.DataFactory.Models.ScheduleTrigger
RuntimeState : Started
Any help will be appreciated? Thanks
Updated Code
# 3.1 (Get the content in a variable)
# Get-Content "D:\Powershell\TriggerInfo.txt" | ForEach-Object {
# $trg_name = $_.TriggerName
# } $trg_name
# $trg = (Get-AzDataFactoryV2Trigger -ResourceGroupName $resourceGroupName -DataFactoryName $dataFactoryName).TriggerName
$log = Get-Content -Path 'D:\Powershell\TriggerInfo.txt' -Raw
$result = ($log -split '(\r?\n){2,}' | Where-Object {$_ -match '\S'}) | ForEach-Object {
[PsCustomObject](($_ -split 'TriggeredPipelines')[0] -replace ' : ', '=' | ConvertFrom-StringData) |
Select-Object 'TriggerName'
}
# output on screen
$result | Format-Table -AutoSize
# write to CSV file
$result | Export-Csv -Path 'D:\Powershell\TriggerInforesult.csv' -Encoding UTF8 -NoTypeInformation -Force
$trg_name = (Import-Csv -Path 'D:\Powershell\TriggerInforesult.csv').TriggerName
# 4 - (Write the output to a text file, The Get-AzDataFactoryV2TriggerRun command returns detailed information about trigger runs for the specified trigger
# in the given timeframe.)
foreach ($trigger in $trg_name) {
$ErrorActionPreference="SilentlyContinue"
Stop-Transcript | out-null
$ErrorActionPreference = "Continue"
Start-Transcript -path D:\Powershell\output.txt -append
Get-AzDataFactoryV2TriggerRun -ResourceGroupName $resourceGroupName -DataFactoryName $dataFactoryName -TriggerName $trigger -TriggerRunStartedAfter "2020-09-01" -TriggerRunStartedBefore "2020-09-17"
Stop-Transcript
"$trigger = " + $trigger.length
}
****Recent Update****
TriggerName : TRG_CM_TBLEnhanced_prod
ResourceGroupName : DataLake-Gen2
DataFactoryName : dna-production-gen2
Properties : Microsoft.Azure.Management.DataFactory.Models.ScheduleTrigger
RuntimeState : Started
TriggerName : TRG_CM_tblEnhanced_QA
ResourceGroupName : DataLake-Gen2
DataFactoryName : dna-production-gen2
Properties : Microsoft.Azure.Management.DataFactory.Models.ScheduleTrigger
RuntimeState : Started
TriggerName : TRG_CustCaseData
ResourceGroupName : DataLake-Gen2
DataFactoryName : dna-production-gen2
Properties : Microsoft.Azure.Management.DataFactory.Models.ScheduleTrigger
RuntimeState : Started
TriggerName : TRG_RP_Dashboard_TAE
ResourceGroupName : DataLake-Gen2
DataFactoryName : dna-production-gen2
Properties : Microsoft.Azure.Management.DataFactory.Models.ScheduleTrigger
RuntimeState : Started
TriggerName : GMB_Trigger
ResourceGroupName : DataLake-Gen2
DataFactoryName : dna-production-gen2
Properties : Microsoft.Azure.Management.DataFactory.Models.BlobEventsTrigger
RuntimeState : Started
TriggerName : TRG_RP_Optimizely_Import
ResourceGroupName : DataLake-Gen2
DataFactoryName : dna-production-gen2
Properties : Microsoft.Azure.Management.DataFactory.Models.ScheduleTrigger
RuntimeState : Started
TriggerName : TRG_USBusinessData_Monthly
ResourceGroupName : DataLake-Gen2
DataFactoryName : dna-production-gen2
Properties : Microsoft.Azure.Management.DataFactory.Models.ScheduleTrigger
RuntimeState : Started
TriggerName : TRG_Generic_CSV_To_DW
ResourceGroupName : DataLake-Gen2
DataFactoryName : dna-production-gen2
Properties : Microsoft.Azure.Management.DataFactory.Models.ScheduleTrigger
RuntimeState : Stopped
TriggerName : TRG_CM_Dimension_Unit
ResourceGroupName : DataLake-Gen2
DataFactoryName : dna-production-gen2
Properties : Microsoft.Azure.Management.DataFactory.Models.ScheduleTrigger
RuntimeState : Started
TriggerName : TRG_CM_PricingQuoteApproval
ResourceGroupName : DataLake-Gen2
DataFactoryName : dna-production-gen2
Properties : Microsoft.Azure.Management.DataFactory.Models.ScheduleTrigger
RuntimeState : Started
Transcript stopped, output file is D:\Powershell\new\TriggerInfo.txt
ConvertFrom-StringData : Data line '**********************' is not in 'name=value' format.
At line:36 char:37
+ $data = $_ -replace ':', '=' | ConvertFrom-StringData
+ ~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [ConvertFrom-StringData], PSInvalidOperationException
+ FullyQualifiedErrorId : InvalidOperation,Microsoft.PowerShell.Commands.ConvertFromStringDataCommand
Get-AzDataFactoryV2TriggerRun : Cannot validate argument on parameter 'DataFactoryName'. The argument is null or empty. Provide an argument that is not null or empty, and then try the
command again.
At line:47 char:34
+ Get-AzDataFactoryV2TriggerRun @splat
+ ~~~~~~
+ CategoryInfo : InvalidData: (:) [Get-AzDataFactoryV2TriggerRun], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.Azure.Commands.DataFactoryV2.GetAzureDataFactoryTriggerRunCommand
ConvertFrom-StringData : Data line '**********************' is not in 'name=value' format.
At line:36 char:37
+ $data = $_ -replace ':', '=' | ConvertFrom-StringData
+ ~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [ConvertFrom-StringData], PSInvalidOperationException
+ FullyQualifiedErrorId : InvalidOperation,Microsoft.PowerShell.Commands.ConvertFromStringDataCommand
TriggerInfo.txt
Windows PowerShell transcript start Start time: 20201017093947 Username: XXXXXX\XXXXXX RunAs User: XXXXXX\XXXXXX Configuration Name: Machine: INNOPHLTXETR138 (Microsoft Windows NT 10.0.17134.0) Host Application: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe Process ID: 20340 PSVersion: 5.1.17134.858 PSEdition: Desktop PSCompatibleVersions: 1.0, 2.0, 3.0, 4.0, 5.0, 5.1.17134.858 BuildVersion: 10.0.17134.858 CLRVersion: 4.0.30319.42000 WSManStackVersion: 3.0 PSRemotingProtocolVersion: 2.3 SerializationVersion: 1.1.0.1
Transcript started, output file is D:\Powershell\new\TriggerInfo.txt
TriggerName : TRG_CM_TBLEnhanced_prod
ResourceGroupName : DataLake-Gen2
DataFactoryName : dna-production-gen2
Properties : Microsoft.Azure.Management.DataFactory.Models.ScheduleTrigger
RuntimeState : Started
TriggerName : TRG_CM_tblEnhanced_QA
ResourceGroupName : DataLake-Gen2
DataFactoryName : dna-production-gen2
Properties : Microsoft.Azure.Management.DataFactory.Models.ScheduleTrigger
RuntimeState : Started
TriggerName : TRG_CustCaseData
ResourceGroupName : DataLake-Gen2
DataFactoryName : dna-production-gen2
Properties : Microsoft.Azure.Management.DataFactory.Models.ScheduleTrigger
RuntimeState : Started
TriggerName : TRG_RP_Dashboard_TAE
ResourceGroupName : DataLake-Gen2
DataFactoryName : dna-production-gen2
Properties : Microsoft.Azure.Management.DataFactory.Models.ScheduleTrigger
RuntimeState : Started
TriggerName : GMB_Trigger
ResourceGroupName : DataLake-Gen2
DataFactoryName : dna-production-gen2
Properties : Microsoft.Azure.Management.DataFactory.Models.BlobEventsTrigger
RuntimeState : Started
TriggerName : TRG_RP_Optimizely_Import
ResourceGroupName : DataLake-Gen2
DataFactoryName : dna-production-gen2
Properties : Microsoft.Azure.Management.DataFactory.Models.ScheduleTrigger
RuntimeState : Started
TriggerName : TRG_USBusinessData_Monthly
ResourceGroupName : DataLake-Gen2
DataFactoryName : dna-production-gen2
Properties : Microsoft.Azure.Management.DataFactory.Models.ScheduleTrigger
RuntimeState : Started
TriggerName : TRG_Generic_CSV_To_DW
ResourceGroupName : DataLake-Gen2
DataFactoryName : dna-production-gen2
Properties : Microsoft.Azure.Management.DataFactory.Models.ScheduleTrigger
RuntimeState : Stopped
TriggerName : TRG_CM_Dimension_Unit
ResourceGroupName : DataLake-Gen2
DataFactoryName : dna-production-gen2
Properties : Microsoft.Azure.Management.DataFactory.Models.ScheduleTrigger
RuntimeState : Started
TriggerName : TRG_CM_PricingQuoteApproval
ResourceGroupName : DataLake-Gen2
DataFactoryName : dna-production-gen2
Properties : Microsoft.Azure.Management.DataFactory.Models.ScheduleTrigger
RuntimeState : Started
**********************
Windows PowerShell transcript end
End time: 20201017093951
**********************