Como obter “Tipo de logon de credenciais do caminho físico” para site e aplicativo?

1

Eu tenho uma configuração de site do IIS 8 com um aplicativo dentro.

Usando o Powershell como posso obter a configuração "Tipo de logon de credenciais do caminho físico" (padrão é ClearText) para o site principal e o aplicativo?

O que eu tentei,

Configure um usuário específico e não padrão como "Tipo de login" para cada um dos aplicativos.

(get-item IIS:\Sites\MYSITE).physicalPath
(get-item IIS:\Sites\MYSITE).username
(get-item IIS:\Sites\MYSITE).password

obtenha exatamente os valores que esperaria, mas não há propriedade "Logon Type" disponível.

(get-item IIS:\Sites\MYSITE).virtualDirectoryDefaults

Mostra o caminho, o physicalPath, o nome de usuário e a senha em branco e tem o "logonMethod" definido como o "ClearText" padrão.

(get-item IIS:\Sites\MYSITE).Collection[0].virtualDirectoryDefaults

e

(get-item IIS:\Sites\MYSITE).Collection[1].virtualDirectoryDefaults

ambos mostram o mesmo, o caminho, physicalPath, nome de usuário e senha, todos em branco, e o "logonMethod" é definido como "ClearText" padrão.

O motivo pelo qual eu quero isso é adicionar uma verificação a um script que garante que os sites atendam a uma "lista de verificação de configurações", na qual eu consegui mapear todas as outras configurações do PowerShell.

    
por rob 15.10.2015 / 17:50

3 respostas

1

A solução é desviar-se do módulo WebAdministration para o Microsoft.Web.Administration.ServerManager

Add-Type -AssemblyName "Microsoft.Web.Administration, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"
$iis = new-object Microsoft.Web.Administration.ServerManager
($iis.Sites | where { $_.name -eq "MYSITE" }).applications[1] | select -ExpandProperty VirtualDirectories | select LogonMethod

retorna

ClearText

Os aplicativos [1] indicam o segundo aplicativo, aplicativos [0] é o aplicativo raiz.

A versão Add-Type é importante para evitar o carregamento da instância do servidor IIS-Express.

FYI, porque você precisa criar uma instância do servidor, as alterações no gerenciador do IIS não estarão disponíveis até você recriar esse objeto.

    
por 23.10.2015 / 14:54
0

Eu acho que você já encontrou a resposta. Não parece haver uma propriedade explícita para isso, porque as credenciais fornecidas são usadas apenas para substituir as credenciais de encadeamento normais.

Você pode, no entanto, verificar se o nome de usuário ou a senha estão configurados e criar uma função como esta

function Get-PhysicalLogonType ($site) {
  if($site.username -eq '' -and $site.password -eq '') {
    return 'PassThrough'
  }
  return 'SpecificUser'
}

# ... use it somewhere in your script
$site = (get-item IIS:\site\mysite)
Get-PhysicalLogonType $site
    
por 22.10.2015 / 14:45
0

O abaixo retorna o physicalPath do VirtualDirectory e o logonMethod, estou confiante de que isso pode ser feito de maneira que você possa direcionar um "Diretório de Aplicativos" específico.

Get-Item IIS:\Sites\* | Select-Object -ExpandProperty Collection | Select-Object -ExpandProperty Collection | Select-Object -Property physicalPath,logonMethod
    
por 12.07.2018 / 17:33