Question IIS6: Modifier la liste des IPs allowed or denied
- Tarik
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 19
- Remerciements reçus 0
il y a 15 ans 4 mois #3317
par Tarik
IIS6: Modifier la liste des IPs allowed or denied a été créé par Tarik
Bonjour,
Je désire modifier la metabase d'IIS avec powershell.
Je n'ai pas réussi à trouver un autre moyen qu'utiliser ADSI pour acceder à l'objet IPSecurity qui permet d'appliquer des permissions au service d'IIS W3SVC.
[code:1]
$IIsWebVirtualDirObj = [ADSI]\"IIS://$server/W3SVC\"
$IIsIPSecurityObj = $IIsWebVirtualDirObj.Get(\"IPSecurity\"«»)[/code:1]
Ensuite, je veux appliquer un Deny à tous les computers, sauf à un certain nombre d'IP.
Pour ce faire:
[code:1][System.__ComObject].InvokeMember(\"GrantByDefault\",[System.Reflection.BindingFlags]::«»SetProperty,$null,$IIsIPSecurityObj,$False)
#' Insert a new exception.
[Array]$IPList = [System.__ComObject].InvokeMember(\"IPGrant\",[System.Reflection.BindingFlags]::GetProperty,$null,$IIsIPSecurityObj,$null)
If ($IPList.Count -eq 0){
write-host \"INFO: Currently no IP Addresses are allowed\"
}else{
write-host \"INFO: Currently \" $IPList.Count \" IP Addresses are allowed\"
}
$IPList = $IPList + \"123.0.0.1,255.255.255.0\"
$str = new-object System.String \"121.1.0.1,255.255.255.0\"
$str = $str + \"121.1.0.2,255.255.255.0\"
$str = $str + \"121.1.0.3,255.255.255.0\"
[System.__ComObject].InvokeMember(\"IPGrant\",[System.Reflection.BindingFlags]::«»SetProperty,$null,$IIsIPSecurityObj,$str)
[/code:1]
Cependant, Ce code n'ajoute qu'une seule IP dans le tableau IPGrant. J'ai chercher plusieurs solutions mais sans succès.
toute aide est bienvenue...
Merci à vous
Je désire modifier la metabase d'IIS avec powershell.
Je n'ai pas réussi à trouver un autre moyen qu'utiliser ADSI pour acceder à l'objet IPSecurity qui permet d'appliquer des permissions au service d'IIS W3SVC.
[code:1]
$IIsWebVirtualDirObj = [ADSI]\"IIS://$server/W3SVC\"
$IIsIPSecurityObj = $IIsWebVirtualDirObj.Get(\"IPSecurity\"«»)[/code:1]
Ensuite, je veux appliquer un Deny à tous les computers, sauf à un certain nombre d'IP.
Pour ce faire:
[code:1][System.__ComObject].InvokeMember(\"GrantByDefault\",[System.Reflection.BindingFlags]::«»SetProperty,$null,$IIsIPSecurityObj,$False)
#' Insert a new exception.
[Array]$IPList = [System.__ComObject].InvokeMember(\"IPGrant\",[System.Reflection.BindingFlags]::GetProperty,$null,$IIsIPSecurityObj,$null)
If ($IPList.Count -eq 0){
write-host \"INFO: Currently no IP Addresses are allowed\"
}else{
write-host \"INFO: Currently \" $IPList.Count \" IP Addresses are allowed\"
}
$IPList = $IPList + \"123.0.0.1,255.255.255.0\"
$str = new-object System.String \"121.1.0.1,255.255.255.0\"
$str = $str + \"121.1.0.2,255.255.255.0\"
$str = $str + \"121.1.0.3,255.255.255.0\"
[System.__ComObject].InvokeMember(\"IPGrant\",[System.Reflection.BindingFlags]::«»SetProperty,$null,$IIsIPSecurityObj,$str)
[/code:1]
Cependant, Ce code n'ajoute qu'une seule IP dans le tableau IPGrant. J'ai chercher plusieurs solutions mais sans succès.
toute aide est bienvenue...
Merci à vous
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 15 ans 4 mois #3321
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:IIS6: Modifier la liste des IPs allowed or denied
Salut,
Tartar écrit:
support.microsoft.com/kb/810913/fr
msdn.microsoft.com/en-us/library/ms524354.aspx
As-tu essayé :
- d'appeler IPGrant avec un array au lieu d'une chaine ?
-de 'faire un split(\",\")' sur la chaîne ?
Tu es obligé de passer par COM pour manipuler les membres, ils ne sont pas accessibles par PSBase ?
Tartar écrit:
Le problème se situe peut être sur le type de l'objet contenant les adresses IP, voir :toute aide est bienvenue...
support.microsoft.com/kb/810913/fr
msdn.microsoft.com/en-us/library/ms524354.aspx
As-tu essayé :
- d'appeler IPGrant avec un array au lieu d'une chaine ?
-de 'faire un split(\",\")' sur la chaîne ?
Tu es obligé de passer par COM pour manipuler les membres, ils ne sont pas accessibles par PSBase ?
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Tarik
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 19
- Remerciements reçus 0
il y a 15 ans 4 mois #3322
par Tarik
Réponse de Tarik sur le sujet Re:IIS6: Modifier la liste des IPs allowed or denied
Oui- d'appeler IPGrant avec un array au lieu d'une chaine ?
Non, que veux tu dire?-de 'faire un split(\",\")' sur la chaîne ?
Oui, j'ai essayé des centaines de façon d'accéder aux propriétés mais sans succès. psbase.properties(\"IPSecurity\"), Get ou encore tout simplement $IISobj.IPSecurity...Tu es obligé de passer par COM pour manipuler les membres, ils ne sont pas accessibles par PSBase ?
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 15 ans 4 mois #3346
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:IIS6: Modifier la liste des IPs allowed or denied
Tartar écrit:
Sinon j'en suis au même point que toi
Pourtant d'après ce code C# ton approche devrait fonctionner, peut être ajouter ceci en fin de traitement ce qui ne régle pas le pb pour autant :/
[code:1]
$IIsWebVirtualDirObj.Invoke(\"Put\", @(\"IPSecurity\", $IIsIPSecurityObj));
$IIsWebVirtualDirObj.CommitChanges()
[/code:1]
Je pensais que les 2 adresses n'étaient pas associées alors qu'elle le sont. Autant pour moi.Non, que veux tu dire?
Effectivment pas moyen d'y accéder autrement.Oui, j'ai essayé des centaines de façon d'accéder aux propriétés mais sans succès.
Sinon j'en suis au même point que toi
Pourtant d'après ce code C# ton approche devrait fonctionner, peut être ajouter ceci en fin de traitement ce qui ne régle pas le pb pour autant :/
[code:1]
$IIsWebVirtualDirObj.Invoke(\"Put\", @(\"IPSecurity\", $IIsIPSecurityObj));
$IIsWebVirtualDirObj.CommitChanges()
[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.072 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les initiés
- IIS6: Modifier la liste des IPs allowed or denied