次の方法で共有


EventLog.DeleteEventSource メソッド (String, String)

指定したコンピュータからアプリケーションのイベント ソース登録を削除します。

Overloads Public Shared Sub DeleteEventSource( _
   ByVal source As String, _   ByVal machineName As String _)
[C#]
public static void DeleteEventSource(stringsource,stringmachineName);
[C++]
public: static void DeleteEventSource(String* source,String* machineName);
[JScript]
public static function DeleteEventSource(
   source : String,machineName : String);

パラメータ

  • source
    イベント ログ システムにアプリケーションを登録するときに使用する名前。
  • machineName
    ログを削除するコンピュータの名前。ローカル コンピュータの場合は null 参照 (Visual Basic では Nothing) 。

例外

例外の種類 条件
ArgumentException machineName パラメータが無効です。
ArgumentException 指定したコンピュータのレジストリに source パラメータがありません。
ArgumentException イベント ログのレジストリ キーに対する書き込みアクセス許可がありません。

解説

このオーバーロードを使用して、リモート コンピュータから Source の登録を削除します。 DeleteEventSourcemachineName で指定されたコンピュータのレジストリにアクセスし、有効なイベント ソースとしてのアプリケーションの登録を削除します。

ログにエントリを書き込む必要がなくなった場合は、有効なイベント ソースとしてのコンポーネントを削除できます。たとえば、コンポーネントを別のログに変更する必要がある場合などに、この操作を行います。ソースは同時に 1 つのログにしか登録できないため、ログを変更する場合は現在の登録を削除する必要があります。

DeleteEventSource はログに登録されているソースだけを削除します。ログを削除する場合は Delete を呼び出します。ログ エントリの削除だけを行う場合は、 Clear を呼び出します。 DeleteDeleteEventSource は静的 (Visual Basic では Shared) メソッドであるため、クラス自体で呼び出すことができます。いずれのメソッドを呼び出す場合にも、 EventLog のインスタンスを作成する必要はありません。

Delete の呼び出しを通じてログを削除すると、そのログに登録されているソースも自動的に削除されます。そのため、このログを使用している他のアプリケーションが動作しなくなることがあります。

メモ   ログに既にマッピングされているソースを別の新しいログにマッピングする場合、この変更を有効にするには、コンピュータを再起動する必要があります。

使用例

[Visual Basic, C#, C++] 指定したコンピュータからソースを削除する例を次に示します。この例は、ソースからログの内容を判断してから、そのログを削除します。

[Visual Basic, C#, C++] メモ   イベント ログには複数のソースが書き込むことがあります。カスタム ログを削除する前に、そのログに書き込んでいるソースが他に存在しないことを確認してください。

 
Option Explicit
Option Strict

Imports System
Imports System.Diagnostics
Imports System.Threading

Class MySample
    Public Shared Sub Main()
        Dim logName As String
        
        If EventLog.SourceExists("MyOldSource", "myServer") Then
            logName = EventLog.LogNameFromSourceName("MyOldSource", "myServer")
            EventLog.DeleteEventSource("MyOldSource", "myServer")
            EventLog.Delete(logName, "myServer")
            
            Console.WriteLine((logName & " deleted."))
        End If
    End Sub 'Main
End Class 'MySample

[C#] 
using System;
using System.Diagnostics;
using System.Threading;
              
class MySample{

    public static void Main(){

        string logName;
       
        if(EventLog.SourceExists("MyOldSource", "myServer")){
            logName = EventLog.LogNameFromSourceName("MyOldSource", "myServer");
            EventLog.DeleteEventSource("MyOldSource", "myServer");
            EventLog.Delete(logName, "myServer");
            
            Console.WriteLine(logName + " deleted.");     
        }                                                                     
    } 
}
   

[C++] 
#using <mscorlib.dll>
#using <System.dll>
using namespace System;
using namespace System::Diagnostics;
using namespace System::Threading;

int main(){

    String* logName;

    if(EventLog::SourceExists(S"MyOldSource", S"myServer")){
        logName = EventLog::LogNameFromSourceName(S"MyOldSource", S"myServer");
        EventLog::DeleteEventSource(S"MyOldSource", S"myServer");
        EventLog::Delete(logName, S"myServer");

        Console::WriteLine(S"{0} deleted.", logName);     
    }                                                                     
} 

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows NT Server 4.0, Windows NT Workstation 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

.NET Framework セキュリティ:

参照

EventLog クラス | EventLog メンバ | System.Diagnostics 名前空間 | EventLog.DeleteEventSource オーバーロードの一覧 | CreateEventSource | Source | MachineName | SourceExists | Delete | Clear