Étant donné un nom de serveur et un chemin physique, j'aimerais pouvoir traquer l'objet IISWebServer et ApplicationPool. L'URL du site Web est également une entrée acceptable.Dans WMI, puis-je utiliser une jointure (ou quelque chose de similaire) pour acquérir l'objet IisWebServer pour un site, nom de serveur donné et emplacement de déploiement
Nos technologies sont IIS , WMI, et l'accès via C# ou Powershell 2. Je suis certain que ce serait plus facile avec IIS 7 its managed API. Nous ne l'avons pas encore.
Voici ce que je peux faire:
obtenir une liste des répertoires virtuels IIS de IISWebVirtualDirSetting et filtre (hors ligne) pour le chemin physique correspondant.
$theVirtualDir = gwmi -Namespace "root/MicrosoftIISv2" `
-ComputerName $servername -authentication PacketPrivacy `
-class "IISWebVirtualDirSetting" `
| where-object {$_.Path -like $deployLocation}
de l'objet répertoire virtuel, je peux obtenir un nom (comme W3SVC/40565456/root). Compte tenu de ce nom, je peux obtenir d'autres goodies, tels que le IIS web server object.
gwmi -Namespace "root/MicrosoftIISv2" `
-ComputerName $servername `
-authentication PacketPrivacy `
-Query "SELECT * FROM IisWebServer WHERE Name='W3SVC/40589473'"
Les questions, retraitée:
1) C'est un langage de requête. Puis-je joindre ou sous-requête afin que 1 requête WMI obtient des serveurs Web basés sur IISWebVirtualDir.Path? Comment?
2) En résolvant 1, vous devrez expliquer comment interroger la propriété Path. Pourquoi est-ce une requête invalide? "SELECT * FROM IISWebVirtualDirSetting WHERE Path='D:\sites\globaldominator'"