【发布时间】:2016-03-22 22:22:37
【问题描述】:
我想(在 Powershell 中)列出 IIS 中名称包含关键字“UK”的所有网站。然后,我想将返回站点的物理路径替换为另一个,例如“C:\Sites\Sitex”。
我在这里做错了什么?
到目前为止,我已经尝试过:
get-website | select name,physicalpath | where { $_.name -like "*UK*" }
它可以很好地显示我的 IIS 中名称包含关键字“UK”的所有站点。
但是,当我这样做时:
get-website | select physicalpath | where { $_.name -like "*UK*" }
它什么都不显示!
我想这可能是因为我的“where”子句中没有我的选择中不存在的字段! (虽然在 SQL 中这会起作用)。所以,我会尝试将初始查询包装到一个表中,然后从该表中只选择一列。 Powershell 中是否存在这样的嵌套查询?请帮助语法。 也欢迎其他解决方案。
然后我会做类似的事情
foreach ($sites in $sites) {
Set-ItemProperty ???? -name 物理路径 -value "C:\Sites\Sitex"
}
请在语法方面提供任何帮助,以及在 Set-ItemProperty 之后应该写什么参数。 非常感谢!
================= 同时尝试这样的事情:
Import-Module WebAdministration
dir IIS:\Sites # lists all sites
dir IIS:\Sites | ForEach-Object {
# web site name $_Name
if($_.Name -like "*UK*") {
$_.Name
$_.PhysicalPath = "C:\Inetpub"
}
}
没有错误,它似乎也不起作用。
if($_.Name -like "*UK*") 的行为与预期不符,因为它会输出名称中不包含 UK 的其他站点。
顺便说一句,我正在使用 Powershell_ISE.exe。
【问题讨论】:
标签: asp.net powershell iis