Ich schreibe ein VBScript, das das Active Directory nach einem Computerobjekt durchsucht. Wenn das Objekt nicht existiert oder existiert und sich in der richtigen Organisationseinheit befindet, sollte es ein separates Skript ausführen, das den Computer mit dem AD verbindet.Wenn die Anweisungsbedingungen nicht erfüllt sind, wird der Code weiterhin ausgeführt
ObjExist_CorrectOU_7 = Null
ObjExist_CorrectOU_10 = Null
If compare = True Then
Win7_OU = "OU=DisallowRDP,OU=64Bit,OU=Win8"
Win10_OU = "OU=DisallowRDP,OU=64Bit,OU=Win10"
For x = 16 To 46
If Asc(Mid(objRS.Fields("distinguishedName"), x, 1)) = Asc(Mid(Win7_OU, (x - 15), 1)) Then
ObjExist_CorrectOU_7 = True
Else
ObjExist_CorrectOU_7 = False
End If
Next
For y = 16 To 46
If Asc(Mid(objRS.Fields("distinguishedName"), y, 1)) = Asc(Mid(Win10_OU, (y - 15), 1)) Then
ObjExist_CorrectOU_10 = True
Else
ObjExist_CorrectOU_10 = False
End If
Next
End If
If ObjExist_CorrectOU_7 = True Then
WScript.Echo "TRUE"
End If
Dim objShell
Set objShell = WScript.CreateObject("WScript.Shell")
filename = "C:\programdata\dell\kace\k2000_deployment_info.conf"
Win7_Deployment = "deployment_name=Windows 7 x64 with SP1, join AD"
Win10_Deployment = "deployment_name=Development Windows 10 (x64), join AD"
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(filename)
Do While Not f.AtEndOfStream
If ((f.ReadLine = Win7_Deployment) Or ((f.ReadLine = Win7_Deployment) And (ObjExist_CorrectOU_7 = True))) Then
WScript.Echo "IT WORKED!"
'objShell.Run "JoinAD_Win7.vbs"
Exit Do
End If
On Error Resume Next
Loop
f.Close
Set g = fso.OpenTextFile(filename)
Do While Not f.AtEndOfStream
If ((g.ReadLine = Win10_Deployment) Or ((g.ReadLine = Win10_Deployment) And (ObjExist_CorrectOU_10 = True))) Then
'objShell.Run "JoinAD_Win10.vbs"
WScript.Echo "IT WORKED AGAIN!"
Exit Do
End If
On Error Resume Next
Loop
g.Close
Set objShell = Nothing
Das Problem, das ich in laufen lasse, ist, dass die beiden If..Then
Aussagen jedes Mal ausführen, auch wenn ich weiß, dass die Bedingungen sind absolut nicht erfüllt werden.
Hat es mit meiner Verwendung von Or
und And
zu tun?
Willkommen bei StackOverflow; Danke, dass du deine erste Frage geschrieben hast. Bitte geben Sie die spezifischen Aussagen an, über die Sie sprechen. Es ist hilfreich für neue Benutzer, Folgendes zu lesen: [Wie man eine gute Frage stellt] (http://stackoverflow.com/help/how-to-ask), [Die perfekte Frage] (http: //codeblog.jonskeet .uk/2010/08/29/Schreiben der perfekten Frage /) und [Minimales, vollständiges und überprüfbares Beispiel] (http://stackoverflow.com/help/mcve). Bitte überlegen Sie, Ihre Frage entsprechend zu bearbeiten. – MikeC