XML Datei in Powershell einlesen für Button Beschriftung
Hallo an alle,
ich habe eine Frage, kann man in eine xml Datei ein Skript hinterlegen mit denen ich Button benennen?
Ich habe ein Powershell Skript geschrieben mit 30 Button, das Skript wird als ADM ausgeführt und alle Button öffnen Software und Verknüpfungen als ADM.
Wir haben solch ein selbst gebasteltes Tool schon über VB (über 15Jahre alt) sind viele Sachen enthalten die nicht mehr UptoDate sind.
In diesen Tool gibt es eine XML die man selbst verwalten kann und seine Tools selbst anordnet wie man sie brauch, diese XML würde ich jetzt in Powershell auch integrieren, aber in XML bin ich eine Niete, habe verschiedene Sachen schon ausprobiert bzw gelesen verstehe aber nicht den Sinn.
Ich bräuchte da ein Denk Anstoß bzw Hilfe wie man das erstellt.
Hier ein ausschnitt der XML in VB
<?xml version="1.0" encoding="utf-8"?>
<!--
<Btn_01> bis <Btn_32> = Buttons;
btn_name = Button Name;
pro_pfad = Programmpfad inkl. Dateiname (z.B.: C:\Program Files\XML Notepad 2007\XmlNotepad.exe);
pro_argu = Programm Argumente (bei shutdown.exe z.B.: -f -t 00 -r)
-->
<config>
<!-- Schalter 01 -->
<Btn_01>
<btn_name>Explorer++</btn_name>
<pro_pfad>C:\*\*\Explorer++.exe</pro_pfad>
<pro_argu></pro_argu>
</Btn_01>
<!-- Schalter 02 -->
<Btn_02>
<btn_name></btn_name>
<pro_pfad></pro_pfad>
<pro_argu></pro_argu>
</Btn_02>
<!-- Schalter 03 -->
<Btn_03>
<btn_name>CCfCC</btn_name>
<pro_pfad>C:\Windows\System32\cmd.exe</pro_pfad>
<pro_argu>/c C:\*\CCfCC.cmd</pro_argu>
</Btn_03>
<!-- Schalter 04 -->
<Btn_04>
<btn_name>CMD</btn_name>
<pro_pfad>C:\*\*\cmd.exe</pro_pfad>
<pro_argu></pro_argu>
usw
ich habe eine Frage, kann man in eine xml Datei ein Skript hinterlegen mit denen ich Button benennen?
Ich habe ein Powershell Skript geschrieben mit 30 Button, das Skript wird als ADM ausgeführt und alle Button öffnen Software und Verknüpfungen als ADM.
Wir haben solch ein selbst gebasteltes Tool schon über VB (über 15Jahre alt) sind viele Sachen enthalten die nicht mehr UptoDate sind.
In diesen Tool gibt es eine XML die man selbst verwalten kann und seine Tools selbst anordnet wie man sie brauch, diese XML würde ich jetzt in Powershell auch integrieren, aber in XML bin ich eine Niete, habe verschiedene Sachen schon ausprobiert bzw gelesen verstehe aber nicht den Sinn.
Ich bräuchte da ein Denk Anstoß bzw Hilfe wie man das erstellt.
Hier ein ausschnitt der XML in VB
<?xml version="1.0" encoding="utf-8"?>
<!--
<Btn_01> bis <Btn_32> = Buttons;
btn_name = Button Name;
pro_pfad = Programmpfad inkl. Dateiname (z.B.: C:\Program Files\XML Notepad 2007\XmlNotepad.exe);
pro_argu = Programm Argumente (bei shutdown.exe z.B.: -f -t 00 -r)
-->
<config>
<!-- Schalter 01 -->
<Btn_01>
<btn_name>Explorer++</btn_name>
<pro_pfad>C:\*\*\Explorer++.exe</pro_pfad>
<pro_argu></pro_argu>
</Btn_01>
<!-- Schalter 02 -->
<Btn_02>
<btn_name></btn_name>
<pro_pfad></pro_pfad>
<pro_argu></pro_argu>
</Btn_02>
<!-- Schalter 03 -->
<Btn_03>
<btn_name>CCfCC</btn_name>
<pro_pfad>C:\Windows\System32\cmd.exe</pro_pfad>
<pro_argu>/c C:\*\CCfCC.cmd</pro_argu>
</Btn_03>
<!-- Schalter 04 -->
<Btn_04>
<btn_name>CMD</btn_name>
<pro_pfad>C:\*\*\cmd.exe</pro_pfad>
<pro_argu></pro_argu>
usw
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1780818535
Url: https://administrator.de/forum/xml-datei-in-powershell-einlesen-fuer-button-beschriftung-1780818535.html
Ausgedruckt am: 17.05.2025 um 00:05 Uhr
2 Kommentare
Neuester Kommentar
Servus,
erst einmal, in einer XML ein Skript zu platzieren macht hier ehrlich gesagt nicht viel Sinn, eine XML-Datei führt man ja selbst nicht aus sondern lässt sie durch ein Skript einlesen und deren Inhalt interpretieren.
etwas ähnliches habe ich hier schon einmal gepostet, und zwar in diesem Thread
Powershell Script - Grafische Oberfläche um Anwendungen zu starten
Zwar nicht mit den Einträgen aus einer XML Datei gelesen, aber das lässt sich schnell nachholen
Hier mal ein Beispiel mit einer XML-Datei die folgendermaßen aufgebaut ist
Und der dazu passende Code (Dateiname im Kopf anpassen)
Erzeugt dann folgendes Ergebnis als Fenster zum Starten der in der XML hinterlegten Anwendungen per Doppelklick auf deren Icon.

Grüße Uwe
erst einmal, in einer XML ein Skript zu platzieren macht hier ehrlich gesagt nicht viel Sinn, eine XML-Datei führt man ja selbst nicht aus sondern lässt sie durch ein Skript einlesen und deren Inhalt interpretieren.
etwas ähnliches habe ich hier schon einmal gepostet, und zwar in diesem Thread
Powershell Script - Grafische Oberfläche um Anwendungen zu starten
Zwar nicht mit den Einträgen aus einer XML Datei gelesen, aber das lässt sich schnell nachholen
Hier mal ein Beispiel mit einer XML-Datei die folgendermaßen aufgebaut ist
<?xml version="1.0" encoding="utf-8"?>
<config>
<btn name="Konsole">
<path>C:\Windows\system32\cmd.exe</path>
<args>/k echo Das ist ein Test</args>
</btn>
<btn name="Rechner">
<path>C:\Windows\system32\calc.exe</path>
<args></args>
</btn>
</config>
# config xml file
$config = "D:\myconfig.xml"
# hide powershell console
Add-Type –MemberDefinition '[DllImport("user32.dll")]public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);' -name Window -namespace W32
[void][W32.Window]::ShowWindow((Get-Process -id $pid).MainWindowHandle, 0)
function GenerateForm {
param(
[parameter(mandatory=$true)]$apps
)
# Load Assembly
Add-Type -A System.Windows.Forms
# Form object
$form1 = New-Object System.Windows.Forms.Form -Property @{
ClientSize = '400,300'
Text = "App-Starter"
}
# list view object
$lv = New-Object System.Windows.Forms.ListView -Property @{
MultiSelect= $false
Dock = 5
View = 'LargeIcon'
# double click event
add_DoubleClick = {
$lv.SelectedItems | %{
$params = @{FilePath = $_.Name}
if ($_.Tag){$params.Argumentlist = $_.Tag}
start @params
}
}
}
# add imagelist
$imagelist = New-Object System.Windows.Forms.ImageList
# add icons of apps to imagelist and add apps to listview
$apps | %{$cnt=0}{
if (Test-Path $_.path){
$imagelist.Images.Add([System.Drawing.Icon]::ExtractAssociatedIcon($_.path))
$itm = $lv.Items.Add($_.path,$_.name,$cnt)
$itm.Tag = $_.args
$cnt++
}else{
[System.Windows.Forms.MessageBox]::Show("App with path '$($_.path)' does not exist!")
}
}
# assign imagelist to listview
$lv.LargeImageList = $imagelist
# add listview to form
$form1.Controls.Add($lv)
# show form
[void]$form1.ShowDialog()
}
# call form function with apps as Parameter
GenerateForm -apps ([xml](gc $config)).config.btn

Grüße Uwe