Je peux penser à deux approches, mais chacune impliquerait l'écriture de code au-dessus de votre script d'installation, je ne suis plus familier avec Installshield, mais probablement comme les projets d'installation Visual Studio vous avez le concept de custom actes. Je suppose que c'est ce dont vous aurez besoin.
Je ne décris la première parce que le second est assez complexe (à savoir encore plus complexe que la première!). L'approche évidente est AD. L'extrait de code suivant vous indiquera s'il existe une combinaison nom d'utilisateur/mot de passe. Après avoir obtenu l'utilisateur que je suis sûr que vous pouvez travailler sur quels groupes ils sont.
if (true == String.IsNullOrEmpty(userName)) throw new Exception("userName not set");
DirectoryEntry entry = new DirectoryEntry();
entry.Username = userName; // Use the fully qualified name here
entry.Password = password;
string DomainlessUsername = userName.Substring(userName.LastIndexOf('\\') + 1, userName.Length - userName.LastIndexOf('\\') - 1);
// We know straight away that if this is empty, we've drawn a blank!
if (true == String.IsNullOrEmpty(DomainlessUsername)) throw new Exception("userName not set");
DirectorySearcher search = new DirectorySearcher(entry);
search.Filter = "(SAMAccountName=" + DomainlessUsername + ")";
search.PropertiesToLoad.Add("cn");
SearchResult result = search.FindOne();
if (null == result)
{
throw new Exception("FindOne executed without exception, but result was null");
}
else
{
// some logging here
}
return true;
Maintenant, il y a un problème potentiel ici si le compte qui exécute ce code ne dispose pas de privilèges d'accès AD. Je ne vais pas entrer dans les détails à ce poste parce que nous espérons que le code ci-dessus sera suffisant pour vous aider, mais le principe de base de l'approche alternative consiste à débourser directement advapi32.dll à des fonctions telles que LogonUser. (Gardez à l'esprit que, encore une fois, mon problème était de valider les informations d'identification ne vérifiant pas les droits d'administrateur, mais il y a probablement un lien là-bas si vous êtes prêt à creuser).
Espérons que certaines de cette aide!
merci pour la réponse rapide. Bien que de cette manière, si un groupe est ajouté au groupe admin, nous devons toujours déterminer si l'utilisateur appartient à ce groupe. –