Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iis 7 如何通过WMI/Powershell在IIS7中设置应用程序池重启计划?_Iis 7_Wmi - Fatal编程技术网

Iis 7 如何通过WMI/Powershell在IIS7中设置应用程序池重启计划?

Iis 7 如何通过WMI/Powershell在IIS7中设置应用程序池重启计划?,iis-7,wmi,Iis 7,Wmi,我正在创建一个功能来管理IIS7中的应用程序池,使其符合我们所需的规范,但我在转换等效IIS6脚本中的一行代码时遇到困难;设置重新启动计划 在IIS6中,该行为: $newPool.PeriodicRestartSchedule = @( '6:15' ); IIS7的简单翻译为: $newPool.Recycling.PeriodicRestart.Schedule = @('00000000061500.000000:000') 但是,这不起作用,因为它会引发异常: Exception

我正在创建一个功能来管理IIS7中的应用程序池,使其符合我们所需的规范,但我在转换等效IIS6脚本中的一行代码时遇到困难;设置重新启动计划

在IIS6中,该行为:

$newPool.PeriodicRestartSchedule = @( '6:15' );
IIS7的简单翻译为:

$newPool.Recycling.PeriodicRestart.Schedule = @('00000000061500.000000:000')
但是,这不起作用,因为它会引发异常:

Exception setting "Schedule": "Unable to cast object of type 'System.String' 
to type 'System.Management.ManagementBaseObject'.
如何创建此
schedulelement[]
数组以分配给此值

编辑:问题1向下…:
问题2:调用
$newPool.Put()
时,此值似乎没有保存。下一步是什么?

我已经放弃,决定使用appcmd:

function CreateAppPool( [parameter(ValueFromPipelineByPropertyName=$true)][string]$AppPoolName ) {
    PROCESS {
        $appcmd = 'C:\Windows\SysWOW64\inetsrv\appcmd.exe'
        &$appcmd add appPool "/name:$AppPoolName" "/+recycling.periodicRestart.schedule.[value='06:15:00']"
    }
}

我仍然很想看看没有appcmd怎么做。

似乎是很久以前的一篇文章。。。但我在2016年也遇到了问题,所以在这里发帖似乎不是一件坏事

我通过Pascal脚本完成这项工作,并且使用不同的对象/属性。我遇到的一个主要问题是我的时间字符串不是ansi

下面是它对我的作用的一个片段(varAppPool是我的应用程序池对象):

function CreateAppPool( [parameter(ValueFromPipelineByPropertyName=$true)][string]$AppPoolName ) {
    PROCESS {
        $appcmd = 'C:\Windows\SysWOW64\inetsrv\appcmd.exe'
        &$appcmd add appPool "/name:$AppPoolName" "/+recycling.periodicRestart.schedule.[value='06:15:00']"
    }
}
WMI_IIS_ApplicationPool_SetSetting_Recycling(varAppPool, '00000000000000.000000:000', '00000000000000.000000:000');

function WMI_IIS_ApplicationPool_SetSetting_Recycling(varAppPool : Variant; strIdleTimeout, strPeriodicRestart: String):Boolean;
begin
  Result := False;
  if (WMI_IIS_Internal_CheckVariantIsNull(varAppPool, 'WMI_IIS_ApplicationPool_SetSetting_Recycling: {#WMI_IIS_errApplicationPoolIsNull}')) then
  begin
    varAppPool.ProcessModel.IdleTimeout := WMI_IIS_Internal_ConvertToAnsi(strIdleTimeout);
    varAppPool.Recycling.PeriodicRestart.Time := WMI_IIS_Internal_ConvertToAnsi(strPeriodicRestart);
    try
      varAppPool.put_();
      Result := True;
    except
      Log('WMI_IIS_ApplicationPool_SetSetting_Recycling: Saving properties failed');
    end;
  end;
end;