- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
要求是一一提取服务器名称并检查AppPool状态,如果发现已停止,则使其运行。下面的代码没有帮助。
$ErrorActionPreference = "Continue"
$status = gc -path "D:\Servers\server.txt"|ForEach-Object (invoke-command -ComputerName $_ -ScriptBlock {Import-Module Webadministration Get-WebAppPoolState -name (gc "D:\AppPool.txt")})
if ($status.value -eq "Started")
{
Write-Host ("ApppPool already running")
}
else
{
Invoke-Command -ScriptBlock {Start-WebAppPool}
Write-host ("AppPool has started successfully")
}
最佳答案
您的代码存在多个问题,我已逐一检查了这些问题,以便您可以了解是什么阻止了它正常工作。
foreach
的语法错误,在这种情况下您需要使用 {}
而不是 ()
。普通括号仅像 ForEach ($number in $numArray ) {CODE}
这样使用,但您不是这样使用的。
您在 foreach
循环之外检查 $status
- 因此仅评估 $status
一次(使用最终计算机 AppPool 状态) )而不是针对每台计算机。
您的第二个 Invoke-Command
没有指定 ComputerName
参数,因此仅在本地运行该命令,而不是针对远程计算机,这意味着 AppPool 永远不会启动.
当您使用 gc "D:\AppPool.txt"
指定 AppPool 名称时,此文件必须存在于每台远程计算机上才能正常工作。我已将其更改为作为参数传递到命令中,因此文件只需位于运行脚本的计算机上。
$Credentials = Get-Credential
$AppPools = Get-Content "D:\AppPool.txt"
$Servers = Get-Content -Path "D:\Servers\server.txt"
ForEach ($Server in $Servers) {
ForEach ($AppPool in $AppPools) {
$AppPoolState = Invoke-Command -ComputerName $Server -ScriptBlock {Import-Module WebAdministration; Get-WebAppPoolState -Name $args[0] } -ArgumentList $AppPool -Credential $Credentials
if ($AppPoolState.Value -eq "Started")
{
Write-Host "$AppPool AppPool already running on $Server"
}
else
{
Invoke-Command -ComputerName $Server -ScriptBlock {Start-WebAppPool -Name $args[0] } -ArgumentList $AppPool -Credential $Credentials
Write-Host "$AppPool AppPool started on $Server"
}
}
}
注意:我运行一个非特权帐户,因此必须提供凭据。如果您运行脚本的帐户对所有远程计算机具有适当的权限,您可以删除三个凭据引用。
关于powershell - 通过 power-shell 检查 AppPool 状态并在远程计算机上启动它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42980865/
我已使用简单的 Web 发布选项将 nopCommerce 部署为 Azure 应用服务。 然后尝试通过运行 nopCommerce 安装程序来配置安装,我收到以下错误。 The 'IIS APPPO
我正在使用以下代码通过 Kerberos 进行身份验证。 IntPtr logonToken = WindowsIdentity.GetCurrent().Token; string authenti
我根本没有做过任何Windows脚本编写,因此我对如何实现这一功能一无所知。无论如何,基本上我们想要做的是拥有一个脚本,该脚本将带一个参数来循环使用IIS AppPool。我已经在Google上进行了
我需要更改某个网站下所有/选定应用程序的应用程序池。我的 IIS 上有所有网站和应用程序池,但我无法更改它们。有什么想法吗? 这是我到目前为止所做的...这对我来说看起来很奇怪,因为只有字符串在变化,
本文为大家分享了解决IIS APPPOOL\DefaultAppPool登录失败的问题,供大家参考,具体内容如下 添加ASP.NET网站时,选择添加"添加应用程序"连接sql
我很难弄清楚如何为将文件读/写到另一台服务器的 IIS Web 应用程序设置权限。我目前正在访问 '\Server\Path\to\ReadWrite\' 被拒绝。 服务器 A 在承载 Web 应用程
我正在使用 PsEXEC 在我的 MSBuild 上运行以下 cmd。 %systemroot%\system32\inetsrv\appcmd stop apppool /apppool.name:
这是我在几个月内遇到过两次的问题。基本上,我接到一个电话,说我们的站点给出了 HTTP 错误 503,我查看了 IIS7 管理器并注意到 AppPool 已自行关闭。我重新启动它,它继续愉快地前进,直
我需要以特定身份运行 IISExpress。看完这篇文章后how to run iisexpress app pool under a different identity我在\Documents\I
在 ASP.NET 或 WCF 中使用是否安全 ServiceSecurityContext.Current.WindowsIdentity.Name获取执行当前线程的当前用户名? 我想确保在我的 W
我的 Web 应用程序有一个基于 构建的聊天应用程序模块信号机 中心。 该应用程序将有 1000+ 并发用户。我想主持聊天模块在一个单独的应用程序池上将其与我的主应用程序分开,这样 SignalR 就
我在工作中制作了一些较小的 WCF 服务,其中许多是非关键的/仅包含一些调用。我将它们发布到 IIS 服务器,每个服务器都发布到它们自己的“应用程序”。现在我已经养成了为每个应用程序创建一个新的 Ap
我正在使用 Asp.net FW 4.6。 我在同一个应用程序池下有两个应用程序,它们需要(不断地)读取一个预定义的值,该值是要更改的对象。 不能使用静态变量,因为不同的应用程序(即使在同一个应用程序
我有一个在 IIS 8 上运行的 ASP.NET 应用程序。我的应用程序有时不响应客户端记录超时的请求,然后 IIS 开始发送 503 Unavailable 响应代码。每次中断似乎持续 5 分钟,这
我有一个在 Windows 7 计算机上运行的 SQL Server 2008 R2 报表服务器以及一个 ASP.NET 应用程序。 ASP.NET 应用程序向报表服务器发出请求以显示报表列表、呈现报
我正在尝试采用安装网站的现有 MSI 并将其添加到停止 AppPool 的过程中,以便在安装更新时您不必记住在运行安装程序之前停止 AppPool。 下面列出了我设置的自定义操作 它们在 msi
我创建了一个 IIS 管理工具,旨在创建新应用程序、将它们分配到新的 AppPool,并为与该 AppPool 关联的身份添加所需的文件夹 ACL。根据this article ,每当创建新的应用程序
我创建了一个 ASP .Net MVC 3 应用程序,允许用户根据文件名搜索各种媒体文件。这些文件很多,所以我创建了一个倒排索引,并将其存储在内存中。具体来说,我将其描述为 Dictionary>.
我有一个带有六个应用程序池的网络服务器。当我想在 PerfMon 中为特定的 ASP.NET 应用程序添加计数器时,可用实例的名称非常不同。 例如,我有一个名为“FrontEnd”的应用程序池,这些是
我有一台 Win 2008 R2 Enterprise 机器,它在几个网站上运行良好,每个网站都有自己的应用程序池。 我在向 IIS AppPool\A、IIS AppPool\B 等授予权限(使用
我是一名优秀的程序员,十分优秀!