Oharra
Baimena behar duzu orria atzitzeko. Direktorioetan saioa has dezakezu edo haiek alda ditzakezu.
Baimena behar duzu orria atzitzeko. Direktorioak alda ditzakezu.
Oharra
Oharra: Tutorial honetan erabilitako eszenatokiak, kontsulta adibideak eta datuak fikziozkoak dira, akatsak edo eraginkortasun eza izan ditzakete eta erakustaldietarako soilik dira.
Automatizazioarekin lotutako taulen zerrenda
Hurrengo taulan txostenak egiteko eta behatzeko maiz erabiltzen diren automatizazioarekin lotutako taulak zerrendatzen dira.
Bistaratzeko izena | Objektuaren izena | Xedea |
---|---|---|
Fluxu-erregistroa | fluxu-erregistroa | Hainbat erregistro ditu, hala nola, erregistro pertsonalizatuak, mahaigaineko fluxuaren ekintza-erregistroak V2, makinaren exekuzio-ilararen erregistroak, auto-konponketa eskaera/erantzun zaindu gabeak eta lan-ilararen prozesatzeko erregistroak, etab. Datuak Dataverse taula elastiko batean gordetzen dira, eta erregistro motaren arabera, bere bizi-denbora (TTL) ezarpenarekin konfigura daiteke Antolakuntza-taulan (FlowLogsTtlInMinutes eta DesktopFlowQueueLogsTtlInMinutes), eta horrek erregistroak taulatik automatikoki noiz ezabatu behar diren definitzen du. |
Fluxu-makina | fluxu-makina | Makinarekin eta ostatatutako makinarekin lotutako informazioa dauka. |
Fluxu Makina Taldea | fluxu-makinataldea | Makina taldeari eta ostatatutako makina taldeari buruzko informazioa dauka. |
Fluxu-exekuzioa | flowrun | Hodeiko fluxuaren exekuzioarekin lotutako datuak ditu, hala nola hasiera, amaiera, iraupena, gurasoen fluxuaren testuingurua, etab. |
Fluxu saioa | fluxu-saioa | Mahaigaineko fluxuaren exekuzioarekin lotutako datuak ditu, hala nola hasiera, iraupena, egoera, makina, robot kontua, gurasoen fluxuaren testuingurua, etab. |
Prozesua | lan-fluxua | Mahaigaineko fluxuak eta soluzioetan oinarritutako hodeiko fluxuak ditu (beste lan-fluxu motekin batera). |
Erabiltzailea | systemuser | Erabiltzailea ordezkatzen du. Dataverse |
Lan-ilara | lan-ilara | Lan-fluxu baten exekuzio-instantzia bat adierazten du. |
Lan-ilararen elementua | lan-ilarako elementua | Lan-fluxu baten exekuzio bakoitzari buruzko informazioa dauka. |
Taula-erlazio diagrama sinplifikatua
Irudiak automatizaziorako taula-erlazio garrantzitsuak baino ez ditu erakusten.
Sortu zure lehen kontsulta Fabric-en
Jarraitu urrats hauek Fabric-eko SQL Analytical Endpoint-ean Lakehouse-rako SQL kontsulta baten lagina sortzeko. contoso_westus_accounts_payable
Ireki zure web arakatzailea, joan atarira ( Microsoft Fabric ), eta hasi saioa zure kredentzialekin.https://powerbi.com
Hautatu zure Lakehouse kokatuta dagoen lan-eremua, eta ondoren hautatu nahi duzun SQL Analytical Endpoint-a (zure Lakehouse-ren azpinodo bat).
SQL Analytical Endpoint-ean, hautatu SQL kontsulta berria SQL kontsulten editorea irekitzeko.
SQL kontsulten editorean, idatzi zure SQL kontsulta eta hautatu Exekutatu. Adibide-kontsulta honek azken zazpi egunetan huts egin duten mahaigaineko fluxu-exekuzio (fluxu-saio) guztiak berreskuratzen ditu, mahaigaineko fluxu eta makina-ID espezifiko batekin lotuta.
SELECT flowsessionid, statuscode, startedon, completedon, errorcode, errormessage, sessionusername, runexecutionduration, runduration, runwaitduration, context FROM flowsession WHERE regardingobjectid = '[specific_flow_id]' -- Replace with the actual flow ID AND machineid = '[specific_machine_guid]' -- Replace with the actual machine ID AND statuscode = 8 -- 'Failed' sessions AND createdon >= DATEADD(day, -7, GETDATE()) ORDER BY createdon DESC;
Hona hemen
Flow Sessions
(mahaigaineko fluxuen exekuzioak) taularen egoera-arrazoien (egoera-kodea) zerrenda bat.Egoeraren arrazoia Balioa Pausatuta 1 Exekutatzen 2 Zain nago 3 Osatuta 4 Saltatuta 5 Esekita 6 Utzi da 7 Ezin izan da egin 8 Huts egin du 9 TimedOut 1,0 Bat-batean geldituta 11 Ez ikusi eginda 12 Berrikusi kontsultaren emaitzak zure beharrak betetzen dituztela ziurtatzeko.
(Aukerakoa) Ireki emaitzekin Excel-en zuzeneko kontsulta bat SQL kontsulta nabarmenduz eta kontsultaren irteera atalean Ireki Excel-en hautatuz. Honek Excel fitxategi bat sortu eta Live-query batekin deskargatzen du SQL Analytics amaiera-puntura, analisi gehiago egiteko.
(Aukerakoa) SQL kontsulta etorkizunean erabiltzeko gordetzeko, hautatu Gorde kontsulta.
Oinarrizko fluxu-kontsultak
Berreskuratu hodeiko fluxuak jabearen informazioarekin
Kontsulta honek hodeiko fluxu guztiak itzultzen ditu, haien jabearen informazioarekin batera.
Oharra
Fabric-en irtenbide baten parte diren hodeiko fluxuak bakarrik daude eskuragarri. Dataverse
SELECT
w.name AS 'Cloud flow',
w.workflowid AS 'Cloud flow Id',
w.createdon AS 'Created on',
w.modifiedon AS 'Last modified on',
w.clientdata AS 'Script',
w.ownerid AS 'Owner Id',
s.fullname AS 'Owner name',
s.internalemailaddress AS 'Owner email'
FROM
workflow w
JOIN
systemuser s ON w.ownerid = s.systemuserid
WHERE
w.category = 5; -- Only consider solution-cloud flows (category 5)
Berreskuratu mahaigaineko fluxuak jabearen informazioarekin
Kontsulta honek mahaigaineko fluxu guztiak itzultzen ditu jabearen informazioarekin batera.
SELECT
w.name AS 'Desktop flow',
w.workflowid AS 'Desktop flow Id',
w.createdon AS 'Created on',
w.modifiedon AS 'Last modified on',
w.definition AS 'Script',
w.ownerid AS 'Owner Id',
s.fullname AS 'Owner name',
s.internalemailaddress AS 'Owner email'
FROM
workflow w
JOIN
systemuser s ON w.ownerid = s.systemuserid
WHERE
w.category = 6; -- Only consider desktop flows (category 6)
Errendimenduarekin lotutako kontsultaren adibidea
Kontsulta honek mahaigaineko fluxu jakin baten exekuzio-denboraren (Fluxu Saioak) gutxienekoa, batez bestekoa (batez bestekoa), gehienekoa eta desbideratze estandarra berreskuratzen ditu, milisegundoetatik bihurtutako exekuzio-denborak hurbilen dagoen segundo osora biribilduta. Kontsultak emaitzak makina IDen arabera taldekatzen ditu eta xehetasunak biltzen ditu, hala nola makinen izenak, kudeaketa motak, ostatatutako makina kopuru maximoa, saioen edukiera eta azken taupada data Makina Taldea eta Makina tauletatik.
SELECT
f.machineid,
fm.name AS machine_name,
CASE
WHEN mg.managementtype = 0 THEN 'Regular Machine (Group)'
ELSE 'Hosted Machine (Group)'
END AS managementtype,
mg.maxmanagedmachinecount AS maxmanagedmachinecount,
fm.lastheartbeatdate AS last_heartbeat_date,
fm.sessioncapacity AS 'Max Parallel Sessions',
CEILING(MIN(f.runduration) / 1000.0) AS min_runtime,
CEILING(AVG(f.runduration) / 1000.0) AS mean_runtime,
CEILING(MAX(f.runduration) / 1000.0) AS max_runtime,
CEILING(STDEV(f.runduration) / 1000.0) AS stdev_runtime
FROM
flowsession f
JOIN
flowmachinegroup mg ON f.machinegroupid = mg.flowmachinegroupid
JOIN
flowmachine fm ON f.machinegroupid = fm.flowmachinegroupid
WHERE
f.regardingobjectid = '[specific_flow_id]' -- Replace with the actual flow ID
GROUP BY
f.machineid, fm.name, mg.managementtype, mg.maxmanagedmachinecount, fm.lastheartbeatdate, fm.sessioncapacity
ORDER BY
mean_runtime DESC;
Makina eta lizentziaren edukierarekin lotutako kontsulta
Kontsulta honek mahaigaineko fluxu jakin baterako makina eta lizentzien inguruko gaitasun arazoak identifikatzen ditu, baliabideen esleipena optimizatzen eta errendimendu mugak konpontzen laguntzeko.
SELECT
f.machineid,
fm.name AS machine_name,
CASE
WHEN mg.managementtype = 0 THEN 'Regular Machine (Group)'
ELSE 'Hosted Machine (Group)'
END AS managementtype,
mg.maxmanagedmachinecount AS maxmanagedmachinecount,
fm.lastheartbeatdate AS last_heartbeat_date,
fm.sessioncapacity AS 'Max Parallel Sessions',
fm.overcapacitysince,
CASE
WHEN fm.overcapacitysince IS NOT NULL THEN 'Over Capacity'
ELSE 'Within Capacity'
END AS capacity_status
FROM
flowsession f
JOIN
flowmachinegroup mg ON f.machinegroupid = mg.flowmachinegroupid
JOIN
flowmachine fm ON f.machinegroupid = fm.flowmachinegroupid
WHERE
f.regardingobjectid = '[specific_flow_id]' -- Replace with the actual flow ID
GROUP BY
f.machineid, fm.name, mg.managementtype, mg.maxmanagedmachinecount, fm.lastheartbeatdate, fm.sessioncapacity, fm.overcapacitysince
ORDER BY
capacity_status DESC, fm.lastheartbeatdate DESC;
Mahaigaineko fluxuen gobernantzarekin lotutako kontsulta adibideak
Bilatu konexioetan testu arrunteko pasahitzak dituzten script-ak
Kontsulta honek testu arrunteko pasahitza erabiltzeko konfiguratuta dauden (OLEDB) datu-baseko konexio-kateak erabiltzen dituzten mahaigaineko fluxu guztiak aurkitzen ditu.
SELECT
w.name AS 'Desktop flow',
w.workflowid AS 'Desktop flow Id',
w.createdon AS 'Created on',
w.modifiedon AS 'Last modified on',
w.definition AS 'Script',
w.ownerid AS 'Owner Id',
s.fullname AS 'Owner name',
s.internalemailaddress AS 'Owner email'
FROM
workflow w
JOIN
systemuser s ON w.ownerid = s.systemuserid
WHERE
w.category = 6
AND w.definition IS NOT NULL
AND (LOWER(w.definition) LIKE '%;password=%');
SQL injekzioen arrisku potentziala
Kontsultak SQL injekzioaren aurrean zaurgarriak izan daitezkeen scriptak dituzten mahaigaineko fluxuak detektatzen ditu, fluxuen definizioetan database.executesqlstatement.execute
erabilera bilatuz. Demagun egoera bat non, SQL kodea zuzenean idatzi beharrean SQL adierazpena exekutatu ekintzan, scriptak exekuzio-garaian scriptari emandako Power Automate mahaigaineko sarrera-aldagai bat (adibidez, %LetsDeleteAllGeneralLedgerEntriesFromDB%) erabiltzen duen.
SELECT
w.name AS 'Desktop flow',
w.workflowid AS 'Desktop flow Id',
w.createdon AS 'Created on',
w.modifiedon AS 'Last modified on',
w.definition AS 'Script',
w.ownerid AS 'Owner Id',
s.fullname AS 'Owner name',
s.internalemailaddress AS 'Owner email'
FROM
workflow w
JOIN
systemuser s ON w.ownerid = s.systemuserid
WHERE
w.category = 6
AND w.definition IS NOT NULL
AND LOWER(w.definition) LIKE '%database.executesqlstatement.execute%';
API eskaeren erabilera aurreratua
Kontsulta honek kanpoko web zerbitzuetarako konexioa identifikatzeko API eskaera metodo aurreratuak erabiltzen dituzten mahaigaineko fluxuak berreskuratzen ditu, hala nola curl
, Invoke-RestMethod
eta beste requests
batzuk.
SELECT
w.name AS 'Desktop flow',
w.workflowid AS 'Desktop flow Id',
w.createdon AS 'Created on',
w.modifiedon AS 'Last modified on',
w.definition AS 'Script',
w.ownerid AS 'Owner Id',
s.fullname AS 'Owner name',
s.internalemailaddress AS 'Owner email'
FROM
workflow w
JOIN
systemuser s ON w.ownerid = s.systemuserid
WHERE
w.category = 6
AND w.definition IS NOT NULL
AND (
LOWER(w.definition) LIKE '%curl%' OR
LOWER(w.definition) LIKE '%invoke-restmethod%' OR
LOWER(w.definition) LIKE '%invoke-webrequest%' OR
LOWER(w.definition) LIKE '%httpclient%' OR
LOWER(w.definition) LIKE '%requests.get%' OR
LOWER(w.definition) LIKE '%requests.post%' OR
LOWER(w.definition) LIKE '%fetch%' OR
LOWER(w.definition) LIKE '%axios%' OR
LOWER(w.definition) LIKE '%.ajax%'
);
Web amaierako puntuak eta URL lasterbideak erabiltzea
Kontsulta honek URL laburtzaileak erreferentziatzen dituzten scriptak dituzten mahaigaineko fluxuak detektatzen ditu, URL erabilera mugatuaren arrisku potentzialak ebaluatzeko.
SELECT
w.name AS 'Desktop flow',
w.workflowid AS 'Desktop flow Id',
w.createdon AS 'Created on',
w.modifiedon AS 'Last modified on',
w.definition AS 'Script',
w.ownerid AS 'Owner Id',
s.fullname AS 'Owner name',
s.internalemailaddress AS 'Owner email'
FROM
workflow w
JOIN
systemuser s ON w.ownerid = s.systemuserid
WHERE
w.category = 6
AND w.definition IS NOT NULL
AND (
LOWER(w.definition) LIKE '%bit.ly%' OR
LOWER(w.definition) LIKE '%linkedin.com%' OR
LOWER(w.definition) LIKE '%aka.ms%' OR
LOWER(w.definition) LIKE '%tinyurl.com%' OR
LOWER(w.definition) LIKE '%goo.gl%' OR
LOWER(w.definition) LIKE '%t.co%' OR
LOWER(w.definition) LIKE '%fb.me%' OR
LOWER(w.definition) LIKE '%is.gd%' OR
LOWER(w.definition) LIKE '%buff.ly%'
);
Script-etan erroreen kudeaketa falta
Kontsulta honek erroreak kudeatzeko mekanismorik ez duten mahaigaineko fluxuak bilatzen ditu, hala nola on block error
or on error
, script-en exekuzioan sendotasuna eta fidagarritasuna bermatzeko.
SELECT
w.name AS 'Desktop flow',
w.workflowid AS 'Desktop flow Id',
w.createdon AS 'Created on',
w.modifiedon AS 'Last modified on',
w.definition AS 'Script',
w.ownerid AS 'Owner Id',
s.fullname AS 'Owner name',
s.internalemailaddress AS 'Owner email'
FROM
workflow w
JOIN
systemuser s ON w.ownerid = s.systemuserid
WHERE
w.category = 6
AND w.definition IS NOT NULL
AND NOT (LOWER(w.definition) LIKE '%on block error%' OR LOWER(w.definition) LIKE '%on error%');
Gobernantzarekin lotutako kontsulta adibideak V2 ekintza-erregistroetarako
Oharra
Atal honekin jarraitu aurretik, ziurtatu Mahaigaineko Fluxuen Erregistroak V2 gaituta dagoela zure ingurunean eta mahaigaineko fluxuen exekuzioak dituzula.
Mahaigaineko fluxua URL sarbide mugatuarekin exekutatzen da
Kontsulta honek azken hiru asteetan mahaigaineko fluxu jakin batean web zerbitzuen deiak (Web Zerbitzua Deitu ekintza) aurkitzen ditu. Emaitza hau baliagarria da susmagarriak izan daitezkeen amaiera-puntuak edo mugatutako API deiak identifikatu eta aztertzeko.
SELECT
JSON_VALUE(f.data, '$.name') AS ActionName,
f.data AS 'Action log',
f.parentobjectid AS 'Parent object id',
f.createdon AS 'Log created on',
w.name AS 'Desktop flow',
w.workflowid AS 'Desktop flow Id',
w.createdon AS 'Created on',
w.modifiedon AS 'Last modified on',
w.definition AS 'Script',
w.ownerid AS 'Owner Id',
s.fullname AS 'Owner name',
s.internalemailaddress AS 'Owner email'
FROM
[flowlog] f
JOIN flowsession fs ON f.parentobjectid = fs.flowsessionid
JOIN workflow w ON fs.regardingobjectid = w.workflowid
JOIN systemuser s ON w.ownerid = s.systemuserid
WHERE
w.workflowid = '[specific_flow_id]' -- Replace with the actual flow ID
AND f.createdon >= DATEADD(day, -21, GETDATE())
AND JSON_VALUE(f.data, '$.name') = 'Invoke web service'
AND (
f.data LIKE '%contoso-default.crm.dynamics.com/api%'
OR f.data LIKE '%api.second-restricted-url.net%'
OR f.data LIKE '%api.third-restricted-url.de%'
OR f.data LIKE '%api.phishing-example.com%'
);
Mahaigaineko fluxua kode kriptografikoarekin exekutatzen da
Kontsulta honek mahaigaineko fluxuen exekuzioak aztertzen ditu azken zazpi egunetan kode kriptografikoa izan duten PowerShell script ekintzen bila.
-- Queries actions logs named 'Run PowerShell script' that contain code that that uses cryptographic libraries
-- and terms such as "AES", "RSA", "encryption", or "decryption," which may indicate risky operations
SELECT top(1)
JSON_VALUE(data, '$.name') AS ActionName,
JSON_VALUE(data, '$.inputs') AS Inputs,
JSON_VALUE(data, '$.outputs') AS Outputs
FROM
[flowlog]
WHERE
JSON_VALUE(data, '$.name') = 'Run PowerShell script'
AND createdon >= DATEADD(day, -7, GETDATE())
AND (
JSON_VALUE(data, '$.inputs') LIKE '%AES%'
OR JSON_VALUE(data, '$.inputs') LIKE '%RSA%'
OR JSON_VALUE(data, '$.inputs') LIKE '%encryption%'
OR JSON_VALUE(data, '$.inputs') LIKE '%decryption%'
)
ORDER BY
ActionName
Mahaigaineko fluxua pro-kodearen erabilerarekin exekutatzen da
Kontsulta hau zertxobait aurreratuagoa da. Azken zazpi egunetako pro-kodetze atalak (VBScript, PowerShell, JavaScript, .NET edo Python bezalakoak) dituzten mahaigaineko fluxu-exekuzio desberdinak (Fluxu Saioak) identifikatzen eta zenbatzen ditu, eta emaitzak mahaigaineko fluxuaren arabera taldekatzen ditu.
WITH ProCodingSessions AS (
SELECT
fs.flowsessionid,
f.data AS 'Action log',
f.parentobjectid AS 'Parent object id',
f.createdon AS 'Log created on',
w.name AS 'Desktop flow',
w.workflowid AS 'Desktop flow Id',
w.createdon AS 'Created on',
w.modifiedon AS 'Last modified on',
w.definition AS 'Script',
w.ownerid AS 'Owner Id',
s.fullname AS 'Owner name',
s.internalemailaddress AS 'Owner email'
FROM [flowlog] f
JOIN flowsession fs ON f.parentobjectid = fs.flowsessionid
JOIN workflow w ON fs.regardingobjectid = w.workflowid
JOIN systemuser s ON w.ownerid = s.systemuserid
WHERE f.createdon >= DATEADD(day, -7, GETDATE())
AND (
LOWER(w.definition) LIKE '%runvbscript%' OR
LOWER(w.definition) LIKE '%runpowershellscript%' OR
LOWER(w.definition) LIKE '%runjavascript%' OR
LOWER(w.definition) LIKE '%rundotnetscript%' OR
LOWER(w.definition) LIKE '%runpythonscript%'
)
),
FlowCounts AS (
SELECT
p.[Desktop flow],
p.[Desktop flow Id],
p.[Created on],
p.[Last modified on],
p.[Script],
p.[Owner Id],
p.[Owner name],
p.[Owner email],
COUNT(DISTINCT p.flowsessionid) AS ProCodingSessionCount
FROM ProCodingSessions p
GROUP BY
p.[Desktop flow],
p.[Desktop flow Id],
p.[Created on],
p.[Last modified on],
p.[Script],
p.[Owner Id],
p.[Owner name],
p.[Owner email]
)
SELECT
f.[Desktop flow],
f.[Desktop flow Id],
f.[Created on],
f.[Last modified on],
f.[Script],
f.[Owner Id],
f.[Owner name],
f.[Owner email],
f.ProCodingSessionCount AS 'Runs with pro-code'
FROM FlowCounts f
ORDER BY f.ProCodingSessionCount DESC;
V2 ekintza-erregistroetarako errore eta errendimenduarekin lotutako kontsultak
Mahaigaineko fluxuaren 10 ekintza hutsal nagusiak
Kontsulta honek azken zazpi egunetan izandako errore kopuruaren arabera huts egin duten 10 ekintza nagusiak itzultzen ditu.
SELECT TOP(10)
JSON_VALUE(data, '$.name') AS ActionName,
SUM(CASE WHEN JSON_VALUE(data, '$.status') = 'Failed' THEN 1 ELSE 0 END) AS ErrorCount
FROM [flowlog]
WHERE createdon >= DATEADD(day, -7, GETDATE())
GROUP BY JSON_VALUE(data, '$.name')
HAVING SUM(CASE WHEN JSON_VALUE(data, '$.status') = 'Failed' THEN 1 ELSE 0 END) > 0
ORDER BY ErrorCount DESC;
10 errore-kode nagusiak zenbaketarekin
SELECT TOP(10)
JSON_VALUE(data, '$.errorCode') AS ErrorCode,
COUNT(*) AS OccurrenceCount
FROM [flowlog]
WHERE createdon >= DATEADD(day, -7, GETDATE())
AND JSON_VALUE(data, '$.status') = 'Failed'
GROUP BY JSON_VALUE(data, '$.errorCode')
ORDER BY OccurrenceCount DESC;