Problémy se shozením explorer.exe   zodpovězená otázka

VB.NET

Dobrý den,

dělám program a z bezpečnostních důvodů potřebuji shodit process explorer.exe. Mám tento kód:

Dim myProcesses() As Process
myProcesses = Process.GetProcessesByName("explorer")
For f As Integer = 0 To myProcesses.Length - 1
    myProcesses(f).Kill()
Next

Kód funguje, explorer.exe shodí. Ale během několika sekund explorer.exe opět naběhne. Neznáte někdo způsob, jak explorer.exe shodit natrvalo (do vypnutí aplikace, kdy bych ho opět nahodil)?

Děkuji mnohokrát za veškeré náměty.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

I kdyby to šlo, tak by se stejně dal explorer znova vyvolat pomocí Task Manageru.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

To sice ano, ale je taky možnost blokovat stisknutí CTRL + ALT + DELETE.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Aha, to jsem si neuvědomil. Neporadím Vám, nevím o žádném způsobu, lituji. Mohl byste mi ale říct, proč chcete explorer shodit? Nesetkal jsem se s aplikací, která by to vyžadovala..

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Jedná se o software pro analýzu chyb na DPS, počítač je ve výrobě a má přístup do celé podnikové sítě, proto je potřeba minilizovat možnosti operátora na manipulaci s PC tak, aby měl možnost pouze ovládat daný software, nikoliv Windows. Pouze oprávněná osoba (po zadání hesla) bude mít možnost opustit software a tím i spustit explorer.

Jen bych rád předešel dalším nápadům, jak by se to dalo obejít:

- software se spouští automaticky po přihlášení operátora do systému a ostatní účty na počítači jsou pod heslem. Takže by teoreticky neměl být způsob, jak to obejít - za předpokladu, že u toho počítače nebude sedět expert :-)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Když vyvstal takový požadavek na software, téměř vždy jsem to viděl řešené tím, že byl počítač umístěn v zabezpečeném boxu, na kterém byl pouze ovládací panel a sklo, za kterým by monitor. Fungovalo to vždy spolehlivě, vzhledem k tomu, že s tlačítky s přesně danou akcí se toho moc lámat nedalo :-) Ale na druhou stranu, není to esteticky zrovna dílo a implementace takového zabezpečení také není za týden. Přeji mnoho zdaru :-)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Bohužel, ale zde se jedná o opravárenské stanoviště včetně stolu, židle, skeneru pro DataMatrix kód, atd. Navíc je toto pracoviště umístěno přímo v lince, takže si nedovedu představit, jak by se tam dal ten "blackbox" ... a taky operátor potřebuje software ovládat jak klávesnicí, tak myší. A do toho ještě tam potřebuji mít možnost nastavovat různé parametry.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Jediné akceptovatelné řešení je nastavit ve Windows jiný shell (obslužný program uživatelského rozhraní) než je Explorer. To se nastavuje v registru:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]

"Shell"="Explorer.exe"

Místo Explorer.exe nastavte vámi požadovaný program a nic jiného než tento program se po spuštění neobjeví. Žádná nabídka Start, plocha, ikony, hlavní panel, nic. Pravděpodobně půjde spustit správce úloh ale to se dá vyřešit odepřením oprávnění ke spuštění u souboru taskmgr.exe.

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

A ono se nedá vše vyřešit uživatelskými právy ke spouštění? Proč v podstatě bourat systém odebíráním jeho součástí?

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Podle toho co jste napsal soudím, že nevíte zhola nic. Co byste si asi tak představoval zakázat, aby uživatel neměl přístup k žádným funkcím uživatelského rozhraní? A záměna výchozího shellu (Explorer.exe) čímkoliv jiným je naprosto korektní postup, který používá mnoho aplikací...

nahlásit spamnahlásit spam 0 / 2 odpovědětodpovědět

Když nevím, tak se zeptám. Proto ty otazníky na konci obou vět.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

a je tato možnost i pro jednotlivého uživatele? Protože na tom počítači jsou dva uživatelé. Operátor a Administrátor. A u administrátora bych potřeboval ten explorer.exe spustit.

A nebo vlastně, když povolím u administrátora spuštění task manageru, tak by to nemělo být problém.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Shell je společný pro všechny uživatele (což je vidět z větve HKEY_LOCAL_MACHINE). Přesně tak, u členů skupiny Administrators ponechat výchozí oprávnění (tedy i pro spuštění), u požadovaných uživatelů odepřít oprávnění pro spouštění u taskmgr.exe.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zkuste toto:

For o As Integer = 0 To 10  'Opakovat toto například desetkrát
Dim myProcesses() As Process
myProcesses = Process.GetProcessesByName("explorer")
For f As Integer = 0 To myProcesses.Length - 1
    myProcesses(f).Kill()
Next
Next

Zkuste ho vypnout prostě několikrát za sebbou.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback