$ LastExitCode不提供结果

 dasda 发布于 2023-02-02 19:14

我想看看我是否可以在错误代码上获得一些帮助.我的最后一个脚本是为邮箱设置一个SMTP地址,但我刚才用这个代码作为例子.

Set-Mailbox jsmith -AntispamBypassEnabled $false
    if ($LastExitCode -eq 1)
    {
    echo "Exit Code 1" $lastexitcode
    }
    else
    {
    echo "Exit Code 0" $lastexitcode
    }

我的期望是,我第一次运行命令,它完成工作,我得到成功的错误代码.第二次运行命令时,powershell会返回以下内容.

Warning: The command completed successfully but no settings have been modified.

我希望能够获得3种情况的错误代码.(它有效,它失败了,然后上面的那个它起作用,但没有做出任何改变.)我似乎无法找到任何这方面的例子,并且非常感谢一些建议.

谢谢.

迈克尔

好的,我收到了很好的回复,现在我正在使用以下代码.我必须修改数千个对象,它们都将处于不同的错误代码,因此我需要能够将任何条件写入日志文件.我在整个脚本中都有一堆环境变量,所以最后,我要把"User Passed/Failed"$ EmailAddress $ DisplayName等.....

Try { Set-Mailbox jsmith -AntispamBypassEnabled $false -ErrorAction Stop -   WarningVariable Warn }

Catch { Exit 2 } Write-Host "Exit Code 2"

if ($Warn) { Exit 1 } Write-Host "Exit Code 1"

else       { Exit 0 } Write-Host "Exit Code 0"

tommymaynard.. 10

$ LastExitCode与Win32应用程序的退出代码有关,而与PowerShell cmdlet无关.你可能最好检查$?无论是对还是对.$?变量可以报告Win32应用程序和PowerShell cmdlet.以下是Get-Help about_Automatic_Variables中的文字:

$?

包含上次操作的执行状态.如果上一次操作成功,则包含TRUE;如果失败,则包含FALSE.

您还可以清除$ Error,例如$ Error.Clear(),然后检查$ Error [0]的值,看看在命令运行后是否填充了它.

1 个回答
  • $ LastExitCode与Win32应用程序的退出代码有关,而与PowerShell cmdlet无关.你可能最好检查$?无论是对还是对.$?变量可以报告Win32应用程序和PowerShell cmdlet.以下是Get-Help about_Automatic_Variables中的文字:

    $?

    包含上次操作的执行状态.如果上一次操作成功,则包含TRUE;如果失败,则包含FALSE.

    您还可以清除$ Error,例如$ Error.Clear(),然后检查$ Error [0]的值,看看在命令运行后是否填充了它.

    2023-02-02 19:16 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有