2011-09-21 16 views
9

Sto scrivendo uno script PowerShell per eseguire determinate funzioni amministrative in IIS 7.5.PowerShell + WebAdministration - Come ottenere il sito Web dall'applicazione web?

import-module WebAdministration 

In alcuni casi ho conoscere il nome dell'applicazione web voglio lavorare con, ma non il sito web è sotto. Ottenere l'applicazione è semplice:

$app = get-webapplication -name 'MyApp' 

Ma non riesco a capire come ottenere il nome del sito web data l'app. Non sembra essere una proprietà fuori dall'oggetto webapplication. La cosa migliore che ho trovato è stata cercare di ottenerlo tramite percorso test:

get-website | where {test-path "iis:\sites\$_.name\MyApp"} 

Per qualche motivo che risulta vuoto. Qualche idea su come andare su questo? Grazie in anticipo.

risposta

13

Questo è come è possibile ottenere il nome del sito:

$siteName = (Get-WebApplication -name 'YourApp').GetParentElement().Attributes['name'].Value 

O ancora più breve:

$siteName = (Get-WebApplication -name 'YourApp').GetParentElement()['name'] 
+0

bingo. sei un eroe. –

3

non ho scavato nella perchè, ma se si utilizza un asterisco o una domanda da nessuna parte nella stringa funziona come un carattere jolly e restituisce come tale.

I.E.

get-website -name '*myapp' 

    Name  ID State Physical Path  Bindings 
    ----  -- ----- -------------  -------- 

    myapp  12 Started C:\inetpub\wwwroot http:*:80: 
    amyapp  13 Stopped C:\anetpub\   http:*:81: 
aamyapp  14 Stopped C:\another\place  http:172.198.1.2:80:host.header.com 

o

get-website -name '?myapp' 

Name ID State Physical Path Bindings 
---- -- ----- ------------- -------- 
amyapp 13 Stopped C:\anetpub http:*:81: