Windows Vista Forums
Vista Forums Home Join Vista Forums Tech Publications Windows 7 Forum Vista Tutorials Webcasts Tags

Welcome to Vista Forums we are your forum for Windows Vista help and discussion. Whether you need help or just want to post an idea you have on Vista, this is the forum for you.
Register at Vista forums...the world biggest Windows Vista resource Join Vista Forums Now

Go Back   Vista Forums > Vista Newsgroups > Vista security

Restarting a Windows Service with C# under Vista when User Account Control is Enabled

Update your Vista Drivers
Reply
 
Thread Tools Display Modes
Old 04-03-2007   #1 (permalink)
gourmet
Guest


 

Restarting a Windows Service with C# under Vista when User Account Control is Enabled

Hello!

I need to restart the "Windows Audio Service" (audiosrv) via C#. I'm
using the ServiceController Class to do this.
It is no problem under XP and no problem under vista if UAC is
disabled.
But with enabled UAC i'm getting a "access refused" exception.
I also tried to do it via console with "net start ..." but the same
error appears.
Three questions:
1. Is it possible to restart the "windows audio service" if UAC is
enabled ?
2. Why does the exception occur? If I do some other stuff, e.g.
starting regedit via Process.Start() the user gets asked if he really
wants that. I would expect the same behaviour for restarting
services.
3. If it's not possible at all: Can I find out programmatically
whether UAC is enabled?

Thanks and excuse my bad english!


My System SpecsSystem Spec
Old 04-03-2007   #2 (permalink)
Willy Denoyette [MVP]
Guest


 

Re: Restarting a Windows Service with C# under Vista when User Account Control is Enabled

"gourmet" <trash@jos.zzn.com> wrote in message
news:1175599768.389379.13120@o5g2000hsb.googlegroups.com...
> Hello!
>
> I need to restart the "Windows Audio Service" (audiosrv) via C#. I'm
> using the ServiceController Class to do this.
> It is no problem under XP and no problem under vista if UAC is
> disabled.
> But with enabled UAC i'm getting a "access refused" exception.
> I also tried to do it via console with "net start ..." but the same
> error appears.
> Three questions:
> 1. Is it possible to restart the "windows audio service" if UAC is
> enabled ?


Yes when running as full "Administrator". That is start the console (cmd interpreter) by
right clicking "Run as Administrator".

> 2. Why does the exception occur? If I do some other stuff, e.g.
> starting regedit via Process.Start() the user gets asked if he really
> wants that. I would expect the same behaviour for restarting
> services.

The exception occurs because you are running as a standard user, only admins can start, stop
.... services.
If you want the same behavior you'll have to insert a "manifest" in your executable file.

<?xml version="1.0" encoding="utf-8" ?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0"
processorArchitecture="X86"
name="someExecName"
type="win32" />
<description>Program description</description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" />
</requestedPrivileges>
</security>
</trustInfo>
</assembly>

To add above manifest to the executable assembly, you have to run mt.exe like this;

mt -manifest somename.exe.manifest -outputresource:somename.exe;#1
PS change the someExecName and Program description to suit your needs...

> 3. If it's not possible at all: Can I find out programmatically
> whether UAC is enabled?


See above.

Willy.

My System SpecsSystem Spec
Old 04-03-2007   #3 (permalink)
Willy Denoyette [MVP]
Guest


 

Re: Restarting a Windows Service with C# under Vista when User Account Control is Enabled

"Willy Denoyette [MVP]" <willy.denoyette@telenet.be> wrote in message
news:up02U4fdHHA.1216@TK2MSFTNGP03.phx.gbl...
> "gourmet" <trash@jos.zzn.com> wrote in message
> news:1175599768.389379.13120@o5g2000hsb.googlegroups.com...
>> Hello!
>>
>> I need to restart the "Windows Audio Service" (audiosrv) via C#. I'm
>> using the ServiceController Class to do this.
>> It is no problem under XP and no problem under vista if UAC is
>> disabled.
>> But with enabled UAC i'm getting a "access refused" exception.
>> I also tried to do it via console with "net start ..." but the same
>> error appears.
>> Three questions:
>> 1. Is it possible to restart the "windows audio service" if UAC is
>> enabled ?

>
> Yes when running as full "Administrator". That is start the console (cmd interpreter) by
> right clicking "Run as Administrator".
>
>> 2. Why does the exception occur? If I do some other stuff, e.g.
>> starting regedit via Process.Start() the user gets asked if he really
>> wants that. I would expect the same behaviour for restarting
>> services.

> The exception occurs because you are running as a standard user, only admins can start,
> stop ... services.
> If you want the same behavior you'll have to insert a "manifest" in your executable file.
>
> <?xml version="1.0" encoding="utf-8" ?>
> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
> <assemblyIdentity version="1.0.0.0"
> processorArchitecture="X86"
> name="someExecName"
> type="win32" />
> <description>Program description</description>
> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
> <security>
> <requestedPrivileges>
> <requestedExecutionLevel level="requireAdministrator" />
> </requestedPrivileges>
> </security>
> </trustInfo>
> </assembly>
>
> To add above manifest to the executable assembly, you have to run mt.exe like this;
>
> mt -manifest somename.exe.manifest -outputresource:somename.exe;#1
> PS change the someExecName and Program description to suit your needs...
>
>> 3. If it's not possible at all: Can I find out programmatically
>> whether UAC is enabled?

>
> See above.
>
> Willy.
>



To further clarify:
save the above manifest in a file called "some.exe.manifest", where someApp is the name of
your executable file.
Say you have "audioCntrl.exe", then you could name your manifest audioCntrl.exe.manifest"
and run mt.exe like:

mt -manifest audioCntrl.exe.manifest -outputresource:audioCntrl.exe;#1

Willy.
PS. type mt /help from the command line for more detailed help on mt.


My System SpecsSystem Spec
Old 04-04-2007   #4 (permalink)
gourmet
Guest


 

Re: Restarting a Windows Service with C# under Vista when User Account Control is Enabled

Thank you very much!

I will try that manifest stuff on friday and will let you know if it
worked for me...




My System SpecsSystem Spec
Reply
Update your Vista Drivers

Thread Tools
Display Modes



Similar Threads
Thread Thread Starter Forum Replies Last Post
Vista User Account Control Roger Stenson Vista General 41 08-18-2007 07:04 PM
When User Account Control is enabled, Vista Games Explorer won't s griz_fan Vista Games 0 06-18-2007 09:00 AM
Inside Windows Vista User Account Control (Mark Russinovich) Milhouse Van Houten Vista security 2 05-25-2007 12:09 AM
Which rights does a user need to control an windows service? Olcay Vista security 2 03-23-2007 10:23 AM
Vista User Account Control Magnus Flysjö Vista security 1 02-02-2007 10:47 AM


Complimentary Industry Resources

Vista Forums has joined forces with TradePub.com to offer you a new, exciting, and entirely free professional resource. Visit http://vistax64.tradepub.com today to browse our selection of complimentary Industry magazines, white papers, webinars, podcasts, and more across 34 industry sectors. No credit cards, coupons, or promo codes required. Try it today!




Vista Forums is an independent web site and has not been authorized,
sponsored, or otherwise approved by Microsoft Corporation.
"Windows Vista", the Start Orb, and related materials are trademarks of Microsoft Corp.
© Designer Media 2005-2008

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51