Powershell 通过power Shell在iis上查找物理路径

Powershell 通过power Shell在iis上查找物理路径,powershell,iis,Powershell,Iis,我想查找并存储一个变量的IIS站点物理路径,但是显示的结果有这么多行,是否可以将“C:\inetpub\wwwroot”存储在变量中,如下面的行中的$Directory 我的命令 ###结果 谢谢这给了我预期的结果 书面版本: $Directory = Get-IISSite "Default Web Site" | Foreach-Object {$_.Applications} | Foreach-Object {$_.VirtualDirectories} | Fore

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

我的命令 ###结果


谢谢这给了我预期的结果

书面版本:

$Directory = Get-IISSite "Default Web Site" | Foreach-Object {$_.Applications} | Foreach-Object {$_.VirtualDirectories} | Foreach-Object {$_.PhysicalPath}
代码略短的别名版本(可读性较差,因此不建议使用)


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

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

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

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

我建议避免使用别名,另一方面使用缩进使代码更具可读性。

真的!我将用一个更具书写性的语句编辑答案!甚至更短,不需要foreach:
(获取IISSite“默认网站”).Applications.VirtualDirectories.PhysicalPath
$Directory = Get-IISSite "Default Web Site" | Foreach-Object {$_.Applications} | Foreach-Object {$_.VirtualDirectories} | Foreach-Object {$_.PhysicalPath}
$Directory = Get-IISSite "Default Web Site" | % {$_.Applications} | % {$_.VirtualDirectories} | % {$_.PhysicalPath}
$Directory = 
    Get-IISSite "Default Web Site" | 
    Foreach-Object {$_.Applications.VirtualDirectories.PhysicalPath}
$Directory