PowerShell til XML Converter
Lim inn PowerShell-objekter eller hashtabeller. Få ren XML tilbake.
Hva verktøyet gjør
Hvis du noen gang har trengt å dytte en PowerShell-konfigurasjon inn i en XML-fil — til en DSC-ressurs, en MSBuild-task, en app.config-mal eller en SoapUI-fixture — kjenner du øvelsen. Du ender enten med å kjøre ConvertTo-Xml og skjære bort de stygge <Object Type="...">-innpakningene for hånd, eller å ty til Export-CliXml og få tilbake en CLIXML-payload som ingen utenfor PowerShell vet hvordan man leser. Lim inn PowerShell her, så får du tilbake velformet XML som en vanlig XML-parser godtar — ingen <Property Name="...">-støy, ingen CLIXML-typetagger, bare dataene.
Verktøyet forstår formene PowerShell-kode faktisk bruker. Et PSCustomObject blir et element med barn-elementer navngitt etter hver property. En hashtabell @{ Name = "Ava" } oppfører seg på samme måte. En array laget med @(...) blir et container-element med ett barn per element. Nestede [PSCustomObject]-verdier inne i et parent-objekt kommer gjennom som nestede elementer, ikke som stringifiserte klumper. Booleans ($true, $false) og tall beholder sine native typer i outputen; $null blir et tomt selvlukkende element slik at formen forblir forutsigbar i stedet for at feltet stille forsvinner.
Noen av språkets særegenheter håndteres som et menneske ville forvente. Strenger i doble anførselstegn kommer gjennom uten at interpolasjonsmarkører som $var ekspanderes — vi bevarer det du limte inn, bokstavelig. Here-strings (@" ... "@) behandles som flerlinjet tekstinnhold. Datoer skrevet som [datetime]"2026-04-21" kommer ut som ISO-8601-strenger. Property-navn med bindestreker får et trygt element-navn (PowerShell lar deg skrive "User-Agent" = "..." i en hashtabell, noe som er ulovlig som rå XML-tag — vi konverterer det så outputen fortsatt kan parses). Formen forblir tro mot inputen; XML-en forblir brukbar.
Slik bruker du det
Tre steg. Funker likt enten du limer inn én hashtabell eller et helt konfigurasjonsskript.
Lim inn PowerShell-en din (eller prøv eksempelet)
Slipp skriptet ditt i editoren til venstre. En enkelt [PSCustomObject]@{...}, en nestet hashtabell, en @(...)-array av objekter eller en hel config-blokk — alt går. Klikk Last inn eksempel hvis du vil leke med en realistisk Order-payload først.
Du trenger ikke fjerne kommentarer, pille ut param()-blokker eller rydde skriptet på forhånd. Lim inn det du har. Vi leser bare objekt-literalene og ignorerer resten.
Trykk Konverter
Klikk på den grønne Konverter-knappen. Verktøyet går gjennom PowerShell-strukturen, bevarer hver property og hvert array-element, og bygger XML-en i én omgang. Du ser en kort lastindikator mens det går.
Kopier XML
Panelet til høyre fylles med innrykket XML som enhver standardkompatibel parser vil godta. Dytt det inn i DSC-konfigurasjonen din, MSBuild-fila di, eller hvor enn du trenger det.
Når dette faktisk kommer godt med
Skrive DSC-konfigurasjonspayloads
Du har en PowerShell-hashtabell som beskriver en node-konfigurasjon, og trenger en XML-versjon til en ikke-DSC-consumer eller til dokumentasjon. Lim inn, konverter, ferdig — slutt med å være barnevakt for ConvertTo-Xml-output.
Azure DevOps pipeline-variabelfiler
Pipelines forventer av og til en variabelgruppe som XML. Lim inn PowerShell-hashtabellen du uansett vedlikeholder, og få tilbake XML som passer rett inn i <code>variables.xml</code> — uten håndredigering.
Eksportere Windows-hendelseslogg-payloads
Når du bygger en hendelses-record i PowerShell som et PSCustomObject og må mate det inn i en loggings-pipeline som tar XML, sparer det deg for å skrive en egen serialiserer. Den nestede formen kommer gjennom uendret.
app.config / web.config startmaler
Gjør en PowerShell-innstillings-hashtabell om til en startpunkts-<code>app.config</code> du kan redigere for hånd. Raskere enn å generere en fra bunnen, og holder nøklene synkronisert med skriptene dine.
Vanlige spørsmål
Hvordan er dette forskjellig fra å kjøre ConvertTo-Xml på objektet mitt?
ConvertTo-Xml pakker alt inn i en generisk <Object Type="..."><Property Name="...">-konvolutt — lesbar av PowerShell, stygg overalt ellers. Dette verktøyet slipper ut property-navnene som ekte XML-elementer, så outputen ser ut som XML skrevet av en person for hånd. Ingen <Property Name>-omvei, ingen type-attributt-rot.
Produserer det CLIXML slik Export-CliXml gjør?
Nei — og det er hele poenget. Export-CliXml gir ut CLIXML, et PowerShell-spesifikt format designet for round-tripping tilbake til PowerShell. Hvis du må levere XML-en til et system som ikke er PowerShell (en Java-tjeneste, en config-leser, en XSD-validert pipeline), er CLIXML feil form. Dette verktøyet gir deg vanlig, lesbar XML i stedet.
Kan jeg lime inn en hel .ps1-fil, eller bare objekt-literaler?
Lim inn det du har. Hvis skriptet inneholder en enkelt objekt-literal tildelt til en variabel, er det den som kommer ut. Hvis det er flere top-level hashtabeller eller PSCustomObjects, sendes hver ut som sitt eget element. Funksjonskropper, param()-blokker, imports og Write-Host-linjer ignoreres — bare dataformene spiller noen rolle.
Hvordan håndteres $null, $true, $false og tomme arrays?
$null blir et tomt selvlukkende element slik at formen forblir konsistent (i stedet for at feltet forsvinner). $true og $false blir de bokstavelige strengene true og false. En tom @() blir et tomt container-element. Slik ser downstream-verktøy alltid samme struktur, selv når noen felter ikke er satt.
Og hashtabell-nøkler som ikke er gyldige XML-navn — bindestreker, mellomrom, starter med tall?
Nøkler som "User-Agent" eller "2024-Q1" er lovlige i en PowerShell-hashtabell, men ulovlige som rå XML-elementnavn. Vi skriver dem om til en trygg form (og beholder originalen som attributt der det gir mening), så outputen fortsatt kan parses. Hvis det betyr noe for consumeren din, se på de genererte taggene først.
Lagres koden min?
Koden sendes til backenden for konvertering og lagres ikke — vi logger ikke payloaden. Hvis skriptet er virkelig sensitivt (produksjonscredentials, interne stier), rens det før du limer inn, akkurat som du ville gjort med et hvilket som helst online-verktøy.
Andre verktøy du kanskje trenger
PowerShell til XML er bare en bit av puslespillet. Disse verktøyene passer godt sammen med det: