从IIS powershell命令中提取返回代码

时间:2018-02-12 07:46:26

标签: windows powershell iis

让我说我运行这个命令:

Set-WebConfigurationProperty system.web/sessionState -pspath MACHINE/WEBROOT -name regenerateExpiredSessionID -value WrongValue

我会收到以下错误,但$lastExitCode会返回0

  

Set-WebConfigurationProperty:字符串未被识别为有效的布尔值。   在行:1 char:1

有没有办法提取更多信息性的返回代码以确保操作成功/失败?

..如果失败,要获得确切的返回码? (使用相同命令的appcmd返回13ERROR_INVALID_DATA

1 个答案:

答案 0 :(得分:0)

阅读about_Automatic_Variables

  

$LASTEXITCODE

     

包含已运行的最后一个基于Windows的程序的退出代码。

请检查$ERROR变量。

同时阅读About CommonParameters;至少,要注意常用参数

  • ErrorActionea):会覆盖当前命令的$ErrorActionPreference变量的值
  • ErrorVariableev):在指定变量和$Error自动变量中存储有关命令的错误消息。

汇总:以下代码段应显示FormatException

Set-WebConfigurationProperty system.web/sessionState -pspath MACHINE/WEBROOT `
   -name regenerateExpiredSessionID -value $WrongValue `
   -ErrorAction SilentlyContinue -ErrorVariable a
if ($a.Count -ne 0) { Write-Host $a.CategoryInfo.Reason } else { Write-Host 'Success' }