C# 如何使用命令行在远程计算机上回收应用程序池
我尝试从命令行运行的vbs文件中包含以下内容:C# 如何使用命令行在远程计算机上回收应用程序池,c#,windows,iis-7,vbscript,application-pool,C#,Windows,Iis 7,Vbscript,Application Pool,我尝试从命令行运行的vbs文件中包含以下内容: strServerName = "ServerName" strAppPoolName = "DefaultAppPool" set objAppPools = GetObject("IIS://" & strServerName & "/w3svc/AppPools/" & strAppPoolName & "") objAppPools.Rec
strServerName = "ServerName"
strAppPoolName = "DefaultAppPool"
set objAppPools = GetObject("IIS://" & strServerName
& "/w3svc/AppPools/" & strAppPoolName & "")
objAppPools.Recycle()
然而,当我从cmd行运行vbs时,我得到以下错误:
Microsoft VBScript运行时错误:ActiveX组件无法创建对象:“获取对象”_
我在本地机器上运行XP,远程机器有IIS 7
如何使其工作?虽然不是vbs文件命令,但可以让vbs执行此命令行
appcmd recycle apppool /apppool.name:string
变量字符串是要回收的应用程序池的名称。例如,要回收名为Marketing的应用程序池,请在命令提示下键入以下内容,然后按ENTER键:
appcmd recycle apppool /apppool.name:Marketing
取自
如果它离您想要的太远,那么我很抱歉。我不确定具体的vb脚本,但我建议使用“appcmd”()
%windir%\system32\inetsrv
添加到您的路径(如果尚未添加)appcmd recycle apppool“apppool\u name”
您是否已在远程计算机上安装并启用IIS7 WMI提供程序 我想它能满足你的大部分需求
这包括pre-req和如何浏览可用的管理选项…确保您可以通过一些调整重置应用程序池…我刚刚从Windows XP机器到Windows 2008R2机器进行了尝试。成功了。所以你肯定走对了方向 如果您正在寻找其他方法,请在命令提示符下尝试此方法。当错误消息不起作用时,它至少会更具体一些
wmic /namespace:"\\root\MicrosoftIISv2" /node:"**serverName**" path IISApplicationPool where (name like '%**DefaultAppPool**%') call recycle
我刚刚偶然发现了这个问题,下面是解决方法: 有一个名为PsExec的小型windows工具,它基本上为您提供了命令行远程访问,您可以从那里使用apppool。您可以从C运行这个命令#
工具如下:使用powershell命令运行它。例如:
Invoke-WMIMethod Recycle -Path "IIsApplicationPool.Name='W3SVC/APPPOOLS/apppoolname'" -Computer "WIN-Computername" -Namespace root\MicrosoftIISv2 -Authentication PacketPrivacy
其中apppoolname是您的应用程序池名称
其中WIN Computername是您的远程/本地服务器名称使用powershell在服务器上远程执行命令:
Invoke-Command -ComputerName <YOUR_IIS_SERVER_NAME> -ScriptBlock { Restart-WebAppPool -Name <YOUR_APP_POOL_NAME> }
Invoke命令-ComputerName-ScriptBlock{Restart WebAppPool-Name}
尝试了所有操作后,以下命令对我有效
cd%windir%\system32\inetsrv
appcmd.exe停止站点/site.name:“test1.com”
appcmd.exe开始站点/site.name:“test1.com”
显然,在此之前,您还将运行一些ssh远程命令未看到远程服务器要求。很公平,也许不对。Powershell脚本可能是最好的方式。很抱歉,这里没有,Powershell??Powershell是一种新的(ish)脚本语言,类似于vbs(x infinity),基本知识可以在这里找到。你可能也想要这样的东西;某些公司系统管理员可能认为PsExec存在安全漏洞。在公司设备上运行前获得许可。
Invoke-Command -ComputerName <YOUR_IIS_SERVER_NAME> -ScriptBlock { Restart-WebAppPool -Name <YOUR_APP_POOL_NAME> }