Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak otworzyc przeglądarkę z konkretnyum adresem z poziomu procedury?
stachuf11
post 9.08.2009, 13:38:28
Post #1





Grupa: Zarejestrowani
Postów: 154
Pomógł: 1
Dołączył: 24.04.2006

Ostrzeżenie: (0%)
-----


witam
z poziomu procedury w mssql 2005 chciałbym uruchomić przeglądarkę internetową z konkretnym adresem

próbuję użyć polecenia

  1. exec master..xp_cmdshell "c:\IEXPLORE.EXE", no_output


plik IEXPLORE.EXE skopiowałem do katalogu c więc ścieżka jest dobra

ale nie otwiera się przeglądarka, nie zgłasza żadnego błędu, executed successfull, , czy ma ktoś jakiś pomysł dlaczego nie działa to polecenie?
pozdrawiam
Stachu

Ten post edytował stachuf11 9.08.2009, 13:59:06
Go to the top of the page
+Quote Post
vokiel
post 9.08.2009, 18:42:02
Post #2





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


xp_cmdshell może być wyłączone ze względów bezpieczeństwa, w 2008 jest chyba domyślnie, trzeba włączyć i ustawić użytkownika, lub nadać prawa do wykonywania procedur systemowych, nie wiem jak w 2005.

Może przetestuj na początek coś prostszego, np.: notepad, nie musisz go nigdzie kopiować bo jest w zmiennych systemowych, a poza tym, nawet jak skopiujesz to działa bez innych plików, IE jednak wymaga innych plików, sam exe nie wystarczy.

Możesz też spróbować uruchomić "c:\IEXPLORE.EXE" z cmd, wtedy zobaczysz czy cokolwiek się dzieje, czy przypadkiem wina nie leży po stronie skopiowanego samego pliku exe.


--------------------
Go to the top of the page
+Quote Post
stachuf11
post 9.08.2009, 21:12:27
Post #3





Grupa: Zarejestrowani
Postów: 154
Pomógł: 1
Dołączył: 24.04.2006

Ostrzeżenie: (0%)
-----


xp_cmdshell było wyłączone, i wtedy był komunikat że jest wyłączone ale włączyłem zanim pisałem ten post,
z poziomu cmd uruchomienie c:\iexplore.exe działa bez problemu,
jak sie ustawia uzytkownikowi prawa do wykonywania procedur systemowych np. w 2008?, bo tego nie robilem, moze tak samo jest w 2005
np polecenie
  1. exec master..xp_cmdshell "dir *.exe"
  2.  
  3.  


działa bez problemu, wyswietlane są pliki z rozsz. exe w katalogu,
inne polecenie np.
  1. exec master..xp_cmdshell "ipconfig"

też działa
a notepad w cmd działa ok, a przy

  1. exec master..xp_cmdshell "notepad"


nie działa, tak samo jak iexplore.exe, wykonanie zapytania jest jako succesfull, zero błedów



nie wiem co jest powodem, w przykładach właśnie tak jest podane uruchomienie plików exe

Stachu

Ten post edytował stachuf11 9.08.2009, 22:30:43
Go to the top of the page
+Quote Post
vokiel
post 10.08.2009, 09:44:43
Post #4





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


Coś mi się kojarzy, że procedury składowane są uruchamiane na prawach konta uruchamiającego usługę MSSQLSERVER. Zatem może trzeba dodać tego użytkownika do grupy administratorzy.

Poza tym znalazłem:
Cytat
Now not just anyone can run this extended stored procedure. If you want to execute this extended stored procedure, you will either need to be a member of the sysadmin role, or have the xp_sqlagent_proxy_account set up on your SQL Server. If a login executing this extended stored procedure is a member of the sysadmin role then the submitted command will run under the security context associated with the SQL Server Service account in which it runs. If the login executing this procedure is not a member of the sysadmin role, then the command uses the xp_sqlagent_proxy_account login security context for determining whether operating system commands can and cannot be run. If there is no xp_sqlagent_proxy_account then using this procedure will fail for all users not in the sysadmin role.

http://sqlblog.com/blogs/tibor_karaszi/arc...ermissions.aspx


--------------------
Go to the top of the page
+Quote Post
prachwal
post 10.08.2009, 20:04:58
Post #5





