Powershell Get-WebsiteState 使用变量作为名称输入
Powershell Get-WebsiteState using variable as Name input
我正在编写一个 powershell 脚本来获取某些 IIS 站点的状态,它使用字符串作为名称时效果很好:
$service = (Invoke-Command -ComputerName $ComputerName {Import-Module WebAdministration; Get-WebsiteState -Name "DefaultWebsite"}).value
然而,当我尝试在名称中传递一个变量时,它不再有效,而是 returns 我服务器上所有 IIS 站点的状态
$service = (Invoke-Command -ComputerName $ComputerName {Import-Module WebAdministration; Get-WebsiteState -Name "$serv"}).value
我似乎没有尝试解决这个问题 - 任何建议将不胜感激!
您需要将 $serv 参数传递给脚本块:
$service = (
Invoke-Command -ComputerName $ComputerName {
param ($serv)
Import-Module WebAdministration
Get-WebsiteState -Name $serv
} -ArgumentList $serv
).value
正如 mklement0 评论的那样,您还可以在 PS3+:
中使用 using
范围
$service = (
Invoke-Command -ComputerName $ComputerName {
Import-Module WebAdministration
Get-WebsiteState -Name $using:serv
}
).value
我正在编写一个 powershell 脚本来获取某些 IIS 站点的状态,它使用字符串作为名称时效果很好:
$service = (Invoke-Command -ComputerName $ComputerName {Import-Module WebAdministration; Get-WebsiteState -Name "DefaultWebsite"}).value
然而,当我尝试在名称中传递一个变量时,它不再有效,而是 returns 我服务器上所有 IIS 站点的状态
$service = (Invoke-Command -ComputerName $ComputerName {Import-Module WebAdministration; Get-WebsiteState -Name "$serv"}).value
我似乎没有尝试解决这个问题 - 任何建议将不胜感激!
您需要将 $serv 参数传递给脚本块:
$service = (
Invoke-Command -ComputerName $ComputerName {
param ($serv)
Import-Module WebAdministration
Get-WebsiteState -Name $serv
} -ArgumentList $serv
).value
正如 mklement0 评论的那样,您还可以在 PS3+:
中使用using
范围
$service = (
Invoke-Command -ComputerName $ComputerName {
Import-Module WebAdministration
Get-WebsiteState -Name $using:serv
}
).value