psurikov
psurikov

Reputation: 3458

How to get localized version of built-in windows 'Network Service' account?

In order to setup my web application I need to give a full control to a certain folder for a 'NETWORK SERVICE' account. It works fine, but on a non English systems I'm getting System.Security.Principal.IdentityNotMappedException . This is because the name of this built-in account is localized for that system (I'm using harcoded value 'NETWORK SERVICE'). Is there a way to find out programmatically what the localized version of 'NETWORK SERVICE' is?

Upvotes: 11

Views: 3249

Answers (2)

Henning Krause
Henning Krause

Reputation: 5422

Just use this code:

var account = new SecurityIdentifier(WellKnownSidType.NetworkServiceSid, null).Translate(typeof(NTAccount)).Value;

Upvotes: 19

Frédéric Hamidi
Frédéric Hamidi

Reputation: 262919

I guess you can p/invoke LookupAccountSid(), since it returns the localized account name. The SID of Network Service is S-1-5-20.

You can find the method signature and an invocation example here.

Upvotes: 2

Related Questions