Grupa: Zarejestrowani
Postów: 171
Pomógł: 18
Dołączył: 13.03.2009
Skąd: lublin

Ostrzeżenie: (0%)
-----


Cytat(stachuf11 @ 9.08.2009, 14:38:28 ) *
z poziomu procedury w mssql 2005 chciałbym uruchomić przeglądarkę internetową z konkretnym adresem


do czego dążysz?
może wystarczy wget.exe do tego co chcesz zrobić
Go to the top of the page
+Quote Post
jmail
post 10.08.2009, 22:41:25
Post #6





Grupa: Zarejestrowani
Postów: 352
Pomógł: 53
Dołączył: 10.08.2009

Ostrzeżenie: (0%)
-----


a może po prostu dwie linijki kodu w C# skompilowane do funkcji wbudowanej i nadanie praw dla NETWORK do wywoływania? Tak będzie chyba najszybciej i obejdziesz zabezpieczenia SQL Server bez konieczności ich modyfikowania.
Go to the top of the page
+Quote Post
stachuf11
post 11.08.2009, 09:02:11
Post #7





Grupa: Zarejestrowani
Postów: 154
Pomógł: 1
Dołączył: 24.04.2006

Ostrzeżenie: (0%)
-----


temat nie jest taki prosty, po dodaniu rekordu w pewnej tabeli w mssql 2005, chcę triggerem after insert otworzyć przeglądarke z konkretnym adresem, w którym id dodanego rekordu będzie podane jako parametr, i wtedy skrypt php wykona resztę
dlatego jest mi to potrzebne


moj użytkownik systemu operacyjnego jest członkiem grupy administratorzy, a loguję się do mssql 2005
przy Windows Authentication, więc powinno byc ok, a nie jest


a mam pytanie
czy komus działa ta komenda?

  1. exec master..xp_cmdshell 'notepad'


pozdrawiam
Stachu
Go to the top of the page
+Quote Post
prachwal
post 11.08.2009, 09:41:59
Post #8





Grupa: Zarejestrowani
Postów: 171
Pomógł: 18
Dołączył: 13.03.2009
Skąd: lublin

Ostrzeżenie: (0%)
-----


http://msdn.microsoft.com/en-us/library/ms190693.aspx

trzymasz logikę po niewłaściwej stronie smile.gif a pomysł z odpalaniem iexplore jest dosłownie kosmiczy smile.gif
wyobraź sobie co by się stało jak byś zrobił update 2 rekordy, z tego co widze raczej nie obczajasz kursorów



dokładnie to co chcesz robić za pomocą PHP zrobisz w T-SQL-u (o ile potrafisz)

jeżeli chodzi o forum to bardzo dobre jest http://wss.pl/frmThreads.aspx?gid=17

teraz mam pytanie zasadnicze po co robisz synchronizację MySQL-a i MSSQL-a?
czy logika aplikacji korzystaz z MSSQL-a czy też MySQL-a
PHP służy do wyświetlania danych czy też robi coś więcej

bo widzisz jakby się okazało że aplikację masz na MSSQL-u a wyświetlasz za pomocą PHP i MySQL-a to tylko pogratulować winksmiley.jpg


Ten post edytował prachwal 11.08.2009, 09:48:45
Go to the top of the page
+Quote Post
stachuf11
post 11.08.2009, 10:12:22
Post #9





Grupa: Zarejestrowani
Postów: 154
Pomógł: 1
Dołączył: 24.04.2006

Ostrzeżenie: (0%)
-----


mam udostępnione xp_cmdshell, już to wczesniej zrobiłem, momo to nie działa u mnie, w sumie na 3 serwerach juz probowałem z takim samym efektem, nie działa
czy konus dziala takie polecenie
  1. exec master..xp_cmdshell 'notepad'
  2.  


jest centrum wydruków masowych, program też do obsługi ale prymitywny w c++, nie mojego autorstwa, nie mam kodów zrodłowych, ten program pracuje na mssql 2005,
usery chcą wysyłać maila automatem do osoby ktora przysłała plik do wydruków masowych w momencie gdy załadują ten plik do programu no i bazy, więc chcę w triggerze afterinsert wywołać swoją stronę, w bazie mysql-a mam osoby przysyłające pliki do wydruku, są też ich nry kadrowe i adresy mailowe , a w nazwie przysyłanego pliku jest nr usera więc najprościej by było otworzyc stronkę z php, która wyśle maila że plik jest załądowany , dodatkowo php wykona jeszczwe pare innych operacji, ile juz osoba plików przysłała itp
dlatego chcę otworzyc to w php



