Hi,
hier erstmal mein code:
Der Code liest von einem PC, dessen Daten (name, credentials) korrekt im array strItem hinterlegt sind die Dienste aus und fragt ab, ob die automatisch zu startenden Dienste auch gestartet sind. Das funktioniert auch soweit alles.
Nun das Problem:
Es werden für die Verbindung andere Credentials verwendet, aber trotzdem taucht in dem Eventlog des Ziel-PCs ein Sicherheitsfehler auf, dass der Lokale User vom Quell-PC (wo das Programm läuft) versucht hat sich auf dem Ziel-PC anzumelden, was nicht geht, da der User dort nicht existiert.
Hier die Meldung aus dem Eventlog (die Daten in den # habe ich entsprechend ersetzt). Die Meldung taucht immer drei mal auf:
Hat jemand eine Idee was der Grund dafür ist?
Ich wiederhole nochmal: An sich funktioniert das Skript, nur mein Chef mag halt die dazu gehörigen Eventlogs nicht.
hier erstmal mein code:
Code:
ConnectionOptions connection = new ConnectionOptions();
connection.Username = strItem[1];
connection.Password = strItem[2];
connection.Authority = "ntlmdomain:" + strItem[3];
ManagementScope scope = new ManagementScope("\\\\" + strItem[4] + "\\root\\CIMV2", connection);
try
{
scope.Connect();
}
catch(Exception ea)
{
Console.WriteLine(strItem[0] + " (" + strItem[4] + ") ist nicht erreichbar.");
alert.Add(strItem[0] + " (" + strItem[4] + ") ist nicht erreichbar. Grund: " + ea.Message); return;
}
ObjectQuery query= new ObjectQuery("SELECT * FROM Win32_Service");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
foreach (ManagementObject queryObj in searcher.Get())
{ if (queryObj["State"].ToString() != "Running" && queryObj["StartMode"].ToString() == "Auto")
{
if (Excludes.Contains(queryObj["Caption"].ToString()) == false)
{
string toWrite = queryObj["SystemName"].ToString() + " (" + strItem[4].ToString() + ") - Auto-Service nicht gestartet: " + queryObj["Caption"].ToString() + ".";
alert.Add(toWrite);
}
}
}
}
catch (ManagementException e)
{
alert.Add("Error checking System: " + strItem[0]);
Console.WriteLine("An error occurred while querying for WMI data: " + e.Message);
}
Der Code liest von einem PC, dessen Daten (name, credentials) korrekt im array strItem hinterlegt sind die Dienste aus und fragt ab, ob die automatisch zu startenden Dienste auch gestartet sind. Das funktioniert auch soweit alles.
Nun das Problem:
Es werden für die Verbindung andere Credentials verwendet, aber trotzdem taucht in dem Eventlog des Ziel-PCs ein Sicherheitsfehler auf, dass der Lokale User vom Quell-PC (wo das Programm läuft) versucht hat sich auf dem Ziel-PC anzumelden, was nicht geht, da der User dort nicht existiert.
Hier die Meldung aus dem Eventlog (die Daten in den # habe ich entsprechend ersetzt). Die Meldung taucht immer drei mal auf:
Code:
Ereignistyp: Fehlerüberw.
Ereignisquelle: Security
Ereigniskategorie: An-/Abmeldung
Ereigniskennung: 529
Datum: 08.06.2009
Zeit: 07:15:11
Benutzer: NT-AUTORITÄT\SYSTEM
Computer: #ZielPcHostname#
Beschreibung:
Fehlgeschlagene Anmeldung:
Grund: Unbekannter Benutzername oder falsches Kennwort
Benutzername: #QuellPcUser#
Domäne: #QuellPcHostname#
Anmeldetyp: 3
Anmeldevorgang: NtLmSsp
Authentifizierungspaket: NTLM
Name der Arbeitsstation: #QuellPcHostname#
Aufruferbenutzername: -
Aufruferdomäne: -
Aufruferanmeldekennung: -
Aufruferprozesskennung: -
Übertragene Dienste: -
Quellnetzwerkadresse: #QuellPcIP#
Quellport: 3167
Weitere Informationen über die Hilfe- und Supportdienste erhalten Sie unter http://go.microsoft.com/fwlink/events.asp.
Hat jemand eine Idee was der Grund dafür ist?
Ich wiederhole nochmal: An sich funktioniert das Skript, nur mein Chef mag halt die dazu gehörigen Eventlogs nicht.