Powershell-else in try/catch












0















I'm trying to write output when get-addomain succeded.



Try/catch writes output only if command fails



try {

get-addomain -Identity d.contoso.com

}

catch {

Write-Output "failed"

}


I tried following:



if (-not (get-addomain -Identity  d.contoso.com))
{
return "failed"
}

else

{
write-output "ok"
}


and



If (get-addomain -Identity  d.contoso.com  )
{
Write-Output "ok"
}
Else
{
write-output "failed"
}


but in both cases got



get-addomain : Cannot find an object with identity: 'd.contoso.com' under: 'DC=ad,DC=contoso,DC=com'.









share|improve this question



























    0















    I'm trying to write output when get-addomain succeded.



    Try/catch writes output only if command fails



    try {

    get-addomain -Identity d.contoso.com

    }

    catch {

    Write-Output "failed"

    }


    I tried following:



    if (-not (get-addomain -Identity  d.contoso.com))
    {
    return "failed"
    }

    else

    {
    write-output "ok"
    }


    and



    If (get-addomain -Identity  d.contoso.com  )
    {
    Write-Output "ok"
    }
    Else
    {
    write-output "failed"
    }


    but in both cases got



    get-addomain : Cannot find an object with identity: 'd.contoso.com' under: 'DC=ad,DC=contoso,DC=com'.









    share|improve this question

























      0












      0








      0








      I'm trying to write output when get-addomain succeded.



      Try/catch writes output only if command fails



      try {

      get-addomain -Identity d.contoso.com

      }

      catch {

      Write-Output "failed"

      }


      I tried following:



      if (-not (get-addomain -Identity  d.contoso.com))
      {
      return "failed"
      }

      else

      {
      write-output "ok"
      }


      and



      If (get-addomain -Identity  d.contoso.com  )
      {
      Write-Output "ok"
      }
      Else
      {
      write-output "failed"
      }


      but in both cases got



      get-addomain : Cannot find an object with identity: 'd.contoso.com' under: 'DC=ad,DC=contoso,DC=com'.









      share|improve this question














      I'm trying to write output when get-addomain succeded.



      Try/catch writes output only if command fails



      try {

      get-addomain -Identity d.contoso.com

      }

      catch {

      Write-Output "failed"

      }


      I tried following:



      if (-not (get-addomain -Identity  d.contoso.com))
      {
      return "failed"
      }

      else

      {
      write-output "ok"
      }


      and



      If (get-addomain -Identity  d.contoso.com  )
      {
      Write-Output "ok"
      }
      Else
      {
      write-output "failed"
      }


      but in both cases got



      get-addomain : Cannot find an object with identity: 'd.contoso.com' under: 'DC=ad,DC=contoso,DC=com'.






      powershell error-handling try-catch






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 14 '18 at 8:23







      user10205566































          2 Answers
          2






          active

          oldest

          votes


















          1














          The tryblock runs until a error is getting thrown. If get-addomain doesn't end with an error, the try-case will run the following commands written inside the {}.



          So one way would be to just say the output is ok if no error gets thrown:



          try {
          get-addomain -Identity d.contoso.com
          Write-Output "ok"
          }

          catch {
          Write-Output "failed"
          }


          But if you want to double check, you can still do the if check in the try-catch:



          try {
          If (get-addomain -Identity d.contoso.com )
          {
          Write-Output "ok"
          }
          Else
          {
          write-output "failed"
          }
          }
          catch {
          Write-Output "failed"
          }





          share|improve this answer
























          • second solution worked !!, thanks, first one also works if i specify | out-null

            – user10205566
            Nov 14 '18 at 8:47





















          0














          try{
          $domain = Get-ADDomain -Identity d.contoso.com
          Write-Output $domain
          }catch{
          Write-Output "Failed with message '$($_.Exception.Message)'"
          }


          When you use the AD CmdLets, it fails when a non-existing identity is specified. Therefore if the object you search for does not exist, you will end up in the catch. The first piece of code you wrote is actually correct if you wish to output the AD domain information.






          share|improve this answer























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53295762%2fpowershell-else-in-try-catch%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown
























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            1














            The tryblock runs until a error is getting thrown. If get-addomain doesn't end with an error, the try-case will run the following commands written inside the {}.



            So one way would be to just say the output is ok if no error gets thrown:



            try {
            get-addomain -Identity d.contoso.com
            Write-Output "ok"
            }

            catch {
            Write-Output "failed"
            }


            But if you want to double check, you can still do the if check in the try-catch:



            try {
            If (get-addomain -Identity d.contoso.com )
            {
            Write-Output "ok"
            }
            Else
            {
            write-output "failed"
            }
            }
            catch {
            Write-Output "failed"
            }





            share|improve this answer
























            • second solution worked !!, thanks, first one also works if i specify | out-null

              – user10205566
              Nov 14 '18 at 8:47


















            1














            The tryblock runs until a error is getting thrown. If get-addomain doesn't end with an error, the try-case will run the following commands written inside the {}.



            So one way would be to just say the output is ok if no error gets thrown:



            try {
            get-addomain -Identity d.contoso.com
            Write-Output "ok"
            }

            catch {
            Write-Output "failed"
            }


            But if you want to double check, you can still do the if check in the try-catch:



            try {
            If (get-addomain -Identity d.contoso.com )
            {
            Write-Output "ok"
            }
            Else
            {
            write-output "failed"
            }
            }
            catch {
            Write-Output "failed"
            }





            share|improve this answer
























            • second solution worked !!, thanks, first one also works if i specify | out-null

              – user10205566
              Nov 14 '18 at 8:47
















            1












            1








            1







            The tryblock runs until a error is getting thrown. If get-addomain doesn't end with an error, the try-case will run the following commands written inside the {}.



            So one way would be to just say the output is ok if no error gets thrown:



            try {
            get-addomain -Identity d.contoso.com
            Write-Output "ok"
            }

            catch {
            Write-Output "failed"
            }


            But if you want to double check, you can still do the if check in the try-catch:



            try {
            If (get-addomain -Identity d.contoso.com )
            {
            Write-Output "ok"
            }
            Else
            {
            write-output "failed"
            }
            }
            catch {
            Write-Output "failed"
            }





            share|improve this answer













            The tryblock runs until a error is getting thrown. If get-addomain doesn't end with an error, the try-case will run the following commands written inside the {}.



            So one way would be to just say the output is ok if no error gets thrown:



            try {
            get-addomain -Identity d.contoso.com
            Write-Output "ok"
            }

            catch {
            Write-Output "failed"
            }


            But if you want to double check, you can still do the if check in the try-catch:



            try {
            If (get-addomain -Identity d.contoso.com )
            {
            Write-Output "ok"
            }
            Else
            {
            write-output "failed"
            }
            }
            catch {
            Write-Output "failed"
            }






            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Nov 14 '18 at 8:44









            PaxzPaxz

            2,292926




            2,292926













            • second solution worked !!, thanks, first one also works if i specify | out-null

              – user10205566
              Nov 14 '18 at 8:47





















            • second solution worked !!, thanks, first one also works if i specify | out-null

              – user10205566
              Nov 14 '18 at 8:47



















            second solution worked !!, thanks, first one also works if i specify | out-null

            – user10205566
            Nov 14 '18 at 8:47







            second solution worked !!, thanks, first one also works if i specify | out-null

            – user10205566
            Nov 14 '18 at 8:47















            0














            try{
            $domain = Get-ADDomain -Identity d.contoso.com
            Write-Output $domain
            }catch{
            Write-Output "Failed with message '$($_.Exception.Message)'"
            }


            When you use the AD CmdLets, it fails when a non-existing identity is specified. Therefore if the object you search for does not exist, you will end up in the catch. The first piece of code you wrote is actually correct if you wish to output the AD domain information.






            share|improve this answer




























              0














              try{
              $domain = Get-ADDomain -Identity d.contoso.com
              Write-Output $domain
              }catch{
              Write-Output "Failed with message '$($_.Exception.Message)'"
              }


              When you use the AD CmdLets, it fails when a non-existing identity is specified. Therefore if the object you search for does not exist, you will end up in the catch. The first piece of code you wrote is actually correct if you wish to output the AD domain information.






              share|improve this answer


























                0












                0








                0







                try{
                $domain = Get-ADDomain -Identity d.contoso.com
                Write-Output $domain
                }catch{
                Write-Output "Failed with message '$($_.Exception.Message)'"
                }


                When you use the AD CmdLets, it fails when a non-existing identity is specified. Therefore if the object you search for does not exist, you will end up in the catch. The first piece of code you wrote is actually correct if you wish to output the AD domain information.






                share|improve this answer













                try{
                $domain = Get-ADDomain -Identity d.contoso.com
                Write-Output $domain
                }catch{
                Write-Output "Failed with message '$($_.Exception.Message)'"
                }


                When you use the AD CmdLets, it fails when a non-existing identity is specified. Therefore if the object you search for does not exist, you will end up in the catch. The first piece of code you wrote is actually correct if you wish to output the AD domain information.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 14 '18 at 8:46









                Bernard MoeskopsBernard Moeskops

                25816




                25816






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53295762%2fpowershell-else-in-try-catch%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Bressuire

                    Vorschmack

                    Quarantine