2016-08-11 9 views
7

Próbując dostać tożsamości pul aplikacji w IIS dla konkretnej nazwy, na przykład: testGet App Pool Tożsamość dla IIS w Elektrowni Shell Script

succeded w coraz to poprzez poniżej kod, ale nie chce pętli wszystko webapps, czy jest jakiś łatwy sposób na uzyskanie go przez podanie nazwy?

Import-Module WebAdministration 
Get-WebApplication 

$webapps = Get-WebApplication 
$list = @() 
foreach ($webapp in get-childitem IIS:\AppPools\) 
{ 
    $name = "IIS:\AppPools\" + $webapp.name 
    $item = @{} 
    if ($webapp.name -eq 'Test') 
    {   
     $item = $webapp.processModel.identityType 
     break 
    } 
} 


echo $webapp.processModel.identityType 

Odpowiedz

4

Wystarczy połączyć ścieżkę i pobrać przedmiot. To zadziała:

$item = Get-Item (Join-Path 'IIS:\AppPools\' 'Test') | 
    select -ExpandProperty processModel | 
    select -expand identityType 
+0

Używane poniżej, ale nie działa: $ webapp = "Test" $ item = Get-Item (Join-Path 'IIS: \ AppPools \ $ webapp') | select -ExpandProperty processModel | select -expand identityType – Joseph

+0

Tak, ponieważ musisz użyć 'Get-Item (Join-Path 'IIS: \ AppPools' $ webapp)' zamiast 'Get-Item (Join-Path ') IIS: \ AppPools \ $ webapp ') '... –

+1

Działa jak urok! – Joseph

5

Nie ściśle, co OP chciał, ale google doprowadziło mnie tutaj do sprawdzania wszystkich tożsamości puli aplikacji. To jest moja wersja

Import-Module WebAdministration;Get-ChildItem -Path IIS:\AppPools\ | 
Select-Object name, state, managedRuntimeVersion, managedPipelineMode, @{e={$_.processModel.username};l="username"}, <#@{e={$_.processModel.password};l="password"}, #> @{e={$_.processModel.identityType};l="identityType"} | 
format-table -AutoSize