![Como obter o "Tipo de logon de credenciais de caminho físico" para site e aplicativo?](https://rvso.com/image/668794/Como%20obter%20o%20%22Tipo%20de%20logon%20de%20credenciais%20de%20caminho%20f%C3%ADsico%22%20para%20site%20e%20aplicativo%3F.png)
Eu tenho um site IIS 8 configurado com um aplicativo dentro.
Usando o Powershell, como posso obter a configuração "Tipo de logon de credenciais do caminho físico" (o padrão é ClearText) para o site principal e o aplicativo?
O que eu tentei,
Configure um usuário específico e um "Tipo de logon" não padrão 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 eu esperaria, mas não há nenhuma propriedade "Tipo de logon" disponível.
(get-item IIS:\Sites\MYSITE).virtualDirectoryDefaults
Mostra o caminho, caminho físico, nome de usuário e senha em branco e tem "logonMethod" definido como "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 estão todos em branco e o "logonMethod" é definido como o padrão "ClearText".
O motivo pelo qual desejo isso é adicionar uma verificação a um script que garante que os sites atendam a uma "lista de verificação de configurações", onde consegui mapear todas as outras configurações do PowerShell.
Responder1
A solução é desviar-se doAdministração Webmódulo e emMicrosoft.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.
OAdicionar tipoversion é importante para evitar o carregamento da instância do servidor IIS-Express.
Para sua informação, porque você precisa criar uma instância do servidor, quaisquer alterações no gerenciador do IIS não estarão disponíveis até que você recrie esse objeto.
Responder2
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 normais do thread.
Você pode, no entanto, verificar se o nome de usuário ou a senha estão definidos 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
Responder3
O abaixo retorna o PhysicalPath do VirtualDirectory e o logonMethod, tenho certeza de que isso pode ser feito de forma 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