【问题标题】:Finding physical path on iis via power Shell通过powerShell在iis上查找物理路径
【发布时间】:2020-09-21 20:54:48
【问题描述】:

我想找到一个 IIS 站点物理路径并将其存储到一个变量,但是显示的结果有这么多行,是否可以只将“C:\inetpub\wwwroot”存储在如下的 $Directory 之类的变量中线?

我的命令

$Site = Get-IISSite "Default Web Site"
$Site

###结果

Name             ID   State      Physical Path                  Bindings                                                                                                                      
----             --   -----      -------------                  --------                                                                                                                      
Default Web Site 1    Started    **C:\inetpub\wwwroot**             http *:80:                                                                                                                    
                                                                http 192.168.97.7:80:                                                                                                         
                                                                net.tcp 808:*                                                                                                                 
                                                                net.msmq localhost                                                                                                            
                                                                msmq.formatname localhost                                                                                                     
                                                                net.pipe *

谢谢

【问题讨论】:

    标签: powershell iis


    【解决方案1】:

    要使 Pba 中的代码更短,您可以使用“点符号”来扩展您所追求的属性:

    $Directory = 
        Get-IISSite "Default Web Site" | 
        Foreach-Object {$_.Applications.VirtualDirectories.PhysicalPath}
    $Directory
    

    这样更容易实际看到属性之间的关系。

    【讨论】:

    • 更短,不需要 foreach:(Get-IISSite "Default Web Site").Applications.VirtualDirectories.PhysicalPath
    【解决方案2】:

    这给了我预期的结果

    书面版本:

    $Directory = Get-IISSite "Default Web Site" | Foreach-Object {$_.Applications} | Foreach-Object {$_.VirtualDirectories} | Foreach-Object {$_.PhysicalPath}
    

    代码略短的别名版本(可读性较差,因此不推荐)

    $Directory = Get-IISSite "Default Web Site" | % {$_.Applications} | % {$_.VirtualDirectories} | % {$_.PhysicalPath}
    

    这将循环通过 IIS 并返回工作目录。请注意,当您开始使用应用程序或虚拟目录时,您将获得更多结果,因此在这种情况下,您需要稍微摆弄一下 foreach 循环。

    【讨论】:

    • 我建议避免使用别名,另一方面使用缩进使您的代码更具可读性。 ;-)
    • 真的!我会用更详细的陈述来编辑答案!
    猜你喜欢
    • 2011-04-25
    • 2019-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-11
    相关资源
    最近更新 更多