2011-03-23 94 views
1

在我试图在命令行中运行VBS文件,我有以下如何回收一台远程机器上的应用程序池:使用命令行

strServerName = "ServerName" 
strAppPoolName = "DefaultAppPool" 
set objAppPools = GetObject("IIS://" & strServerName 
            & "/w3svc/AppPools/" & strAppPoolName & "") 
objAppPools.Recycle() 

可是当我运行VBS从CMD行我得到以下错误:

Microsoft VBScript runtime error: ActiveX component can't create object: 'Get Object'_

我我的本地机器上运行XP和远程计算机有IIS 7

我怎样才能得到这个工作?

回答

3

虽然不是vbs文件命令,但您可以使用vbs来执行此命令行;

appcmd recycle apppool /apppool.name:string 

变量字符串是要回收的应用程序池的名称。例如,若要回收名为Marketing的应用程序池,请在命令提示符下键入以下,然后按ENTER键:

appcmd recycle apppool /apppool.name:Marketing 

technet

两者如果它太远离你想要什么,然后我的道歉。

+0

的iget:APPCMD不被识别为一个内部或exteranal批次或命令.. – 2011-03-23 13:20:25

+2

Appcmd不适用于远程计算机 – Adrian 2011-03-23 13:29:30

+0

没有权利 – 2011-03-23 13:30:50

1

您是否已经在远程机器上安装并启用了IIS7 WMI Provider?

我认为this doc涵盖了你需要的大部分。

这包括预REQ和如何浏览可用的管理选项...相信你就可以用了一些调整重置应用程序池...

1

我只是试图从Windows XP机器到Windows 2008R2机器。有效。所以你绝对是在正确的轨道上。

如果您正在寻找替代方法,请尝试从命令提示符下执行此操作。至少错误信息会更具体一些,当它不起作用时。

wmic /namespace:"\\root\MicrosoftIISv2" /node:"**serverName**" path IISApplicationPool where (name like '%**DefaultAppPool**%') call recycle 
0

我只是偶然发现了这个问题,并且这里的修复: 有一个小窗口的工具,叫做PSEXEC,基本上给你命令行远程访问,并从那里你可以使用应用程序池。您可以从刚刚C#运行此命令

psexec \\192.168.xx.xx %windir%\system32\inetsrv\appcmd recycle apppool /apppool.name:yourapppool 

这里的工具:http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx

+0

PsExec可能被某些公司系统管理员视为安全漏洞。在公司设备上运行之前获得许可。 – ErikE 2014-10-10 08:55:38

0

使用PowerShell命令来运行它。例如:

Invoke-WMIMethod Recycle -Path "IIsApplicationPool.Name='W3SVC/APPPOOLS/apppoolname'" -Computer "WIN-Computername" -Namespace root\MicrosoftIISv2 -Authentication PacketPrivacy 

apppoolname是你的应用程序池名称。

WIN-计算机名是您的远程/本地服务器名称

0

使用PowerShell在服务器上远程执行命令:

Invoke-Command -ComputerName <YOUR_IIS_SERVER_NAME> -ScriptBlock { Restart-WebAppPool -Name <YOUR_APP_POOL_NAME> }