0
votes

Comment vérifier si l'utilisateur 'IIS AppPool \ MyapppoolName' existe dans PowerShell

J'essaie d'automatiser une certaine configuration de DB pour mes développeurs. Pour le développement et les tests, nous utilisons simplement les comptes de service de l'applicationPooLidentifity (l'un de nos serveurs de test déteste le service réseau de sorte que ce n'est pas une option). Je dois donc configurer des bases de données pour accorder automatiquement des autorisations au compte correct pour IIS. Mais les développeurs utilisent souvent uniquement le script de base de données, pas la base de données et les scripts Web.

À cause de cela, l'IIS AppPool peut ne pas exister au moment où ils exécutent le script dB, ce qui signifie que, par extension, l'utilisateur IIS AppPool \ MyapppoolName n'existera pas non plus. Donc, lorsque j'essaie de leur accorder l'accès à la base de données SQL locale, ils obtiennent une erreur.

La question est de savoir comment puis-je vérifier que ces comptes de service IIS AppPool existent dans PowerShell? Je sais comment confirmer l'existence d'utilisateurs publicitaires ou d'utilisateurs locaux, mais ces comptes de service IIS AppPool ne sont dans aucune liste. Où vivent-ils? Est-ce une liste non accessible depuis PowerShell?

Je peux faire quelque chose de mal comme attraper et gérer l'erreur lors de l'étape des autorisations, mais je préfère demander la permission que le pardon.


0 commentaires

3 Réponses :


0
votes

L'identité AppPool est un compte virtuel qu'il n'apparaîtra pas en tant qu'utilisateur dans la console de gestion de l'utilisateur Windows. Ce docs peut-être serviable: ( HTTPS: // docs.microsoft.com/en-us/iis/manage/configuring-security/application-Videntifities ). Aussi ceci ( https://blogs.msdn.microsoft.com/ericparvin/2015/04/14/how-to-add-Le-ApplicationPoolIDIdentity-a-a-sql-server-login/ )


1 commentaires

Ces liens expliquent ce que les choses IIS AppPool \ userAccount sont, que j'étais déjà au courant. Ils n'offrent aucune information sur la façon d'obtenir une liste d'entre eux. Je suppose que la seule option réelle serait de se déplacer sur la liste des APPPOOLS et de vérifier celles qui utilisent une Apppoolcidité.



0
votes

En fin de compte, j'ai pris une autorisation de pardon-non-permission ici. J'essaie de créer le login SQL et des utilisateurs correspondants et de gérer l'exception si elles ne le peuvent pas.

Edit: P>

Cela semble être le meilleur moyen d'obtenir la liste réelle d'entre eux: P >

$appPoolIdentities = Get-IISAppPool |
   Where-Object {$_.ProcessModel.IdentityType -eq 'ApplicationPoolIdentity'} |
   ForEach-Object {"IIS AppPool\$($_.Name)"}


0 commentaires

1
votes

Autant que je sache, le compte d'autorisation de l'identité du pool d'applications IIS est IIS Apppool \ MyapppoolName. Si nous voulons vérifier que ce compte existe ou non. Nous devons juste vérifier que le nom de MyapppoolName existe ou non.

Pour y parvenir, je vous suggère de pouvoir vous référer à la commande ci-dessous PowerShell pour vérifier que le pool d'applications existe ou non. p>

commande: p>

import-module webadministration

$AppPoolName="Test"

if(Test-Path IIS:\AppPools\$AppPoolName)
{
"AppPool is already there"
return $true;
}
else
{
return $false;
}


1 commentaires

Cela échoue si le pool d'applications n'utilise pas l'AppPoolIDIDIENTITY. Cela créera un faux positif que le nom d'utilisateur existe. Plus de travail devrait être fait - vérifier l'APPPOOL ITEDYTYPE pour s'assurer que c'est 4. C'est faisable, j'espérais une méthode unique magique qui renvoie la liste, mais cette approche est faisable.