# Systmes > Windows > IIS > [IIS 7.5] Le WildCard DNS sur IIS

## zooffy

Bonjour  tous.

J'ai fait un systme de site sur mon serveur avec une instance PreProd et une Instance Prod (je ne suis pas sr de l'emploi du terme "instance")

En gros, dans IIS j'ai fait deux sites, enfin a ressemble  a.

Sur mon site par dfaut (c'est ce qu'il y a marqu dessus dans l'arbre des sites) c'est ma Prod et je spcifie les requtes qui ont le droit d'arriver dans le formulaire qui s'appelle "Bindings" (j'ai une version anglaise). Tout le reste va sur un site qui est ma PreProd et qui n'a aucune spcification de "Bindings"

Alors maintenant le coeur de ma question : avec un de mes domaines (on va dire toto.com) j'ai fait du Wild Card DNS. J'ai conu un site sur www.toto.com et a marche bien puisque je l'ai mis tel que dans le "Bindings".

Mais si je veux faire ragir bidule.toto.com, je dois le spcifier aussi. Sauf que, sur le site www.toto.com on cr des sites avec n'importe quoi devant .toto.com et du coup, je ne peux pas savoir ce qui va arriver comme requte.

Donc, premire question : puis je faire comme pour le Wild Card DNS et indiquer une formulation qui lui dira de tout prendre sous .toto.com (mais pas les autres domaines). J'ai essay * et il m'a dit qu'il en voulait pas.

Dans le cas o cela ne serait pas possible : o se trouve la liste des Bindings ?
Parce que je peux aussi l'ouvrir et insrer une entre suplmentaire par script.

Merci pour votre aide.

----------


## zooffy

J'ai un peu avanc sur le sujet et je n'ai trouv qu'un moyen de faire un ajout par le biais de codage dans mon application pour modifier la MtaBase.

L'ennui c'est que je ne maitrise pas du tout cette structure. J'ai pu voir que c'tait super bien foutu, mais j'ai pas trouv le plan pour m'orient dedans.

D'un autre ct, j'aurais bien aim trouver le moyen de faire un genre de Wild Card DNS mais j'ai beau expliquer tout a  mon ami Google, il ne me rponds pas bien.

Donc si quelqu'un maitrise la MtaBase et veux bien me donner quelques cls pour trouver l'info que je cherche, merci d'avance.

----------


## suchiwa

> J'ai un peu avanc sur le sujet et je n'ai trouv qu'un moyen de faire un ajout par le biais de codage dans mon application pour modifier la MtaBase.
> 
> L'ennui c'est que je ne maitrise pas du tout cette structure. J'ai pu voir que c'tait super bien foutu, mais j'ai pas trouv le plan pour m'orient dedans.
> 
> D'un autre ct, j'aurais bien aim trouver le moyen de faire un genre de Wild Card DNS mais j'ai beau expliquer tout a  mon ami Google, il ne me rponds pas bien.
> 
> Donc si quelqu'un maitrise la MtaBase et veux bien me donner quelques cls pour trouver l'info que je cherche, merci d'avance.


Bonjour,

Je pense qu'un ajout dans un dns local avec un host devrait fonctionner.

Ceci dit, as tu une redirection comme DynDNS ?
Cette page peu peut etre aider, en anglais:
http://www.ntchosting.com/dns/default-dns.html

Vincent.

----------


## zooffy

Merci pour ton aide.

DynDNS, non, j'ai pas ce genre de chose.

J'ai mon serveur avec mon nom de domaine hberg chez GANDI.

J'ai lu la page que tu me donnes. vu que c'est en anglais, je pense avoir loup deu ou trois dtails, mais j'ai compris le principe de base : a explique le Wild Card DNS, chose que je maistrise assez bien.
J'ai pu voir aussi que a donne une configuration pour Apache. Vu que je programme en ASP.NET, ce n'est pas du tout applicable, mais le mme genre de chose existe peut-tre dans le web.config.

Enfin, mon souci exact est surtout de pouvoir ajouter une liaison dans mon site, par le biais de la MetaBase (je pense) par codage dans mon site.

J'ai trouv des choses qui pourrait m'aider l : http://msdn.microsoft.com/fr-fr/library/ms525712

Mais je n'arrive pas  le mettre en oeuvre, j'ai du mal  suivre l'utilisation du DirectiryServices.

Par ailleurs j'ai trouv une autre mthode : http://technet.microsoft.com/fr-fr/l...92(WS.10).aspx

a, j'arrive  la faire  partir d'une ligne de commande DOS en mode administrateur, mais je n'arrive pas  la passer par CodeBehind.

Enfin, voil, je suis pas loin du but, mais je bloque sur la dernire amrche, je crois.

En tout cas merci pour ton aide et si tu as une ide supplmentaire, je prends.

----------


## suchiwa

> Merci pour ton aide.
> 
> DynDNS, non, j'ai pas ce genre de chose.
> 
> J'ai mon serveur avec mon nom de domaine hberg chez GANDI.
> 
> J'ai lu la page que tu me donnes. vu que c'est en anglais, je pense avoir loup deu ou trois dtails, mais j'ai compris le principe de base : a explique le Wild Card DNS, chose que je maistrise assez bien.
> J'ai pu voir aussi que a donne une configuration pour Apache. Vu que je programme en ASP.NET, ce n'est pas du tout applicable, mais le mme genre de chose existe peut-tre dans le web.config.
> 
> ...


Bonjour Zooffy,

J'ai vu ce post, qui reprend quelques similitudes par rapport aux Wild cards :

http://www.developpez.net/forums/d10...t/#post5731345

Vincent

----------


## zooffy

Merci pour ton aide.
Ton lien est trs interressant, mais malheureusement il ne parle que de DNS, de Wild Card et de configuration, qui son des sujets que je maitrise maintenant et qui ne pose aucun prolme.

Mon souci est de pouvoir ajouter une liaison dans le serveur IIS par le biais d'un programme, dans une page web, dvelope en ASP.NET.

Voil, rien de plus.

----------


## suchiwa

> Merci pour ton aide.
> Ton lien est trs interressant, mais malheureusement il ne parle que de DNS, de Wild Card et de configuration, qui son des sujets que je maitrise maintenant et qui ne pose aucun prolme.
> 
> Mon souci est de pouvoir ajouter une liaison dans le serveur IIS par le biais d'un programme, dans une page web, dvelope en ASP.NET.
> 
> Voil, rien de plus.


Bonjour Zoofy,

Pour l'ajout d'une liaison, es tu sur du IIS7+ ?
Car appcmd devrait tre utile ici, avec du powershell, c'est mieux...

appcmd set site /site.name:$IISName "/+bindings.[protocol='https',bindingInformation='*:443:']"

O $IISNam = <ton_site>

Est ce que a rpond  ta question ? Car je ne sais pas si tu es sur du windows 2003 ou 2008, voir 2008 R2...

Vincent

----------


## zooffy

> Pour l'ajout d'une liaison, es tu sur du IIS7+ ?
> Car appcmd devrait tre utile ici, avec du powershell, c'est mieux...


Oui, IIS 7.5



> appcmd set site /site.name:$IISName "/+bindings.[protocol='https',bindingInformation='*:443:']"
> 
> O $IISNam = <ton_site>


a, j'ai trouv, a marche lorsque je mets en comande DOS en mode Administrateur

L o cela ne fonctionne pas c'est quand j'essaie de la passer par le biais de ma page ASPX. Il ne se passe rien, mme pas un message d'erreur, juste comme s'il n'xecutait pas la commande.



> Est ce que a rpond  ta question ? Car je ne sais pas si tu es sur du windows 2003 ou 2008, voir 2008 R2...
> 
> Vincent


Je suis sur ma mahcine en Windows Seven pour mes tests et mon serveur est 2008 R2 64 bit, sur un systme Cloud.

Merci pour ton aide.

----------


## suchiwa

> Oui, IIS 7.5
> 
> a, j'ai trouv, a marche lorsque je mets en comande DOS en mode Administrateur
> 
> L o cela ne fonctionne pas c'est quand j'essaie de la passer par le biais de ma page ASPX. Il ne se passe rien, mme pas un message d'erreur, juste comme s'il n'xecutait pas la commande.
> 
> Je suis sur ma mahcine en Windows Seven pour mes tests et mon serveur est 2008 R2 64 bit, sur un systme Cloud.
> 
> Merci pour ton aide.


Zooffy,

Je ne connais rien en ASPX, mais l'ide, peut tre, crer un .bat ou .ps1 avec le appcmd, puis faire un call ou d'appeler le .bat ou .ps1 qui lance la commande pour le code ASPX.

As tu ton bout de code que je comprenne mieux ?

il y a une variable d'environnement  dclarer pour prendre appcmd sans le chemin complet, l'as tu dclar ?

Vincent

----------


## zooffy

> Je ne connais rien en ASPX, mais l'ide, peut tre, crer un .bat ou .ps1 avec le appcmd, puis faire un call ou d'appeler le .bat ou .ps1 qui lance la commande pour le code ASPX.


Je ne sais pas ce qu'est un .ps1, mais je supose que cela doit tre comme un .bat.
Ton ide de faire un .bat est une bonne ide, sauf que je ne sais pas comment faire. Mon niveau en systme est trop faible.

Donc, si tu avais la gentillesse de me montrer comment : 
- mettre la commande appcmd dans un bat
- lui faire rcuprer un paramettre en entre
- excuter la chose en mode Administrateur

a serait super cool.

Comme a, je pourrais appeller mon .bat avec le Filename et lui envoyer en Arguments la variable du nom du site (c'est la seule chose que je veux envoyer : www.test.maison), le reste est fixe.




> As tu ton bout de code que je comprenne mieux ?


Le code que j'utilise dans ma page est le suivant : 


```

```

Le premier Filename et le premier Arguments est en gros ce que je cherche  envoyer. Mais pour tester la chose, j'ai fais un test avec un .bat tout nul qui prend un ficher et le copie dans un autre rpertoire et a marche.
Donc je peux faire un .bat et lui envoyer un ou plusieurs paramettres




> il y a une variable d'environnement  dclarer pour prendre appcmd sans le chemin complet, l'as tu dclar ?


Si tu parles de la modification du PATH (je suis rest aux anciennes versions o on modifie l'Autoexec.bat !!!) non, pas encore, mais je devrais y arriver, si je trouve l'endroit o on fait a dans Windows 7 et dans Win 2008.


Donc, en gros, ce qu'il me faut c'est un truc du genre : 
- appel du fichier : d:\monbat.bat param1
- intrieur du fichier .bat : 


```

```

Si tu as la gentillesse de me montrer comment faire a, je suis sauv.

Erick

----------


## suchiwa

> Je ne sais pas ce qu'est un .ps1, mais je supose que cela doit tre comme un .bat.


Bonjour Zooffy,

.ps1 pour les scripts powershell. C'est orient objet.
A savoir que sous 7 comme 2008, tu as tout ce qu'il faut pour l'utiliser.




> Donc, si tu avais la gentillesse de me montrer comment : 
> - mettre la commande appcmd dans un bat
> - lui faire rcuprer un paramettre en entre
> - excuter la chose en mode Administrateur


Tu as besoin de crer une fonction, sous powershell c'est de cette faon :
1 tu nommes avec ton bloc note un fichier function.ps1 (attention  ne pas l'enregistrer avec  du *.txt)

2 Dans ton script tu vas dclarer une fonction simple, IISHost qui modifie ton binding


```

```

3 tu l'enregistres  la racine du c:\

Ensuite, quand tu appelles la function IISHost il faut dclarer l'existance de ta fonction en indiquant l'endroit de ton script function.ps1, fonctionne sous powershell :

$workPath = split-path $MyInvocation.MyCommand.Definition
.$workPath\function.ps1

IISHost "www.test.com"

En retour pour information tu devrais avoir :
SITE object "Default Web Site" changed

Sinon c'est une erreur




> Si tu parles de la modification du PATH (je suis rest aux anciennes versions o on modifie l'Autoexec.bat !!!) non, pas encore, mais je devrais y arriver, si je trouve l'endroit o on fait a dans Windows 7 et dans Win 2008.


Dans 7 et 2008, avec powershell c'est toujours au mme endroit.
(A faire en premier, puis relancer le system, setx ne fonctionne pour une session local mais pour l'environnement systme.)

Lance powershell, dans les programmes du menu dmarr.
Je t'invite  lancer la commande suivante  partir du powershell:

$myPath= $env:path
setx /m path ($myPath +";C:\Windows\System32\inetsrv")

Tu vas peut tre rencontr une erreur de signature tape ceci :
set-ExecutionPolicy RemoteSigned

C'est beaucoup d'information si tu en as jamais fait, mais c'est simple.

Peut tre dans ton script ASPX peux tu faire un appel  partir du c:\ du style

powershell IISHost "www.test.com"

Sinon, transcrire a en ASPX, la fonction fonctionne, donc tu peux t'en inspirer...

Vincent

----------


## zooffy

Merci pour ton aide prcieuse et dtaille. a me fais trs plaisir.

Mais bon, vu que je suis un gros Noob, ds qu'il s'agit de faire un truc nouveau, j'ai des problmes.

ALors, pour ne pas trop compliquer les choses, on va les prendre un par un, et  mon avis, a va se solutionner avent d'arriver  la fin de la liste.

Sinon, dans la thorie, j'ai tout compris  ton explication, il me restera  approfondir le PowerShell, a  l'air super puissant.

Bref, mon premier souci (qui doit bloquer tout le reste) est le suivant : je n'arrive pas  finaliser la commande pour le Path de InetSrv. une image vaut meux qu' long discours, voici ce que j'ai dans le PowerShel : 



> Windows PowerShell
> Copyright (C) 2009 Microsoft Corporation. Tous droits rservs.
> 
> PS C:\Users\Erick> Get-ExecutionPolicy
> Restricted
> PS C:\Users\Erick> Set-ExecutionPolicy RemoteSigned
> 
> Modification de la stratgie d'excution
> La stratgie d'excution permet de vous prmunir contre les scripts que vous jugez non fiables. En modifiant la
> ...


J'en dduis qu'il y a un point de scurit activer quelque part, mais pour la trouver, c'est une autre paire de manches.

Saurais tu o cela se trouve ?
Ou une autre commande  lancer ?

----------


## suchiwa

> J'en dduis qu'il y a un point de scurit activer quelque part, mais pour la trouver, c'est une autre paire de manches.
> 
> Saurais tu o cela se trouve ?
> Ou une autre commande  lancer ?


Zooffy,

Tu as pris les marques avec powershell le malin...
Donc il y a entre autres signatures:

AllSigned
Unrestricted
Restricted
RemoteSigned

Unrestricted est bien pour des tests, aprs c'est pas secure, tous les scripts powershell peuvent tre xecuts, en local,  distance...

Mais ici je verrais bien un problme de droits, en tant qu'admin.
Si tu es sous une session user, avec cmd tape:
runas /user:<compte_admin> powershell

une demande de mot de passe  remplir.

Ensuite tu travailles avec une session admin dans un environnement "User"

Vincent

----------


## zooffy

Dsol d'tre pas dou, mais j'ai toujours la mme rponse.

Sur ma machine je suis le seul utilisateur enregistr. Je fais partie du groupe Administrateurs.

J'ai suivi ton lancement (runas) en prenant le vrai compte administrateurs, mais visiblement, je peux pas, il veut pas du mot de passe.

J'ai donc cr un nouvel utilisateur avec un mot de passe tout neuf et en l'ajoutant au groupe Administrateurs et j'ai russi  me connecter au PowerShell (mais aps avec la fentre bleue).

Mais l, la commande Set-ExecutionPolicy RemoteSigned m'a donn le mme rsultat. Comme si la base de registre n'tait pas accessible au admin !!!!

Bref, je suis paum.

----------


## suchiwa

> Dsol d'tre pas dou, mais j'ai toujours la mme rponse.
> 
> Sur ma machine je suis le seul utilisateur enregistr. Je fais partie du groupe Administrateurs.
> 
> J'ai suivi ton lancement (runas) en prenant le vrai compte administrateurs, mais visiblement, je peux pas, il veut pas du mot de passe.
> 
> J'ai donc cr un nouvel utilisateur avec un mot de passe tout neuf et en l'ajoutant au groupe Administrateurs et j'ai russi  me connecter au PowerShell (mais aps avec la fentre bleue).
> 
> Mais l, la commande Set-ExecutionPolicy RemoteSigned m'a donn le mme rsultat. Comme si la base de registre n'tait pas accessible au admin !!!!
> ...


Bonjour Zooffy,

Tes tests actuels les fais tu sur 7 ? Si oui, as tu l'UAC d'activ ? Si oui, dsactive le en suivant ce lien

http://www.depannetonpc.net/fiches-p...windows-7.html

Vrifie si tu n'as pas la mme contrainte sous 2008.


Vincent

----------


## zooffy

Merci pour ton aide.

Je fais mes test sur 7.
J'ai suivi le lien et j'ai dsactiv l'UAC.

J'ai russi  lancer de runas.

J'ai fais le fichier AjoutLiaison.ps1 en racine de D
et j'ai esasy la commande suivante dont voici le rsultat avec dans la fentre qui c'est ouverte aprs le runas : 


```

```

Et l, je comprends pas ce que je peux faire.

----------


## suchiwa

Bonjour Zooffy,

La commande se fait en 2 fois,

#tu dclares ta variable $workpath
$workPath = split-path $MyInvocation.MyCommand.Definition

# tu utilises la variable pour l'utiliser comme une librairie de donnes/package
.$workPath\function.ps1

Vincent

----------


## zooffy

Merci pour ton aide.

J'ai compris et donc j'ai fait comme tu dis et maintenant il me dit a : 


```

```

Et donc l, je crois que je peux ajouter des \, a marchera pas mieux.

En plus, je comprends pas ce qu'il me raconte sur son histoire d'emplacement actif.

----------


## suchiwa

> Merci pour ton aide.
> 
> J'ai compris et donc j'ai fait comme tu dis et maintenant il me dit a : 
> En plus, je comprends pas ce qu'il me raconte sur son histoire d'emplacement actif.


Bonjour Zooffy,

J'ai rencontr le mme problme en faisant la dmarche pas  pas.
Par contre, quand je lance mon script, a fonctionne.
C'est un tout.

Cr un fichier test.ps1 dans lequel tu copies/colles ( enregistrer au mme endroit que ta fonction, d:\):
#begin
$workPath = split-path $MyInvocation.MyCommand.Definition
. $workPath\IIS-functions.ps1

IISHost "www.test.com"
#End

tu le lances  partir de powershell
PS d:\ > ./test.ps1

Ca devrait fonctionner, a fonctionne chez moi.

Vincent

----------


## zooffy

Merci pour ton aide.

Alors reprenons tout au dbut.

J'ai un fichier sur D:\ qui s'appelle IIS-functions.ps1
et qui contient : 


```

```

Ensuite j'ai un fichier test.ps1 toujours sur D:\ et qui contient : 


```

```

Je lance a en commande DOS


```

```

Ce qui me lance la fentre Powershell.
Ensuite je fais a (le massage d'erreur est dedans) :


```

```

Et l, je ne sais pas quoi faire.

----------


## suchiwa

> Le terme *appcmd* n'est pas reconnu comme nom d'applet de commande, fonction,
>  PS D:\>[/code]
> 
> Et l, je ne sais pas quoi faire.


change appcmd par appcmd.exe dans la fonction

Vincent

----------


## zooffy

Heu, mme motif, mme punition



```

```

----------