mam jeszcze inny temat, chciałbym otworzyć iexplore z adresem w momencie pojawienia się nowego pliku w katalogu, jak wyłapać takie zdarzenie?

Ten post edytował stachuf11 11.08.2009, 10:27:08
Go to the top of the page
+Quote Post
jmail
post 11.08.2009, 10:19:18
Post #10





Grupa: Zarejestrowani
Postów: 352
Pomógł: 53
Dołączył: 10.08.2009

Ostrzeżenie: (0%)
-----


SQL Server oferuje sam w sobie możliwośc wysyłania maili - zainteresuj się Reporting Services - a do tego z MySQL'a może pobrać dane poprzez linked server. Niepotrzebne to okno.

Co do wyłapania pojawienia się nowego pliku - scheduled task uruchomiony raz na dwie trzy minuty, ktory sprawdzi czas dodania pliku i jeżeli będzie w zakresie od ostatniego uruchomienia to po prostu wywoła jakąś komendę systemowa uruchamiającą stronę.

W C# taka aplikacyjka waży jakieś 15 linii kodu - ale jeżeli chcesz otwierać IE żeby znowu maila wysłać to to bez sensu - od razu w C# wysłać maila - stuknij na PW szczegóły

Ten post edytował jmail 11.08.2009, 10:21:24
Go to the top of the page
+Quote Post
stachuf11
post 11.08.2009, 10:57:05
Post #11





Grupa: Zarejestrowani
Postów: 154
Pomógł: 1
Dołączył: 24.04.2006

Ostrzeżenie: (0%)
-----


sheduled task pomógl
dziekuję serdecznie
pozdrawiam
Stachu
Go to the top of the page
+Quote Post
prachwal
post 11.08.2009, 11:02:50
Post #12





Grupa: Zarejestrowani
Postów: 171
Pomógł: 18
Dołączył: 13.03.2009
Skąd: lublin

Ostrzeżenie: (0%)
-----


Cytat(stachuf11 @ 11.08.2009, 11:12:22 ) *
jest centrum wydruków masowych, program też do obsługi ale prymitywny w c++, nie mojego autorstwa, nie mam kodów zrodłowych, ten program pracuje na mssql 2005,
usery chcą wysyłać maila automatem do osoby ktora przysłała plik do wydruków masowych w momencie gdy załadują ten plik do programu no i bazy, więc chcę w triggerze afterinsert wywołać swoją stronę, w bazie mysql-a mam osoby przysyłające pliki do wydruku, są też ich nry kadrowe i adresy mailowe , a w nazwie przysyłanego pliku jest nr usera więc najprościej by było otworzyc stronkę z php, która wyśle maila że plik jest załądowany , dodatkowo php wykona jeszczwe pare innych operacji, ile juz osoba plików przysłała itp
dlatego chcę otworzyc to w php

mam jeszcze inny temat, chciałbym otworzyć iexplore z adresem w momencie pojawienia się nowego pliku w katalogu, jak wyłapać takie zdarzenie?


jaką wersję MSSQL-a tam macie Express, Enterprice.....

wysyłanie maili można zrealizować np. za pomocą procedury CLR lub wbudowanego mechanizmu (nie ma go w wersji Express)

Kolega wspomniał o Report Serwer, ten też potrafi wysyłać ładnie sformatowane raporty

sposób który chcesz użyć jest najgorszym z mozliwych, z wielu powodów np. co z iexplore po zakończeniu procesu wysyłania, do tego lepszy byłby wget.exe, kończy działanie po wywołaniu smile.gif
Go to the top of the page
+Quote Post
stachuf11
post 11.08.2009, 11:17:23
Post #13





Grupa: Zarejestrowani
Postów: 154
Pomógł: 1
Dołączył: 24.04.2006

Ostrzeżenie: (0%)
-----


wersja express
dziekuję sedecznie za pomoc wskazówki i naprowadzenie
pozdrawiam
Stachu
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 22.06.2025 - 03:20