Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Clients dynamisch herunterfahren

Mitglied: OhnePower

OhnePower (Level 1) - Jetzt verbinden

09.11.2007, aktualisiert 10.11.2007, 3513 Aufrufe, 4 Kommentare

Hallo...

bei uns läuft ein Windows 2003 SBS und einige XP Clients.

Zum Feierabend soll der Server bestimmte Clients automatisch herunterfahren... das hört sich noch nicht allzu heftig an...

Aber: Das Script soll aus dem AD eine Computer OU auslesen, prüfen ob die Rechner online sind, gegebenenfalls herunterfahren und alles protokollieren

Da ich ein absoluter Neuling in Sachen Scripting bin, bitte ich hier um Hilfe!!

Struktur:
1. OU im AD ansprechen
2. Computerobjekte auf online prüfen - falls zutreffend herunterfahren
3. Protokoll mit Datum und Zeit


Ich hoffe es kann jemand helfen!


VG Maik
Mitglied: OhnePower
09.11.2007 um 18:17 Uhr
Hey...

das ist schon nicht schlecht...

Nur wie baue ich das ganze zusammen??
Bitte warten ..
Mitglied: bastla
09.11.2007 um 21:42 Uhr
Hallo OhnePower!

Das könnte schematisch so aussehen:
01.
Const strLogFile = "D:\ShutDownLogs.txt"
02.
 
03.
Const ForAppending = 8
04.
Set fso = CreateObject("Scripting.FileSystemObject")
05.
 
06.
'Protokolldatei öffnen, Daten werden an bestehende Datei angefügt
07.
Set objLogFile = fso.OpenTextFile(strLogFile, ForAppending, True)
08.
 
09.
Set colItems = GetObject _
10.
    ("LDAP://ou=Servers, dc=fabrikam, dc=com")
11.
colItems.Filter = Array("Computer") 'nur Computer-Objekte der OU
12.
 
13.
For Each objItem in colItems 'objItem ist jeder einzelne gefundene Computer
14.
	strCompName = objItem.CN 'Namen des Computers speichern
15.
 
16.
	'Timestamp (Datum und Zeit getrennt) ermiteln
17.
	strTime = CStr(Time) 'Zeit als Text speichern
18.
	
19.
	dtDate = Date 'Datum zwischenspeichern, ...
20.
	'... als JJJJ-MM-TT formatieren und als Text speichern
21.
	strDate = Year(dtDate) & "-" &_
22.
		Right("0" & CStr(Month(dtDate)), 2) & "-" & _
23.
		Right("0" & CStr(Day(dtDate)), 2)
24.
			
25.
	If IsOnline(strCompName) Then 'auf Erreichbarkeit prüfen
26.
		Shutdown strCompName 'Computer herunterfahren
27.
		'Logeintrag erstellen
28.
		strLogEntry = strDate & vbTab & strTime & vbTab & strCompName & vbTab & " wurde heruntergefahren."
29.
	Else
30.
		'Logeintrag erstellen
31.
		strLogEntry = strDate & vbTab & strTime & vbTab & strCompName & vbTab & " war offline/ausgeschaltet."
32.
	End If
33.
 
34.
	'Logeintrag schreiben
35.
	objLogFile.WriteLine strLogEntry
36.
	
37.
Next
38.
 
39.
objLogFile.Close 'Protokolldatei schließen
40.
'.................... Ende Hauptprogramm ....................
41.
 
42.
 
43.
Function IsOnline(strComp)
44.
 
45.
On Error Resume Next
46.
Set objShell = CreateObject("WScript.Shell")
47.
Set objExec = objShell.Exec("ping -n 2 -w 1000 " & strComp) 'CMD-Ping verwenden
48.
strPingResults = LCase(objExec.StdOut.ReadAll) 'gesamte Ping-Ausgabe (in Kleinbuchstaben) speichern ...
49.
On Error Goto 0
50.
 
51.
If InStr(strPingResults, "antwort von") Then '... und überprüfen
52.
  IsOnline = True
53.
Else
54.
  IsOnline = False
