Nicht in der Lage, um auf WMI zuzugreifen, wenn die Meldung "Windows kann keine Verbindung zur Domäne" Fehlermeldung

Also ich hab ein XP-Pro-workstation, ist die Berichterstattung "Windows kann keine Verbindung zur Domäne herstellen, entweder weil der domain-controller ausgefallen ist oder anderweitig nicht verfügbar, oder weil Ihr Computerkonto nicht gefunden wurde. Bitte versuchen Sie es später erneut. Wenn diese Meldung weiterhin erscheint, Kontaktieren Sie Ihren system-administrator um Unterstützung." beim anmelden mit den Anmeldeinformationen für die Domäne. Um dies zu beheben, manuell würde ich einfach nach der Anmeldung mit dem lokalen admin-Konto, legen Sie es an einer Arbeitsgruppe, und dann erneut hinzufügen, um die Domäne. Dieser Prozess jedoch kann eine anständige Menge an Zeit zu überlegen, dieses Problem tauchte bei meiner Arbeit Recht Häufig. Was ich versuche zu tun, ist programmgesteuert automatisieren das löschen/Zusammenfügen-Prozess. Der folgende code funktioniert, aber nur, wenn der Rechner richtig in der Domäne oder Arbeitsgruppe, die nicht in der Schwebe, wie es jetzt ist.

Const JOIN_DOMAIN             = 1
Const ACCT_CREATE             = 2
Const ACCT_DELETE             = 4
Const WIN9X_UPGRADE           = 16
Const DOMAIN_JOIN_IF_JOINED   = 32
Const JOIN_UNSECURE           = 64
Const MACHINE_PASSWORD_PASSED = 128
Const DEFERRED_SPN_SET        = 256
Const INSTALL_INVOCATION      = 262144

Const WbemAuthenticationLevelPktPrivacy = 6

'On Error Resume Next 

SystemName = "SystemName"
strNamespace = "root\cimv2"
ComputerBLogin = "LoginB"
ComputerBPass = "PassB"
ComputerALogin = "LoginA"
ComputerAPass = "PassA"
DomainName = "domain.com"
OU = "OU=desiredou,DC=domain,DC=com"

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate,authenticationLevel=pktPrivacy}!\\" & SystemName & "\root\cimv2")

If Err.Number <> 0 Then

    Set objWbemLocator = CreateObject("WbemScripting.SWbemLocator")
    Set objWMIService = objwbemLocator.ConnectServer(SystemName, strNamespace, ComputerBLogin, ComputerBPass)

    objWMIService.Security_.authenticationLevel = WbemAuthenticationLevelPktPrivacy

    Err.Clear
End IF

Set colComputers = objWMIService.ExecQuery("Select * from Win32_ComputerSystem")

For Each objComputer in colComputers
    Return = objComputer.UnJoinDomainOrWorkGroup(NULL, NULL)
    Return = objComputer.JoinDomainOrWorkGroup("WORKGROUP", NULL, NULL)
    If Err.Number <> 0 Then
        Set WshShell = CreateObject("WScript.Shell")
        message = WshShell.Popup (SystemName & " could not be dropped to the workgroup!" & vbCr &_
                "Error: " & Err.Description,, "Title", 0 + 16)
    Else
        Set WshShell = CreateObject("WScript.Shell")
        message = WshShell.Popup (SystemName & " was successfully dropped to the WORKGROUP!",, "Title", 0 + 64)
    End If
Next

For Each objComputer in colComputers
    ReturnValue = objComputer.JoinDomainOrWorkGroup(DomainName, ComputerAPass, ComputerALogin, OU, JOIN_DOMAIN + ACCT_CREATE)

    If Err.Number <> 0 Then
        Set WshShell = CreateObject("WScript.Shell")
        message = WshShell.Popup ("Unable to join " & SystemName & " to the domain! Please join manually.",, "Title", 0 + 16)
    Else
        Set WshShell = CreateObject("WScript.Shell")
        message = WshShell.Popup ("Domain joining was successful!",, "Title", 0 + 64)
    End If
Next

Wenn das Skript hat Zeile 24:

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate,authenticationLevel=pktPrivacy}!\\" & SystemName & "\root\cimv2")

es Fehler mit "Der remote-server-Computer existiert nicht oder ist nicht verfügbar: 'GetObject'". Diese Zeile würde normalerweise funktionieren, wenn der Rechner richtig in der Domäne. Die AD-Objekt existiert. Wenn dieser Fehler, ich habe es so codiert, dass ein Protokoll in die Maschine mit dem lokalen admin-Anmeldeinformationen auf der Linie 29:

Set objWMIService = objwbemLocator.ConnectServer(SystemName, strNamespace, ComputerBLogin, ComputerBPass)

Wird ein Fehler ausgegeben, der mit "SWbemLocator: Zugriff verweigert."

Also mit beiden Methoden bin ich vertraut mit es gibt keinen Weg, um auf WMI zuzugreifen, wenn sich die Maschine in dieser Schwebe. In meiner Forschung, es scheint, als ob die "Vertrauensstellung zwischen der Arbeitsstation und der Domäne fehlgeschlagen" aber kann mir das nicht erklären, warum ich mich nicht anmelden mit der Administrator-Anmeldeinformationen.

Wollte ich nicht zu greifen, zu NETDOM, aber ich versuchte es trotzdem. Es Fehler, sowie reden über die fehlgeschlagene Vertrauensstellung.

Also meine Fragen sind:

A) Wenn diese Fehlermeldung vorhanden ist, gibt es eine Möglichkeit, programmgesteuert drop die Arbeitsstation einer Arbeitsgruppe und re-hinzufügen der Domäne?

B) Programmgesteuert Reparatur die Vertrauensstellung zwischen der Arbeitsstation und Domäne (Falls es das ist in der Tat, was ist falsch mit ihm)?

C) Wenn diese Fehlermeldung vorhanden ist melden Sie sich in die workstation mit Administrator-Anmeldeinformationen?

Danke an alle im Voraus für jede mögliche Hilfe und bitte lassen Sie mich wissen, wenn noch mehr details benötigt werden.

Überhaupt jemand? Auch wenn die Antwort "Sie können nicht lösen diese keine andere Möglichkeit, abgesehen von manuell zu löschen und neu zusammensetzen", dass ist in Ordnung. Nur in der Hoffnung, jemand habe etwas Einblick in diese.

InformationsquelleAutor VoidnessMD | 2012-08-14

Schreibe einen Kommentar