いくつかの異なるサーバーのそれぞれにあるすべてのイベント ログ エントリを集約するアプリを作成しています。MachineName
toを渡すことで、イベント ログを取得できますEventLog.GetEventLogs
。ユーザーがそのマシンのローカル管理者ではない場合、これは通常、ある段階で失敗します。そのため、事前に確認し、次のサーバーのセットにスキップしたいと思います。
For Each svr As String In Servers
'TODO: check to see if they are a local administrator, else continue for
Dim logs As List(Of EventLog) = EventLog.GetEventLogs(svr).ToList
For Each log As EventLog In logs
LoadEachOSLogEntry(log)
Next
Next
こちらのようなほとんどのソリューションは、ユーザーが現在実行中のマシンの管理者であるかどうかのみを確認します。
Dim user As WindowsIdentity = WindowsIdentity.GetCurrent()
Dim principal As New WindowsPrincipal(user)
Dim isAdmin As Boolean = principal.IsInRole(WindowsBuiltInRole.Administrator)