Есть ли способ определить все командлеты, используемые в файле сценария? Я пытаюсь найти требования для развертывания в другой среде. Какие модули были использованы? Какая версия установлена? Затем вы можете просмотреть список команд и узнать, что установить в новой среде.
В качестве примера воспользуемся файлом ниже. Как только я узнаю командлеты, я могу использовать get-command, чтобы узнать установленный модуль / версию. Ссылка: Найдите командлеты PowerShell с помощью Get-Command | 4sysops
Спасибо за совет.
Зависимости командлета (пример вывода)
Cmdlets used in 'C:\myDir\---\PbiList_Reports_exportCsv.ps1'
------
Get-AzStorageAccountKey
New-AzStorageContext
Start-Transcript
Write-Host
New-Object
Connect-PowerBIServiceAccount
etc...
Информация о командлете (пример вывода)
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Get-AzStorageAccountKey 3.6.0 Az.Storage
Cmdlet Connect-PowerBIServiceAccount 1.0.974 MicrosoftPowerBIMgmt.Profile
etc...
PbiList_Reports_exportCsv.ps1 (исходный вход)
<#------------------------------------------------------
# 4,REPORT: Export list of all workspace reports
#
# Loop all workspaces. Retreive reports list. Export to blob storage.
# --> Account > Container > Blob
#------------------------------------------------------#>
# -------- Export files local dir --------
$Filepath = "C:\Users\me\Dropbox\00-PBI\ActivityLogs\"
$Transcript_file = $Filepath +"Logs\testlog_reports.txt"
$Reports_file = $Filepath +"AllReports.csv"
### $wsReportsAll | Export-csv -Path $Reports_file -NoTypeInformation
#
# -------- Export files to Azure blob --------
$Transcript_file = "testfun_reports.txt"
$Reports_file = "AllReports.csv"
# Get key to storage account
# Map to the reports BLOB context
# Copy the file to the storage account
$acctKey = (Get-AzStorageAccountKey -Name "myblob" -ResourceGroupName "myResource").Value[0]
$storageContext = New-AzStorageContext -StorageAccountName "myblob" -StorageAccountKey $acctKey -Verbose
#### Print write-host to log file
Start-Transcript -Path "$Env:temp/$Transcript_file" -verbose # "C:\Users\me\Dropbox\00-PBI\ActivityLogs\Logs\testlog_reports.txt"
Write-Host "Today: ($Date).ToString("yyyy.MM.dd")"
# -------- PBI Connection --------
Write-Host " PBI credentials ..." -ForegroundColor Yellow -BackgroundColor DarkGreen
## PBI credentials
$password = "******" | ConvertTo-SecureString -asPlainText -Force
$username = "[email protected]"
$credential = New-Object System.Management.Automation.PSCredential($username, $password)
Connect-PowerBIServiceAccount -Credential $credential
#-------- PBI Workspace Reports -------
$wsReportsAll = @()
# Workspaces filtered to exclude PBI Personal and other PBI Groups
Write-Host " Workspace info ..." -ForegroundColor Yellow -BackgroundColor DarkGreen
$Groups = Get-PowerBIWorkspace -All -Scope Organization | SORT @{Expression="Type"; Descending=$True}, Name |
?{
($_.Type -eq 'Workspace') `
}
Write-Host(($Groups.count).ToString() + " workspace count")
foreach ($ws in $Groups) {
# Variables
$wsName = $ws.Name.ToString()
$wsId = $ws.Id.ToString()
# Workspaces
$wsReports = Get-PowerBIReport -WorkspaceId $ws.Id
$wsReports = $wsReports | SELECT *, @{Name = 'Workspace'; Expression = {$wsName}} , @{Name = 'WorkspaceId'; Expression = {$wsId}}
Write-Host("")
Write-Host($ws.Name + "...")
Write-Host(($wsReports.count).ToString() + " report count") -ForegroundColor Cyan -BackgroundColor DarkGreen
$wsReportsAll += $wsReports
}
$wsReportsAll | SELECT Id, Name, WorkspaceId, Workspace, DatasetId | ft -auto
$wsReportsCsv = ($wsReportsAll | ConvertTo-Csv -NoTypeInformation).ToString()
$wsReportsAll | Export-csv "$Env:temp/$Reports_file"
# $wsReportsAll | Export-csv -Path $Reports_file -NoTypeInformation
Set-AzStorageBlobContent -File "$Env:temp/$Reports_file" -Container "myFolder" -BlobType "Block" -Context $storageContext -Force -Verbose
Stop-Transcript
Set-AzStorageBlobContent -File "$Env:temp/$Transcript_file" -Container "myFolder" -Blob "Logs/$Transcript_file" -BlobType "Block" -Context $storageContext -Force -Verbose
#****************
#****************