代码之家  ›  专栏  ›  技术社区  ›  Lukas Rieger

如何获取站点的物理路径属性

  •  0
  • Lukas Rieger  · 技术社区  · 7 年前

    PS C:\Windows\system32> $sm = Get-IISServerManager
    
    PS C:\Windows\system32> $sm.Sites
    
    Name             ID   State      Physical Path                  Bindings                                                                                                                                                                                                 
    ----             --   -----      -------------                  --------                                                                                                                                                                                                 
    Default Web Site 1    Started    %SystemDrive%\inetpub\wwwroot  http *:80:                                                                                                                                                                                               
    Test             2    Started    C:\inetpub\wwwroot_Test       http *:5007:                                                                                                                                                                                             
    
    
    
    PS C:\Windows\system32> 
    

    但我找不到对象的任何对应属性。

    $sm.Sites[0] | Format-List *
    
    
    
    ApplicationDefaults        : Microsoft.Web.Administration.ApplicationDefaults
    Applications               : {Default Web Site/, ...}
    Bindings                   : {http *:80:}
    Id                         : 1
    Limits                     : Microsoft.Web.Administration.SiteLimits
    LogFile                    : Microsoft.Web.Administration.SiteLogFile
    Name                       : Default Web Site
    ServerAutoStart            : True
    State                      : Started
    TraceFailedRequestsLogging : Microsoft.Web.Administration.SiteTraceFailedRequestsLogging
    VirtualDirectoryDefaults   : Microsoft.Web.Administration.VirtualDirectoryDefaults
    Attributes                 : {name, id, serverAutoStart, state}
    ChildElements              : {bindings, limits, logFile, traceFailedRequestsLogging...}
    ElementTagName             : site
    IsLocallyStored            : True
    Methods                    : {Start, Stop}
    RawAttributes              : {[name, Default Web Site], [id, 1], [serverAutoStart, True], [state, 1]}
    Schema                     : Microsoft.Web.Administration.ConfigurationElementSchema
    

    直接问题:

    间接问题:

    1 回复  |  直到 7 年前
        1
  •  4
  •   Lukas Rieger    7 年前

    经过几个小时的反编译和调试,我发现powershell在内部使用的表达式:

    $_.Applications["/"].VirtualDirectories["/"].PhysicalPath

    不知道没有反编译程序你怎么会发现这一点。

        2
  •  1
  •   ΩmegaMan    7 年前

    Import-Module Webadministration
    
    gci "IIS:\Sites\{target site name}"                                `
                        | Where-Object {$_.NodeType -eq 'application'} `
                        | Sort-Object -Property PhysicalPath, name