Witam serdecznie
Na wstępie zaznaczam, że nie jestem użytkownikiem Windows 10 i nie będę, ale niestety trafiają się klienci którzy nieświadomie na Windows 10 przechodzą, co powoduje dużo utrudnień i zwiększoną ilość telefonów. Walczę jednak z jedną przypadłością Windowsa 10, jaką jest “zbyt duże obciążenie” systemu podczas startu co prowadzi do przeniesienia usług na dalszy plan.
Ale po kolei.
Posiadam 3 aplikację które korzystają z serwera SQL, w tym wypadku z SQLExpress.
Stąd też podczas uruchamiania systemu, w usługach systemowych powinien (tu właśnie jest problem), uruchomić się usługa SQLExpress a następnie 3 moje aplikacje (która także są w postaci usług). Przez jakiś czas otrzymywałem zgłoszenia że program nie uruchamia się i zazwyczaj po zdalnym zalogowaniu odnajdowałem że moje 3 usługi nie uruchomiły się gdyż usługa SQL Express też nie podniosła się na nogi ze względu na timeout.
Wg informacji ze stackexchange dodałem klucze do rejestru aby SQL jednak czekał nie 15-30 sekund ale 60 sekund przez wyrzuceniem timeout’a co sprawdza się na tyle dobrze, że na 20 uruchomień systemu, tylko raz znalazłem że SQL jednak nie wstał (lepsze to niż nic), ale jednak moje usługi po 30 sekundach widzą, że nie ma podłączenia do SQL więc również wywalają timeouty. I tu zaczyna się problem, bo o ile jestem w stanie napisać kilka prostych batchy żeby sprawdziły czy usługi są uruchomione a jeśli nie - to żeby po kolei je uruchomiły, ale w Windows 10 taki plik wsadowy nie będzie uruchomiony wraz z prawami administratora, przez co nie mam dostępu do usług jako normalny plik wsadowo/wykonywalny. Myślałem żeby to obejść za pomocą runas, ale wymagałoby to żeby użytkownik na miejscu wpisywał hasło administratora, a nawet jeśli użyję przełączniak savecred aby zapisać hasło na przyszłość, to z doświadczenia wiem że pociągnie to może z 2-4 tygodnie aby pewnego dnia dostać znowu telefon od klienta który wymyśli mi że on zainstalował aktualizację do Adobe Readera, zrestartował komputer a teraz nasz program się nie uruchamia i żąda znowu jakiś haseł. Oczywiście klient wręcz nakaże mi spojrzeć dlaczego Adobe Reader ma połączenie do naszego programu i za nic nie zda się tłumaczenie że to nie ma nic do rzeczy.
Podsumowując:
w jaki sposób w Windowsie 10 poradzić sobie z długo uruchamianymi usługami które wyrzucają po prostu błąd timeout, jeśli
a) ustawienie usługi na opóźnienie włączenie automatyczne nie jest rozwiązaniem
b) standardowy plik wsadowy aby te usługi sprawdzić czy działają i jeśli nie działają to uruchomić nie działa, bo plik wsadowy nie ma uprawnień administratora
c) nie mam niestety PowerShella i nie mam możliwości dogrania tego na systemie klienta bo takie coś będzie mnie kosztować przynajmniej rok przechodzenia przez biurokratyczną ścieżkę
d) nie mogę nakazać klientowi reinstalkę systemu z powrotem do siódemki, gdyż jest to “jego system” a nasz program
Jakieś pomysły?