processen stoppen als admin

Status
Niet open voor verdere reacties.

Bellie

Gebruiker
Lid geworden
8 dec 2004
Berichten
69
Hallo allemaal,

ik heb een probleem met het uitvoeren van een batch script dat er voor zorgt dat bepaalde processen worden gestopt.
Als ik deze batch zelf uitvoer als admin (rechter muis button), dan worden alle taskkill commands netjes uitgevoerd.
Zet ik dezelfde batch, om periodiek te worden uitgevoerd, in de windows task schedular, met de 'uitvoeren als admin' aan, dan zie ik in de command prompt terug dat het access denied wordt.
Dit geeft naar mij de indicatie dat er dus niet voldoende rechten zijn om de processen te killen, ondanks de admin voorwaarden er zijn.

Code:
taskkill /F /IM proces01.exe
taskkill /F /IM proces01.exe
taskkill /F /IM proces01.exe

heeft er iemand een tip, waar ik moet zoeken naar de oplossing?

gr. Mark
 
Laatst bewerkt door een moderator:
Waarom gebruik je nog het oude batch? En niet de krachtigere Powershell?
 
Waarom gebruik je nog het oude batch? En niet de krachtigere Powershell?

Hoi Aar, dank je voor je reactie, maar de reden daarvoor is het gebrek aan kennis in PowerShell.
Maar zijn de rechten issue's dan verholpen, bij het gebruik van PowerShell?
 
Powershell gaat beter om met het beheren van taken met admin-rechten.


Code:
# Controleren of het script wordt uitgevoerd met administratorrechten
if (-not ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
    Write-Host "Dit script moet worden uitgevoerd met administratorrechten."
    exit
}

# Zoek de proces-ID(s) van het proces "proces01.exe"
$procesnaam = "proces01.exe"
$proces = Get-Process | Where-Object { $_.ProcessName -eq $procesnaam }

# Controleren of er overeenkomende processen zijn gevonden
if ($proces -eq $null) {
    Write-Host "Er zijn geen processen gevonden met de naam '$procesnaam'."
    exit
}

# Beëindig elk overeenkomend proces
foreach ($p in $proces) {
    Stop-Process -Id $p.Id -Force
    Write-Host "Proces '$($p.ProcessName)' (PID: $($p.Id)) is beëindigd."
}
 
PowerShell is de beste manier. Onderstaand niet getest, het is oude kennis van vroeger. Een snelkoppeling naar cmd.exe geef je admin rechten. In deze snelkoppeling start je met /C iets op, bijvoorbeeld.

Code:
%windir%\System32\cmd.exe /C:%windir%\System32\notepad.exe
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan