我想找到并存储一个IIS站点到变量的物理路径,但是显示的结果有很多行,是否可以只存储"C: \inetpub\wwwroot"在下面几行的$Directory这样的变量中?
我的命令
$Site = Get-IISSite "Default Web Site"
$Site
###结果
Name ID State Physical Path Bindings
---- -- ----- ------------- --------
Default Web Site 1 Started **C:inetpubwwwroot** http *:80:
http 192.168.97.7:80:
net.tcp 808:*
net.msmq localhost
msmq.formatname localhost
net.pipe *
感谢
要使Pba中的代码更短,您可以使用;点表示法";扩展你想要的属性:
$Directory =
Get-IISSite "Default Web Site" |
Foreach-Object {$_.Applications.VirtualDirectories.PhysicalPath}
$Directory
通过这种方式,可以更容易地实际查看属性的关系。
这给了我预期的结果
书面版本:
$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循环。