我写了一个脚本来重新启动远程服务器上的几个ASP.NET网站:
$computerName = #...
$password = #...
$secureStringPassword = ConvertTo-SecureString -AsPlainText -Force -String $password
$userName = #...
$credential= New-Object System.Management.Automation.PSCredential ($userName, $secureStringPassword)
$websiteNames = #..., #..., #...
Get-PSSession -ComputerName $computerName -Credential $credential | Remove-PSSession
$psSession = New-PSSession -ComputerName $computerName -Credential $credential
Invoke-Command -Session $psSession -ScriptBlock { $websiteNames | foreach{ Stop-Website -Name $_ } }
Invoke-Command -Session $psSession -ScriptBlock { $websiteNames | foreach{ Start-Website -Name $_ } }
$psSession | Remove-PSSession
由于某些原因,我的
Invoke-Command
不能正常运行,我收到了以下错误消息:
当在无法验证参数“Name”的参数。该参数为空。提供一个有效值作为参数,然后再次尝试运行命令。
Enter-PSSession
之后运行命令时,在-ScriptBlock
中运行它可以正常工作,但会有-Name
参数的混乱。有什么办法可以解决这个问题吗?请帮忙指导。