Nejčastěji odpovídající uživatel
Jak se zbavit potrvzovací hlášky při automatickém vypnutí vzdáleného pc

Dotaz
-
Situace: Jsou 2 počítače s Win XP professional (SP3). Na jednom pc (říkejme mu třeba PC2) je povoleno připojení ke vzdálené ploše a nainstalován software pro zálohování a automatické vypnutí počítače po ukončení zálohy. PC nejsou v doméně, ale jen ve workgroup.
Na PC1 otevřu klienta vzdálené plochy, připojím se na PC2 pracuji na něm, pak chci ukončit práci na pc2, tak spustím program na zálohování a ukončím připojení ke vzdálené ploše (kliknutím na "křížek"), takže uživatel je stále přihlášen. Na PC2 probíhá záloha, záloha proběhne a zálohující program se snaží vypnout PC. K tomu ale nedojde, protože se objeví hláška - cituji - :
"Pokud vypnete tento vzdálený počítač, nebude jej moci nikdo použít, dokud jej někdo ve vzdáleném místě ručně znovu nespustí. Chcete jej vypnout?"
Pokud zvolím ano dojde k vypnutí PC. Nevíte někdo prosím, jak se této otravné hlášky zbavit? Děkuji za jakoukoliv radu.
úterý 4. května 2010 8:13
Odpovědi
-
Omlouvám se že reaguji tak pozdě, ale musel jsem řešit jiné věci a dostal jsem se k tomu zase až teď
- ad Zálohovací program) jedná se o Cobian Backup
- ad Můj testovací program) použil jsem ExitWindowsEx s parametry EWX_POWEROFF or EWX_SHUTDOWN, což funguje tak jak má až do okamžiku, kdy se aktivuje vzdálená plocha, pak to zobrazuje tu potvrzovací hlášku ( pokud to někoho zajímá, tak je umístěna v user32.dll :P )
- ad Registry) přidal jsem do registrů ShutdownWarningDialogTimeout, ale nepomohlo to
Takže dočasné řešení (pokud nenaleznu lepší) je takové, že v zálohovacím programu Cobian Backup jsem musel zadat akci po ukončení zálohování a to : spustit shutdown -s -t 0 , což vypadá, že funguje, ale potřebuju to ještě otestovat
Jinak pro ujasnění: Nikde netvrdím ( a pokud to tak vyznělo tak se omlouvám ), že je to chyba ve Windows ve smyslu programátorské chyby vývojářů MS, jen jsem psal že to je hláška windows, což opravdu na 99,9 % je :)
A nakonec děkuji za nakopnutí k InitiateSystemShutdown , vypadá to, že tato funkce se s vypnutím PC při spuštěné vzdálené ploše poradí bez problémů. Má ovšem jednu vadu na kráse, na kterou jsem v první chvíli nepřišel, a nebýt komentářů, tak asi tápu do dnešního dne :-/ Je tam chyba v dokumentaci (nebo nepřesnost). A to ta, že je rozdíl mezi InitiateSystemShutdownA a InitiateSystemShutdownW. V manuálu je uvedeno:
BOOL WINAPI InitiateSystemShutdown(
__in_opt LPTSTR lpMachineName,
__in_opt LPTSTR lpMessage,
__in DWORD dwTimeout,
__in BOOL bForceAppsClosed,
__in BOOL bRebootAfterShutdown
);
Parameters
- lpMachineName [in, optional]
-
The network name of the computer to be shut down. If lpMachineName is NULL or an empty string, the function shuts down the local computer.
A Tady je zakopaný pes. to NULL platí jen u ANSI verze !!! Takže pokud na to narazíte, tak pozor :-/
Takže, zálohování funguje i s ukončením PC (ikdyž ne tak, jak bych si to představoval :-/), ale stejně bych rád, kdyby měl někdo tip jak se zbavit toho dotazu té terminálové služby :(
p.s : Anglická verze této hlášky je : “If you shutdown this remote computer no one can use it until someone at the remote site manually restarts it."
- Navržen jako odpověď Jiří JanataMember pondělí 10. května 2010 10:23
- Označen jako odpověď Čik pondělí 10. května 2010 10:45
pondělí 10. května 2010 9:21 -
S jakymi parametry?
POWEROFF, FORCE,FORCEIFHUNG? Co http://msdn.microsoft.com/en-us/library/aa376873(v=VS.85).aspx s bForceAppsClosed?
MP
- Navržen jako odpověď Jiří JanataMember sobota 8. května 2010 20:09
- Označen jako odpověď Čik pondělí 10. května 2010 10:45
úterý 4. května 2010 12:00Moderátor -
když zadáš obyčejný příkaz do příkazové řádky: shutdown -s -t 0 -f tak se to vypne bez nutnosti potvrzování. Není to chyba Windows, je to chyba té aplikace, protože ona musí být na takovéto situace připravena:) co je to za zálohovací SW?
- Navržen jako odpověď Jiří JanataMember sobota 8. května 2010 20:07
- Označen jako odpověď Čik pondělí 10. května 2010 10:45
úterý 4. května 2010 15:21
Všechny reakce
-
Ahoj,
toto je bohuzel spis dotaz na autora zalohovaciho sw resp. chybove hlaseni pro nej. Pokud muzes scriptovat pouzij prikaz "shutdown -s -f"
Zkus take nastavit:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows]
"ShutdownWarningDialogTimeout"=dword:00000001MP
úterý 4. května 2010 9:06Moderátor -
Nejprve děkuji za rychlou odpověď :)
Takže z 99% to (podle mě) nejspíš nebude chyba zálohovacího programu, ale je to spíš hláška windows.
Důvod proč si to myslím: Abych vyloučil chybu zálohovacího programu, tak jsem si rychle naprogramoval vlastní aplikaci v Delphi, která v podstatě nedělá nic jiného, že nastaví timer, který se po určité době, kterou si nastavíte v aplikaci, pokusí ukončit windows. Jak program na zálohování ( neprogramoval jsem já :) ), tak i ta moje aplikace se chová stejně.
Prostě když se aplikace pokusí ukončit windows (v mém případě pomoci funkce ExitWindowsEx viz http://msdn.microsoft.com/en-us/library/aa376868%28VS.85%29.aspx), tak to vyhodí tu hlášku.
Pokusím se podívat na nastavení registru, co jste mi poslal a zkusím taky se podívat na to, jak se bude chovat shutdown -s -f
úterý 4. května 2010 10:43 -
S jakymi parametry?
POWEROFF, FORCE,FORCEIFHUNG? Co http://msdn.microsoft.com/en-us/library/aa376873(v=VS.85).aspx s bForceAppsClosed?
MP
- Navržen jako odpověď Jiří JanataMember sobota 8. května 2010 20:09
- Označen jako odpověď Čik pondělí 10. května 2010 10:45
úterý 4. května 2010 12:00Moderátor -
když zadáš obyčejný příkaz do příkazové řádky: shutdown -s -t 0 -f tak se to vypne bez nutnosti potvrzování. Není to chyba Windows, je to chyba té aplikace, protože ona musí být na takovéto situace připravena:) co je to za zálohovací SW?
- Navržen jako odpověď Jiří JanataMember sobota 8. května 2010 20:07
- Označen jako odpověď Čik pondělí 10. května 2010 10:45
úterý 4. května 2010 15:21 -
Omlouvám se že reaguji tak pozdě, ale musel jsem řešit jiné věci a dostal jsem se k tomu zase až teď
- ad Zálohovací program) jedná se o Cobian Backup
- ad Můj testovací program) použil jsem ExitWindowsEx s parametry EWX_POWEROFF or EWX_SHUTDOWN, což funguje tak jak má až do okamžiku, kdy se aktivuje vzdálená plocha, pak to zobrazuje tu potvrzovací hlášku ( pokud to někoho zajímá, tak je umístěna v user32.dll :P )
- ad Registry) přidal jsem do registrů ShutdownWarningDialogTimeout, ale nepomohlo to
Takže dočasné řešení (pokud nenaleznu lepší) je takové, že v zálohovacím programu Cobian Backup jsem musel zadat akci po ukončení zálohování a to : spustit shutdown -s -t 0 , což vypadá, že funguje, ale potřebuju to ještě otestovat
Jinak pro ujasnění: Nikde netvrdím ( a pokud to tak vyznělo tak se omlouvám ), že je to chyba ve Windows ve smyslu programátorské chyby vývojářů MS, jen jsem psal že to je hláška windows, což opravdu na 99,9 % je :)
A nakonec děkuji za nakopnutí k InitiateSystemShutdown , vypadá to, že tato funkce se s vypnutím PC při spuštěné vzdálené ploše poradí bez problémů. Má ovšem jednu vadu na kráse, na kterou jsem v první chvíli nepřišel, a nebýt komentářů, tak asi tápu do dnešního dne :-/ Je tam chyba v dokumentaci (nebo nepřesnost). A to ta, že je rozdíl mezi InitiateSystemShutdownA a InitiateSystemShutdownW. V manuálu je uvedeno:
BOOL WINAPI InitiateSystemShutdown(
__in_opt LPTSTR lpMachineName,
__in_opt LPTSTR lpMessage,
__in DWORD dwTimeout,
__in BOOL bForceAppsClosed,
__in BOOL bRebootAfterShutdown
);
Parameters
- lpMachineName [in, optional]
-
The network name of the computer to be shut down. If lpMachineName is NULL or an empty string, the function shuts down the local computer.
A Tady je zakopaný pes. to NULL platí jen u ANSI verze !!! Takže pokud na to narazíte, tak pozor :-/
Takže, zálohování funguje i s ukončením PC (ikdyž ne tak, jak bych si to představoval :-/), ale stejně bych rád, kdyby měl někdo tip jak se zbavit toho dotazu té terminálové služby :(
p.s : Anglická verze této hlášky je : “If you shutdown this remote computer no one can use it until someone at the remote site manually restarts it."
- Navržen jako odpověď Jiří JanataMember pondělí 10. května 2010 10:23
- Označen jako odpověď Čik pondělí 10. května 2010 10:45
pondělí 10. května 2010 9:21 -
Jak tam máš napsaný po zálohování spustit shutdown -s -t 0 tak bych tam ještě přidal parametr f jako Force, takže by to pak vypadalo: shutdown -s -t 0 -f díky tomu se to ukončí i kdyby byl třeba přihlášený ještě jiný uživatel, připadně spuštěný nějaký program, který by zabraňoval vypnutí...pondělí 10. května 2010 10:11
-
No já se snažím (pokud to jde) raději moc force nepoužívat
1) můžu přijít o data
2) nepoznám kdo / co působí problém s vypnutím
Takže raději oželím jedno nevypnutí než ztrátu / poškození dat :)
pondělí 10. května 2010 10:21 -
:) oke, já myslel, že ti tam šlo o to to vypnout za každou cenu...;) kdyžtak označ odpovědi...dík:)pondělí 10. května 2010 10:23
-
No pokud napr. restartujes server nekolik hodin cesty od tebe tak bez /force (a riskujes ze bude viset na nejake nesmyslne hlasce) jsi sebevrah :) Clovek prece vi zda uz muze pocitac vypnout / restartovat, ne?
MP
pondělí 10. května 2010 10:24Moderátor -
ono asi na tom serveru toho moc nepoběží, když se má vypnout po zálohování, tak bych neviděl tu ztrátu dat tak tragicky, jkao kdyby na tom třeba někdo procoval v nějakém programu a nejdnou by ho to odpojilo a smazalo poslendní práci..pondělí 10. května 2010 10:27
-
Ale já nikde nic o žádném serveru nepsal :)
Příklad: Počítač doma s Win XP Pro, ráno odcházím z domova, spustím Cobian Backup, nastavím mu novou úlohu, tak že před spuštěním záloh nechá provést ty dlouhotrvající výpočty (rendering, zpracování videa, mat. výpočty), pak vše zazálohuje a vypne PC, ať zbytečně neběží. A když si třeba odpoledne vzpomenu, že jsem třeba doma zapomněl nějaký dokument, tak se přihlásím stáhnu si dokument, nechám pc dál pracovat a to se má vypnout a ... hláška o vypnutí :-)
pondělí 10. května 2010 10:55