【问题标题】:Powershell Get-WebsiteState using variable as Name input [duplicate]Powershell Get-WebsiteState使用变量作为名称输入[重复]
【发布时间】:2019-12-23 11:27:50
【问题描述】:

我正在编写一个 powershell 脚本来获取一些 IIS 站点的状态,它使用字符串作为名称可以完美地工作:

$service = (Invoke-Command -ComputerName $ComputerName  {Import-Module WebAdministration; Get-WebsiteState -Name "DefaultWebsite"}).value

但是,当我尝试在名称中传递变量时,它不再起作用,而是现在返回我服务器上所有 IIS 站点的状态

$service = (Invoke-Command -ComputerName $ComputerName  {Import-Module WebAdministration; Get-WebsiteState -Name "$serv"}).value

我似乎没有尝试解决此问题 - 任何建议都将不胜感激!

【问题讨论】:

标签: powershell scope remoting


【解决方案1】:

您需要将 $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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-06
    相关资源
    最近更新 更多