Wie erhalte ich den „Anmeldetyp für physische Pfadanmeldeinformationen“ für Site und Anwendung?

Wie erhalte ich den „Anmeldetyp für physische Pfadanmeldeinformationen“ für Site und Anwendung?

Ich habe eine IIS 8-Website mit einer darin enthaltenen Anwendung eingerichtet.

Wie kann ich mithilfe von Powershell die Einstellung „Anmeldetyp für physische Pfadanmeldeinformationen“ (standardmäßig ClearText) sowohl für die Hauptseite als auch für die Anwendung erhalten?

Was ich versucht habe,

Richten Sie für jede Anwendung einen bestimmten Benutzer und einen nicht standardmäßigen „Anmeldetyp“ ein.

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

Ich erhalte genau die Werte, die ich erwarten würde, aber es ist keine Eigenschaft „Anmeldetyp“ verfügbar.

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

Zeigt Pfad, physischen Pfad, Benutzernamen und Kennwort alle leer an und hat für „Anmeldemethode“ den Standardwert „Klartext“ festgelegt.

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

Und

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

beide zeigen das Gleiche an, Pfad, physischer Pfad, Benutzername und Passwort sind alle leer und die „Anmeldemethode“ ist auf den Standardwert „Klartext“ eingestellt.

Der Grund, warum ich dies möchte, besteht darin, einem Skript eine Prüfung hinzuzufügen, die sicherstellt, dass Sites eine „Einstellungsprüfliste“ erfüllen, wobei ich alle anderen Einstellungen aus Powershell zuordnen konnte.

Antwort1

Die Lösung besteht darin, von derWebAdministrationModul und inMicrosoft.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

kehrt zurück

ClearText

Die Anwendungen[1] geben die zweite Anwendung an, Anwendungen[0] ist die Stammanwendung.

DerAdd-TypDie Version ist wichtig, um ein Laden der IIS-Express-Serverinstanz zu vermeiden.

Zu Ihrer Information: Da Sie eine Instanz des Servers erstellen müssen, sind alle Änderungen im IIS-Manager erst verfügbar, wenn Sie das Objekt neu erstellen.

Antwort2

Ich glaube, Sie sind bereits auf die Antwort gestoßen. Es scheint keine explizite Eigenschaft dafür zu geben, da die angegebenen Anmeldeinformationen nur zum Überschreiben der normalen Thread-Anmeldeinformationen verwendet werden.

Sie können jedoch überprüfen, ob der Benutzername oder das Passwort festgelegt sind und eine Funktion wie diese erstellen

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

Antwort3

Im Folgenden werden der physische Pfad des virtuellen Verzeichnisses und die Anmeldemethode zurückgegeben. Ich bin zuversichtlich, dass dies so durchgeführt werden kann, dass Sie ein bestimmtes „Anwendungsverzeichnis“ ansprechen können.

Get-Item IIS:\Sites\* | Select-Object -ExpandProperty Collection | Select-Object -ExpandProperty Collection | Select-Object -Property physicalPath,logonMethod

verwandte Informationen