我正在回圈通過一個 csv 檔案來設定變數。當我嘗試使用我不斷變化的變數時,當我嘗試在 Invoke-PowerBIRestMethod -Url $url 中使用時,我得到的只是變數名而不是它的值 有人可以幫我解決我的問題嗎?我想以編程方式更改幾個服務器名稱和資料庫值。
$csv = import-csv "C:\Temp\MyTest.csv"
Import-Module MicrosoftPowerBIMgmt
Import-Module MicrosoftPowerBIMgmt.Profile
Connect-PowerBIServiceAccount
$d = $_.DatasetId
$w = $_.WorkspaceId
$url = "groups/$w/datasets/$d/Default.UpdateDatasources"
$server = $_.Server
$csv | foreach-object {
Invoke-PowerBIRestMethod -Url $url -Method Post -Body '{
"updateDetails": [
{
"datasourceSelector": {
"datasourceType": "Sql",
"connectionDetails": {
"server": "sql1",
"database": "db"
}
},
"connectionDetails": {
"server": "sql01",
"database": "Database"
}
}
]
}'
}
Disconnect-PowerBIServiceAccount
資料列:作業區 ID、資料集 ID、服務器
這對我也不起作用:
Import-Module MicrosoftPowerBIMgmt
Import-Module MicrosoftPowerBIMgmt.Profile
$url='groups/9e55d5cf-26ec-4016-bfed-000000000/datasets/ffa73aa7-223c-4f73-b084-000000000/Default.UpdateDatasources'
Connect-PowerBIServiceAccount #-Credential $credential
Invoke-PowerBIRestMethod -Url $($url) -Method Post -Body '{
"updateDetails": [
請幫忙。
uj5u.com熱心網友回復:
您需要在 foreach 回圈中設定變數,并且需要使用 here-string 將 $server 變數插入到請求正文中。例如
$csv = import-csv "C:\Temp\MyTest.csv"
Import-Module MicrosoftPowerBIMgmt
Import-Module MicrosoftPowerBIMgmt.Profile
Connect-PowerBIServiceAccount
$csv | foreach-object {
$d = $_.DatasetId
$w = $_.WorkspaceId
$url = "groups/$w/datasets/$d/UpdateParameters"
$server = $_.Server
$body = @"
{
"updateDetails": [
{
"datasourceSelector": {
"datasourceType": "Sql",
"connectionDetails": {
"server": "$server",
"database": "db"
}
},
"connectionDetails": {
"server": "$server",
"database": "Database"
}
}
]
}
"@
#$body
#$url
Invoke-PowerBIRestMethod -Url $url -Method Post -Body $body
}
Disconnect-PowerBIServiceAccount
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/526126.html
