Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Frage Entwicklung VB for Applications

Mitglied: OhnePower

OhnePower (Level 1) - Jetzt verbinden

09.11.2007, aktualisiert 10.11.2007, 3471 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 ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Windows Update
Clients reporten nicht an WSUS (5)

Frage von mk139 zum Thema Windows Update ...

Virtualisierung
OpenSource Desktop-Virtualisierung für Thin-Clients (7)

Frage von Fenris14 zum Thema Virtualisierung ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...