2017-03-24 9 views
0

C#プログラムの中でSMOを使用する方法を学ぶ必要があるので、私がやった最初のことは、新しいコンソールアプリケーションを起動してから基本を取り入れ始めることでした。私はアプリがパラメータを受け入れるように決めたので、ユーザー名やログインなどの項目を渡すことができます。私はそれを作成してビルドするときに、PowerShellのウィンドウを開いてアプリケーションを呼び出すことができます。しかし、私は理解していない奇妙なことが起こっている。ときどきPowerShellウィンドウでアプリを実行すると、何らかの理由でアプリが削除されることがあります。なぜそれをやっているのですか?コンソールアプリケーションを削除しています。なぜそれが削除されていますか?

プログラム「SmoListLogins.exe」の実行に失敗した

:システムは、ファイルspecifiedAtラインを見つけることができません:1文字:1 + \ SmoListLogins.exe「MyCompanyのそれは最初に私に次のエラーメッセージを与えたとき、私はそれを発見しました\ Rod "

My SmoListLogins.exeプログラムはありません。もちろん、簡単に再作成することはできますが、その理由を理解できません。

私が扱っているものを見ることができます。ここにソースコードがあります。私はMSDNの記事からそれを取り出し、少し追加しました:

using System; 
using System.Data; 
using Microsoft.SqlServer.Management.Smo; 
namespace SmoListLogins 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      if (args.Length > 0) 
      { 
       var userName = args[0]; 
       ListLogins(userName); 
      } 
      else 
      { 
       ListLogins(); 
      } 
     } 
     static private void ListLogins(string userName = "") 
     { 
      var userNamePassed = (userName != ""); 
      Server srv = new Server("YOURSQLINSTANCE"); 
      //Iterate through each database and display. 
      foreach (Database db in srv.Databases) 
      { 
       Console.WriteLine("========"); 
       Console.WriteLine("Login Mappings for the database: " + db.Name); 
       Console.WriteLine(" "); 
       //Run the EnumLoginMappings method and return details of database user-login mappings to a DataTable object variable. 
       DataTable d; 
       try 
       { 
        d = db.EnumLoginMappings(); 
        //Display the mapping information. 
        foreach (DataRow r in d.Rows) 
        { 
         var userNameMatches = false; 
         var starting = true; 
         foreach (DataColumn c in r.Table.Columns) 
         { 
          if (!userNamePassed) 
          { 
           Console.WriteLine(c.ColumnName + " = " + r[c]); 
          } 
          else 
          { 
           if (starting) 
           { 
            starting = false; 
            if (userName == r[c].ToString()) 
            { 
             userNameMatches = true; 
            } 
           } 
           if (userNameMatches) 
           { 
            Console.WriteLine(c.ColumnName + " = " + r[c]); 
           } 
          } 
         } 
        } 
       } 
       catch (Exception ex) 
       { 
        Console.WriteLine($"Error processing database: {db.Name}"); 
        Console.WriteLine($"Error: {ex.Message}"); 
        Console.WriteLine(); 
       } 
      } 
     } 
    } 
} 
+0

[PowerShellのように見えるのは、私のコマンドラインプログラムの削除です。なぜですか?](http://stackoverflow.com/questions/43005569/looks-like-powershell-is-deleting-my-command-line-program-why) –

+0

他の投稿を削除しようとしました。私が何を求めているのか明確にしていない。私はこの投稿がより良い言葉になることを願っています。 – Rod

+1

ビルドディレクトリからこのEXEを実行しようとしていますね。ビルドを開始した後にビルドエラーが発生する可能性はありますか?ビルドエラーのため再生成されませんか? – adv12

答えて

0

私は今実行可能ファイルを削除していたことを知っていると思います。それは私が考えたものではなかったので、私は誰もが答えを共有しています。今日、チーフ・セキュリティ担当者から、私が書いたプログラムがSymantec Endpoint Protectionによってブロックされていることを知らせる電子メールが届きました。私のテストでは、私のアプリを何度も何度も実行していました。数回反復すると消えてしまいます。それが私の企業のAVだったかもしれないということは私には起こりませんでした。今はまるでそれがまさに何が起こっていたかのように見えます。

私はこの問題を解決するためにあなたのご意見をお寄せいただきありがとうございます。私は、誰かがこの問題に遭遇した場合、彼らが書いたアプリが消えた理由としてAVの可能性を考慮してくれることを願っています。

関連する問題