Microsoft MVPs inside





 MCSEboard.de – IT Pro Forum zu Windows Server 2008 R2 / 2008 / 2003 & Windows 7 / Vista / XP
Registrieren Hilfe Regeln Benutzerliste Suchen Heutige Beiträge Alle Foren als gelesen markieren

Windows Forum — Scripting


Alles zum Thema System Administration Scripting — Q & A zum Thema Scripting: Batch, VBS, WMI, PowerShell


Antwort
     
Themen-Optionen
Alt 15.05.2009, 12:09   #1
Board Veteran
 
Offline
Registriert seit: 06-2005
Ort: Schwaben
Beiträge: 777
Frage alle dcs auf einen bestimmten service prüfen. script zu 90% fertig

hi,

habe von einem kollegen eine vorlage bekommen für ein script, welches alle dc ausgibt.

nun möchte ich jeden dc nach einem bestimmten dienst abfragen, und den status dann mit dem namen des dc in eine liste schreiben.

ich hab schon lange nichts mehr mit vb zu tun gehabt, daher bitte ich um hilfe.



mein teil, der noch nicht funktioniert, ist FETT. wäre wohl zu einfach. unter dem script ist auch gleich das originalscript.

hilfe wäre suuuuuuuuuuuper. danke





' EnumDCs.vbs
' VBScript program to enumerate all Domain Controllers in the domain.
'
' ----------------------------------------------------------------------
' Copyright (c) 2002 Richard L. Mueller
' Hilltop Lab web site - Hilltop Lab
' Version 1.0 - November 10, 2002
' Version 1.1 - February 19, 2003 - Standardize Hungarian notation.
' Version 1.2 - March 11, 2003 - Remove SearchScope property.
'
' Program enumerates all Domain Controllers, their DNS host name, and
' the name of the site they reside in.
'
' You have a royalty-free right to use, modify, reproduce, and
' distribute this script file in any way you find useful, provided that
' you agree that the copyright owner above has no warranty, obligations,
' or liability for such use.

Option Explicit

Dim objRootDSE, strConfig, adoConnection, adoCommand, strQuery
Dim adoRecordset, objDC, objSite

' Determine configuration context from RootDSE object.
Set objRootDSE = GetObject("LDAP://RootDSE")
strConfig = objRootDSE.Get("configurationNamingContext")

' Use ADO to search Active Directory for ObjectClass nTDSDSA.
Set adoCommand = CreateObject("ADODB.Command")
Set adoConnection = CreateObject("ADODB.Connection")
adoConnection.Provider = "ADsDSOObject"
adoConnection.Open "Active Directory Provider"
adoCommand.ActiveConnection = adoConnection

strQuery = "<LDAP://" & strConfig _
& ">;(ObjectClass=nTDSDSA);AdsPath;subtree"

adoCommand.CommandText = strQuery
adoCommand.Properties("Page Size") = 100
adoCommand.Properties("Timeout") = 30
adoCommand.Properties("Cache Results") = False

Set adoRecordset = adoCommand.Execute

' The parent object of each object with ObjectClass=nTDSDSA is a Domain
' Controller. The parent of each Domain Controller is a "Servers"
' container, and the parent of this container is the "Site" container.
Do Until adoRecordset.EOF
Set objDC = GetObject( _
GetObject(adoRecordset.Fields("AdsPath").Value).Parent)
Set objSite = GetObject(GetObject(objDC.Parent).Parent)
cmd("sc query "Automatisches LiveUpdate - Scheduler" >> C:\test.txt ")
adoRecordset.MoveNext
Loop
adoRecordset.Close

' Clean up.
adoConnection.Close
Set objRootDSE = Nothing
Set adoCommand = Nothing
Set adoConnection = Nothing
Set adoRecordset = Nothing
Set objDC = Nothing
Set objSite = Nothing

Wscript.Echo "Done"








----------------originalscript - auszug - ohne meine änderungen. (fett hab ich gelöscht)

GetObject(adoRecordset.Fields("AdsPath").Value).Parent)
Set objSite = GetObject(GetObject(objDC.Parent).Parent)
Wscript.Echo "Domain Controller: " & objDC.cn & vbCrLf _
& "DNS Host Name: " & objDC.DNSHostName & vbCrLf _
& "Site: " & objSite.name

adoRecordset.MoveNext
    Mit Zitat antworten
Alt 15.05.2009, 12:50   #2
Board Veteran
 
