【问题标题】:Extract return code from IIS powershell command从 IIS powershell 命令中提取返回码
【发布时间】:2018-02-12 07:46:26
【问题描述】:

假设我运行这个命令:

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

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

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

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

..如果失败,要获得确切的返回码? (因为appcmd用同样的命令返回13,也就是ERROR_INVALID_DATA

【问题讨论】:

    标签: windows powershell iis


    【解决方案1】:

    阅读about_Automatic_Variables

    $LASTEXITCODE

    包含上次运行的基于 Windows 的程序的退出代码。

    检查$ERROR变量而不是。

    也阅读About CommonParameters;至少,请注意常用参数

    • ErrorAction (ea):覆盖当前命令的 $ErrorActionPreference 变量的值
    • ErrorVariable (ev):将有关命令的错误消息存储在指定变量和$Error 自动变量中

    把它放在一起:下面的代码 sn-p 应该显示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' }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-09
      • 1970-01-01
      • 1970-01-01
      • 2011-06-04
      • 2016-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多