iis PowerShell + WebAdministration -如何从Web应用程序获取网站?

yb3bgrhw  于 2023-06-30  发布在  Shell
关注(0)|答案(4)|浏览(94)

我正在编写一个PowerShell脚本来执行IIS 7.5中的某些管理功能。

import-module WebAdministration

在某些情况下,我知道我想使用的Web应用程序的名称,但不知道它所在的网站。获取应用程序很容易:

$app = get-webapplication -name 'MyApp'

但我不知道如何获得网站的名称给定的应用程序。它似乎不是webapplication对象的属性。我能想到的最好的方法是尝试通过测试路径获取它:

get-website | where {test-path "iis:\sites\$_.name\MyApp"}

不知道为什么一无所获。有什么想法吗?先谢谢你。

f0ofjuux

f0ofjuux1#

这就是你如何获得网站名称:

$siteName = (Get-WebApplication -name 'YourApp').GetParentElement().Attributes['name'].Value

或者更短:

$siteName = (Get-WebApplication -name 'YourApp').GetParentElement()['name']
km0tfn4u

km0tfn4u2#

我还没有深入研究为什么,但是如果在字符串中的任何地方使用星号或问号,它就像通配符一样工作并返回。

get-website -name '*myapp'

   Name      ID   State    Physical Path        Bindings
   ----      --   -----    -------------        --------

   myapp     12   Started  C:\inetpub\wwwroot   http:*:80:
  amyapp     13   Stopped  C:\anetpub\          http:*:81:
 aamyapp     14   Stopped  C:\another\place     http:172.198.1.2:80:host.header.com

get-website -name '?myapp'

Name   ID State   Physical Path Bindings
----   -- -----   ------------- --------
amyapp 13 Stopped C:\anetpub    http:*:81:
9rnv2umw

9rnv2umw3#

试试这个

$app = get-webapplication -name 'MyApp'
foreach($a in $app)
{
$a.Attributes[0].Value;
}

这将为您提供所有Web应用程序的名称,有时您可以为单个Web应用程序提供多个名称。
有关详细信息,请参阅链接
http://nisanthkv.blog.com/2012/07/06/name-of-web-applications-using-powershell/
希望有帮助。

raogr8fs

raogr8fs4#

为什么这是如此复杂和令人费解?!
这应该是**工作:
$WebApplicationExists =(Get-WebApplication| Where-Object { $_.Name -eq $WebAppName }|测量-对象)。计数-gt 0
这个方法的作用是:
$WebApplicationExists =(Get-WebApplication -Name $WebAppName|测量-对象)。计数-gt 0
$PSVersionTable.PSVersion
主要和次要构建版本
电话:+86-10 - 8888888

相关问题