Offline
Registriert seit: 12-2008
Beiträge: 4.674
Sieht auf dem ersten Blick nach Anführungszeichen Problem aus.
    Mit Zitat antworten
Alt 15.05.2009, 13:11   #3
Expert Member
 
Benutzerbild von Cybquest
 
Offline
Registriert seit: 12-2006
Ort: Weinsberg
Beiträge: 1.523
auf den 2. Blick ausserdem:
- wo ist "cmd" definiert? Meines Wissens ist das keine VBS-Funktion
Da kenn ich nur sowas wie WShell.run...
- In o.g. Fall liefert "sc query" aber nur die Daten des Rechners, von dem aus das Script aufgerufen wurde. Ist das hier so gewünscht?

Signatur
My name is Frank, you can say you to me.

    Mit Zitat antworten
Alt 15.05.2009, 13:22   #4
Board Veteran
 
Offline
Registriert seit: 06-2005
Ort: Schwaben
Beiträge: 777
das kann sein. ich hab damals einiges mit vba gemacht. daher hab ich das noch. kann mir jemand den befehl korrekt übergeben?

es soll vom aktuell gewählten dc der dienst gecheckt werden, dann gehts zum nächsten dc etc etc. - das macht das script ja auch
    Mit Zitat antworten
Alt 15.05.2009, 14:00   #5
Board Veteran
 
Offline
Registriert seit: 12-2008
Beiträge: 4.674
Powershell:

#DC's auslesen:
$dcs = & dsquery server | % {$_.replace('"','').split(',')[0].replace("CN=","")}

#Dienst testen:
foreach($dc in $dcs){
& sc.exe $dc query "wuauserv" | out-file C:\test.txt -append
}
    Mit Zitat antworten
Alt 15.05.2009, 14:31   #6
Board Veteran
 
Offline
Registriert seit: 06-2005
Ort: Schwaben
Beiträge: 777
muss ich da nochwas dimensioneren? (DIM)
und wo genau gehört das dann ins script?

sorry und danke!
    Mit Zitat antworten
Alt 15.05.2009, 16:33   #7
Board Veteran
 
Offline
Registriert seit: 12-2008
Beiträge: 4.674
Zitat von marzli2 Beitrag anzeigen
muss ich da nochwas dimensioneren? (DIM)
und wo genau gehört das dann ins script?

sorry und danke!
?
Was meinst du mit dimensionieren? Und wen meinst du?
    Mit Zitat antworten
Alt 15.05.2009, 22:14   #8
Moderator
 
Offline
Registriert seit: 11-2002
Beiträge: 6.666
@marzli,
mal ehrlich, hast du jemals eine Zeile Code in vb/vba/vbs geschrieben? Kennst du überhaupt den Unterschied?

Signatur
www.powershellpraxis.de

Nec Cupias, Nec Metuas

    Mit Zitat antworten
Alt 18.05.2009, 09:45   #9
Board Veteran
 
Offline
Registriert seit: 06-2005
Ort: Schwaben
Beiträge: 777
ich hab damals vba gemacht. aber auch nur learning by doing. und anscheinend funktioniert vb script doch etwas anders

von daher:

kann mir jemand das script mit den funktionen komplett posten. das wäre nett
    Mit Zitat antworten
Alt 18.05.2009, 10:03   #10
Board Veteran
 
Offline
Registriert seit: 06-2005
Ort: Schwaben
Beiträge: 777
@dukel

wenn ich das in der powershell ausführe, bekomme ich immer nur die meldung:

unbekannter befehl und dann die featurebeschreibung von SC

Geändert von marzli2 (18.05.2009 um 10:23 Uhr).
    Mit Zitat antworten
Antwort


Themen-Optionen


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Drucker für einen bestimmten Benutzer über Script mappen KLDAH Windows Forum — Scripting 2 21.04.2009 16:47
Prüfen ob User Adminrechte hat per cmd script deadcandance Windows Forum — Allgemein 13 14.11.2006 11:44
Prüfen einer bestimmten Stelle im %Clientname% Roughneck Windows Server Forum 4 26.09.2006 21:52
Dienst per Script prüfen tgyssling Windows Forum — Allgemein 11 13.07.2006 09:56
Script zum prüfen einer Datei im Internet? klick Windows Forum — Allgemein 5 08.02.2006 09:10


Alle Zeitangaben in MEZ/CET. Es ist jetzt 15:04 Uhr. Seite generiert in 0,042 Sekunden.

- Unsere Partner -

Copyright © 2000 – 2012 MCSEboard.de

Sprung zum Seitenanfang