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();
}
}
}
}
}
[PowerShellのように見えるのは、私のコマンドラインプログラムの削除です。なぜですか?](http://stackoverflow.com/questions/43005569/looks-like-powershell-is-deleting-my-command-line-program-why) –
他の投稿を削除しようとしました。私が何を求めているのか明確にしていない。私はこの投稿がより良い言葉になることを願っています。 – Rod
ビルドディレクトリからこのEXEを実行しようとしていますね。ビルドを開始した後にビルドエラーが発生する可能性はありますか?ビルドエラーのため再生成されませんか? – adv12