Vra

Het enige iemand weet wat die gebruiker voorregte benodig word vir die volgende kode nodig om suksesvol uit te voer as 'n geskeduleerde taak op Windows Server 2003:

System.Diagnostics.Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName)

As jy nie hardloop as geskeduleerde taak maw onder 'n aangemeld gebruiker, so lank as wat die gebruiker 'n lid is van "Performance Monitor gebruikers", hierdie kode sal nie 'n uitsondering te gooi.

Wanneer hardloop as 'n geskeduleerde taak onder dieselfde rekening, is dit nie.

Die enigste manier wat ek kan kry om dit te werk is om dit uit te voer as 'n lid van die Wet op Plaaslike Administrateur groep.

Enige idees?

Was dit nuttig?

Oplossing

My nederigste verskonings. Die gebruiker Ek is met behulp van was nie 'n lid van "Performance Monitor gebruikers" groep.

Dit is wat nodig is vir NET Framework 1.1 implementering van System.Diagnostics.

Ek het die gebruiker in staat om hierdie groep gevoeg, en alles in orde is.

Ander wenke

Wat gebruikersregte opdragte jy die rekening wat wel soos 'n geskeduleerde taak gegee? Jy moet die betrokke rekening 'Meld aan as 'n bondel werk' in jou plaaslike instellings sekuriteit gee.

Update: Het jou jeug skryf om enige lêers en indien wel doen die geskeduleerde taak gebruiker genoeg regte

Ek klop net 'n toets app wat die proses name skryf van die proses [] verskeidenheid teruggekeer deur Process.GetProcessesByName (Process.GetCurrentProcess (). ProcessName) na 'n lêer en dit werk net mooi as 'n geskeduleerde taak ... selfs hardloop onder die identiteit van 'n gebruiker wat slegs 'n lid van die groep gebruikers (nie eens 'n lid van 'Performance Monitor gebruikers.

Die gids dit skryf aan opgedra regte aan die stelsel, administrateurs en die geskeduleerde taak gebruiker verander.

Enige kans plak jou kode of ten minste 'n klein genoeg brokkie wat dui op die exe versuim as 'n geskeduleerde taak sodat ons kan help diagnoseer die probleem?

Cheers
Kev

Een probleem wat ek gesien het met die lees van die naam proses is dat toegang tot die prestasie tellers gestremde kan kry.

kraak oop jou register en kyk of hierdie sleutel is daar: [HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ PerfProc \ Performance] "Disable Performance Counters" = dword: 00000001

Jy kan óf stel dit aan nul of weggelaat is.

Geneem uit MSDN :

  

Permissions LinkDemand - vir volledige   vertrou vir die onmiddellike oproeper. hierdie   lid kan nie gebruik word deur gedeeltelik   betroubare kode.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top