PowerShell Script, Anwendung soll nur einmal gestartet werden?
Hallo Zusammen
Windows 2008 R2 Terminal Server.
Ich möchte per PowerShell Skript erreichen das ein TerminalServer User eine Anwendung nur 1x starten kann. Folgendes hab ich dazu schon zusammen. Das funktioniert aber nicht auf User sondern nur auf System ebenen. Soll heißen er findet immer alle Prozesse, sobald die Anwendung bei einem anderen TS-User läuft startet er sie nicht mehr. Mir fehlt irgendwie die Begrenzung auf den Aktuellen TS-User.
Kann mir jemand erklären wie ich das umsetzen kann?
Danke
Gruß
Florian
Windows 2008 R2 Terminal Server.
Ich möchte per PowerShell Skript erreichen das ein TerminalServer User eine Anwendung nur 1x starten kann. Folgendes hab ich dazu schon zusammen. Das funktioniert aber nicht auf User sondern nur auf System ebenen. Soll heißen er findet immer alle Prozesse, sobald die Anwendung bei einem anderen TS-User läuft startet er sie nicht mehr. Mir fehlt irgendwie die Begrenzung auf den Aktuellen TS-User.
Kann mir jemand erklären wie ich das umsetzen kann?
$proc = Get-Process | Where-Object {$_.ProcessName -eq "Anwendung"}
if ($proc -imatch 'Anwendung')
{
'Anwendung ist bereits gestartet'
}
else
{
'Anwendung wird gestartet'
& 'Pfad zur Anwendung'
}
Danke
Gruß
Florian
Please also mark the comments that contributed to the solution of the article
Content-Key: 196680
Url: https://administrator.de/contentid/196680
Printed on: April 19, 2024 at 21:04 o'clock
6 Comments
Latest comment
Hallo,
bitte die < code > < /code > Tags benützen. Ohne Leerzeichen.
Wie wäre es etwa so in der Art:
Gruß
bitte die < code > < /code > Tags benützen. Ohne Leerzeichen.
Wie wäre es etwa so in der Art:
$curUser = [Environment]::UserName
$owners = @{}
gwmi win32_process |% {$owners[$_.handle] = $_.getowner().user}
$proc get-process | Where-Object {$_.ProcessName -eq "Anwendung"} | select processname,@{l="Owner"; e={$owners[$_.id.tostring()]}}
if ($proc -imatch 'Anwendung') -and ( $proc -imatch "$curUser")
{
'Anwendung ist bereits gestartet'
}
else
{
'Anwendung wird gestartet'
& 'Pfad zur Anwendung'
}
Gruß
Hallo,
sry hab ne Klammer vergessen.
Korrigiert:
Gruß
sry hab ne Klammer vergessen.
Korrigiert:
$curUser = [Environment]::UserName
$owners = @{}
gwmi win32_process |% {$owners[$_.handle] = $_.getowner().user}
$proc get-process | Where-Object {$_.ProcessName -eq "Anwendung"} | select processname,@{l="Owner"; e={$owners[$_.id.tostring()]}}
if (($proc -imatch 'Anwendung') -and ( $proc -imatch "$curUser"))
{
'Anwendung ist bereits gestartet'
}
else
{
'Anwendung wird gestartet'
& 'Pfad zur Anwendung'
}
Gruß