bbader
Wed Mar 23 07:05:17 CST 2005
Well if we expect a service to be running and it is not then we would
determine that something is either wrong with the machine or it has
been compromised. We need a point in time to say that we expect all
the services that we are concerned with to be running and if there is
no response from them then something is worng.
Now I have come up with a solution to this problem. In my research I
have found that the RemoteValidation group is started towards the end
of the boot up process. It looks like on most systems the only
service in this group is netlogon. What I am going to do is create a
service and place it in this group. All this service will do is write
a value to a registry key. My main service will be watching this
registry key and when it has been set for the end of boot I will know
that all services that I expect to be running are running.
On Fri, 18 Mar 2005 09:10:28 -0800, Ray Trent <ratrent@nospam.nospam>
wrote:
>Interesting requirement, but the fundamental question remains: why? What
>is it about "most" "non-user-environment" services "already being
>started" that makes a difference to your service? I use quotes, because
>all of those are rather ambiguous requirements.
>
>Also, please note that this fails the "what if everyone did it?" test...
>There could be numerous services out there that employ a similar tactic
>to the one you are proposing, and there's no way to guarantee that
>you'll load after them (kind of by definition).
>
>Bob Bader wrote:
>> Thanks to everyone who has responded already.
>>
>> Let me try to explain a little further. We are trying to pick a point
>> in time during the boot process so that we can be relatively sure that
>> all services that are going to run before a user logs in are running.
>> With what we are trying to do we can't have our app depend on
>> something else because we do not know what that something else is. We
>> have no knowledge of what items are installed on the machine that we
>> are interested in and that is why we are trying to pick a time of
>> where we can try to be sure that they are running. We need this
>> because if no user logs in then we will not have any idea what state
>> the machine is in.
>>
>> Now getting back to the logon screen. My impression is that once the
>> logon screen is displayed all services that are not part of a users
>> environment are already running. For instance there is Acme Corp.
>> that is providing anti virus protection. They would have an automatic
>> service that runs on the system and a application part that the user
>> can also use. The service part is run during boot and should be
>> running by the time the logon screen is displayed. Our app doesn't
>> know that Acme has been installed but we want to be relatively sure
>> that the service is running.
>>
>> If we knew that someone would log into the machine then we would not
>> have a problem but in the case of a server a user will most likely not
>> be logged in, This is why we need to know at what point we are in the
>> boot process and is why we chose the logon screen. Unfortunetly
>> winlogon is run early in the process but I believe that it doesn't
>> display the GINA until later in the boot process after other services
>> are running. So now I am looking at the possibility of picking
>> another service that looks like it loads late in the process but
>> before the user logs in.
>>
>> Thanks again,
>> Bob
>>
>> On Fri, 18 Mar 2005 08:52:16 +0300, "Maxim S. Shatskih"
>> <maxim@storagecraft.com> wrote:
>>
>>
>>>>I need to know when the Winlogon screen is displayed. I want this as
>>>>it is at this point that my app is going to know that all services are
>>>>up and running.
>>>
>>>Winlogon screen is displayed long before all services are up and running.
>>>
>>>--
>>>Maxim Shatskih, Windows DDK MVP
>>>StorageCraft Corporation
>>>maxim@storagecraft.com
>>>
http://www.storagecraft.com
>>>
>>>
>>
>>
>
>--
>../ray\..