55.
End If
56.
 
57.
End Function
58.
 
59.
 
60.
Sub Shutdown(strComputer)
61.
 
62.
Const SHUTDOWN = 1
63.
Set objWMIService = GetObject _
64.
	("winmgmts:{impersonationLevel=impersonate,(Shutdown)}\\" & _
65.
	strComputer & "\root\cimv2")
66.
 
67.
Set colOperatingSystems = objWMIService.ExecQuery _
68.
	("Select * from Win32_OperatingSystem")
69.
 
70.
For Each objOperatingSystem in colOperatingSystems
71.
	objOperatingSystem.Win32Shutdown(SHUTDOWN)
72.
Next
73.
 
74.
End Sub
Grüße
bastla
Bitte warten ..
Mitglied: OhnePower
10.11.2007 um 13:31 Uhr
Hey bastla...

wow...
Vielen Dank erstmal!!!



Gruß Maik
Bitte warten ..
Ähnliche Inhalte
Vmware
RAM Speicher Dynamisch
gelöst Frage von zeroblue2005Vmware5 Kommentare

Hallo Zusammen, ich habe einen ESXI-5.1 am laufen mit 32 GB. Auf dem Hyper-Visor laufen derzeit 9 VM. Die ...

VB for Applications
Zeilen dynamisch ausblenden
gelöst Frage von TollgemachtVB for Applications10 Kommentare

Hallo Admins! Ich habe hier eine Liste, und komme nicht weiter, vielleicht kann mir ja jemand von euch helfen? ...

JavaScript
Dialogfenster dynamisch erstellen
Frage von miichiii9JavaScript

Hallo Miteinander Ich versuche ein dynamisches Fenster zu erstellen. Das Fenster ist kein Problem das habe ich mithilfe von ...

Microsoft Office
Ganze Tabellen dynamisch anzeigen
gelöst Frage von o0Asia0oMicrosoft Office7 Kommentare

Hallo Zusammen Ich würde gerne wissen, ob es möglich ist, ganze Listen anzeigen zu lassen mit einem Befehl. Da ...

Neue Wissensbeiträge
iOS
WatchChat für Whatsapp
Tipp von Criemo vor 22 StundeniOS

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor !!!
Tipp von Criemo vor 1 TagiOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Off Topic
Avengers 4: Endgame - Erster Trailer
Information von Frank vor 3 TagenOff Topic2 Kommentare

Ich weiß es ist Off Topic, aber ich freue mich auf diesen Film und vielleicht geht es anderen hier ...

Webbrowser
Microsoft bestätigt Edge mit Chromium-Kern
Information von Frank vor 3 TagenWebbrowser5 Kommentare

Microsoft hat nun in seinem Blog bestätigt, dass die nächste Edge Version kein EdgeHTML mehr für die Darstellung benutzen ...

Heiß diskutierte Inhalte
Exchange Server
Exchange Server 2010: Keine Eingehenden E-MAils
gelöst Frage von gabeBUExchange Server17 Kommentare

Hallo Zusammen Ich habe das kurzen auf dem Exchange 2010 Server das Problem, dass ich keine externen E-Mails mehr ...

Windows Netzwerk
Kerio. Kann keine Mails empfangen aber senden. Wer ist schuld. Kerio oder Windows domäne?
gelöst Frage von frosch2Windows Netzwerk14 Kommentare

Hallo, es existiert ein Problem bei uns mit dem mailen. Alle bestehenden Nutzer können mailen. Raus wie rein. Neuen ...

Server
Server in zwei verschiedene Netzwerke einbinden
gelöst Frage von BennyFServer13 Kommentare

Hallo zusammen, bei uns im Haus sind im Erdgeschoss die Geschäftsräume und ab dem 1. Stock sind unsere privaten ...

Viren und Trojaner
"Erpressermail" über eigenen web.de-Account
gelöst Frage von istike2Viren und Trojaner12 Kommentare

Hallo Zusammen, ein User aus dem Team hat folgende "Erpressermail" scheinbar von dem eigenen Mailaccount bekommen: Da die User ...