Spuštění skriptu při vypnutí počítače
Dobrý den,
potřeboval bych radu jak zobrazit při vypínání PC hlášku a vypnutí dokončit až po jejim odklepnutí.
V doménové politice v Nastavení systému windows jsem zkoušel jak v nastavení PC, tak v části pro uživatele spustit vbs i cmd skript typu:
MsgBox "Nezapomeňte na ...!"
Obojí bez výsledku.
Je nějaká cesta, jak docílit požadovaného stavu?
Nemyslis nahodou tohle :
Po stisknuti se spusti shutdown cimz vypnes PC
Rozhodně ne jen tou hláškou. Protože odhlašování nebo vypínání prostě vbscript nebo jiný skriptový interpretr ustřelí.
Musel by to být program který nějak sám systému zabrátní se odhlásit /vypnout. Programátor nejsem...
Edit: předpokládám že se bavíme o logoff scriptu?
Start / Spustit / GPEdit.MSC
Konfigurace pocitace / Nastaveni systemu Windows / Skripty (spousteci nebo ukoncovaci)
čili pak by to měl být odhlašovací skript uživatelů v "konfiguraci uživatele/user configuration":
C:\WINDOWS\System32\GroupPolicy\User\Scripts\Logof f
cesta přes computer configuration - windows settings - scripts - shutdown, čili adresář: "C:\WINDOWS\System32\GroupPolicy\Machine\Scripts\S hutdown" se provede ve chvíli kdy už je uživatel odhlášen a gui prostředí končí - případná hláška by se neměla kam zobrazit.
Testoval jsem obě tyto cesta, bohužel se výzva k uživateli vůbec neprojeví.
Postup kde toho docílit vím, problém je v tom, co píše Vladimír.
Ať už dám cmd dávku nebo vbs dle příkladu, tak to proletí a počítač se vypne a uživatel není vyzván k reakci na tuto hlášku. Je přitom jedno, jestli PC uživatel vypíná přes menu Start nebo třeba skriptem shutdown /s /f -t 1. Potřebuji ho pouze upozornit na to, že má něco udělat než odejde domů.
máš pravdu, registroval jsem jen okno cmd.exe s výpisem při vložení do logoff, nic jsem po něm nechtěl a neřešil jestli může zastavit odhlášení.
jde zkusit dát na plochu zástupce batky, s ikonou vypínacího červeného knoflíku. batka vyrobí připomínací hlášku, dá pauzu nebo sleep, další řádek bude shutdown.
ten by byl třeba s oprávněním uživatele "backup operator", se zapamatovaným heslem.
zároveň běžným uživatelům/skupině odebereš právo vypínat počítač:
gpedit.msc - computer conf. - windows settings - security settings - local policies - user rights assigment - vpravo: shutdown system: backup operators group (sebe do ní přidáš)
Jo, tak by to šlo. Představuje to ale obejít všechny PC nebo spáchat dávku, kterou jim toho zástupce na plochu podstrčím. To omezení v GP by ale zase narazilo na problém u managerů, kteří jsou neradi omezování.
Vidím to tak, že jednodušší bude cesta občas po konci směny obejít pár kanceláří, zjistit stav a po několika bububu bez příslušné odezvy udělat zápis o porušení bezpečnosti. Zápis do osobní karty není moc příjemný a oni si to nakonec mezi sebou řeknou, že je zle. Stejně by tu hlášku časem jen odklepávali ...
Musí to být speciální program. V práci máme in-house aplikaci v Delphách, která když běží, tak posílá systému nějaké message které zabraňují uživateli se odhlásit, dokud to neodstřelí. Nevím, jestli je to záměr nebo bug, ale funguje to. (Ta aplikace k tomu neslouží )
Staci negativne odpovedet na zpravu WM_QUERYENDSESSION a Windows maji smulu.
V Delphi to udelas jednoduse - v OnCloseQuery formulare nastavis CanClose := False
Je to jedna z nejcastejsich chyb, kdy programator chce zabranit ukonceni aplikace krizkem, dokud probihaji napr. nejake vypocty a neuvedomi si, ze zabrani nejen vypnuti sve aplikace, pokud neosetri tu zpravu...