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

gelöst Shutdown Script in vbs

Mitglied: chrizz-at

chrizz-at (Level 1) - Jetzt verbinden

03.07.2009, aktualisiert 20:02 Uhr, 6043 Aufrufe, 7 Kommentare

Hallo, ich brauche ein Script welches in einer Domäne alle Rechner herunterfährt. Besser gesagt auf 2 Domänen. Dies will ich aber von unserem Server aus machen. Das heisst ich muss irgendwie auf den anderen Domaincontroller der 2. Domäne zugreifen (Mit vbs als Administrator einloggen um die Rechner der 2. Domäne herunterzufahren)

Alles was ich zusammengebracht habe ist mit vbs einen bestimmten Rechner herunterzufahren mit den verschiedenen Parametern.. Wie mache ich das mit mehreren und wie logge ich mich auf dem 2. Server (DC für die 2. Domäne) an? Schlecht wär es auch nicht wenn sich die Server dann auch herunterfahren würden!

01.
strComputer = "TestPC" 
02.
 
03.
Const LOGOFF = 0 
04.
Const SHUTDOWN = 1 
05.
Const REBOOT = 2 
06.
Const POWEROFF = 8 
07.
Const FORCE = 4 
08.
 
09.
flags = POWEROFF + FORCE 
10.
 
11.
Set objwmi = GetObject("winmgmts:" _ 
12.
    & "{(Shutdown)}!\\" & strComputer) 
13.
 
14.
wql = "Select * from Win32_OperatingSystem" 
15.
 
16.
Set colOperatingSystems = objwmi.ExecQuery(wql) 
17.
 
18.
For Each objOperatingSystem In colOperatingSystems 
19.
    objOperatingSystem.Win32Shutdown flags, 0 
20.
Next
Bitte euch Experten um Hilfe
Christoph
Mitglied: Logan000
03.07.2009 um 15:01 Uhr
Moin Moin

1. Wenn Code postest, schau doch mal in die Formatierungshilfe.
2. Eine Vertrauensstellung zwischen den Domänen würde die aufgabe erleichtern.
3. Hier hast duch ein etwas erweitertes Codebsp. mit Anmeldung: http://www.quaschtel.de/wsh/wmi.htm#Fremder_Rechner_herunterfahren
4. Um das mit mehreren PCs zu machen, baust Du dir entweder eine Schleife oder arbeitest eine Liste ab.
5. Ich verwende zum Shutdown/Reboot lieber die Shutdown.exe.

Gruß L.
Bitte warten ..
Mitglied: Iwan
03.07.2009 um 15:08 Uhr
Hallo Hallo

6. Ich verwende zum Shutdown/Reboot lieber die PSShutdown.exe.
vorher natürlich die Computer noch in eine TXT eintragen und dank dieser die Computer runterfahren/neu starten lassen
dann würde ich das ganze noch per Batch machen, evtl. vorher die Rechner noch anpingen, um zu sehen, ob sie überhaupt an sind und fertig wäre das ganze
Bitte warten ..
Mitglied: chrizz-at
06.07.2009 um 13:13 Uhr
Hallo, ich habe hier jetzt einen Code den ich gerne Rekursiv ausgeführt hätte?

Weil ich die PC Namen aus einer Textfile auslesen werde, bzw. die Variable PC ist nicht immer "hostmobile" sondern ändert sich durch das auslesen aus einer Textdatei.

Wie mache ich eine Rekursion da draus das der code für jeden Rechner in der Textfile ausgeführt wird?

lg Chris

01.
' Rechnername und Logindaten  
02.
PC = "hostmobile" '  <- Soll Variabel sein! - Kann auch IP Adresse verwendet werden. 
03.
Const User = "Christoph" 
04.
Const PW = "test" 
05.
 
06.
 
07.
' Verbindung zu Fremdrechner & Betriebsystem 
08.
	On Error Resume Next 
09.
	Set WMI = CreateObject("WBemScripting.SWbemLocator") 
10.
	Set Login = WMI.ConnectServer(PC,"root/cimv2",USER,PW) 
11.
	If Err.Number <> 0 then 
12.
					Wscript.Echo Now() & " Fehler beim Einloggen bei Rechner: " & PC 
13.
					Err.Clear 
14.
					Shutdown = 1 
15.
			End if 
16.
	Set BS = Login.InstancesOf("Win32_OperatingSystem") ' Kann auch ExecQuery("SELECT * FROM Win32_OperatingSystem") verwendet werden. 
17.
 
18.
 
19.
' Befehl zum Herunterfahren 
20.
	On Error Resume Next 
21.
	For Each obj in BS 
22.
	Shutdown = obj.Shutdown 
23.
	Next 
24.
 
25.
' Meldung erfolgreich oder Fehlermeldung ausgeben 
26.
	If (Shutdown = 0) Then 
27.
	WScript.Echo Now() & ": Rechner " & PC & " wird/wurde heruntergefahren." 
28.
	Else 
29.
	WScript.Echo Now() & ": Rechner " & PC & " konnte nicht heruntergefahren werden!" 
30.
	End if
Bitte warten ..
Mitglied: Logan000
13.07.2009 um 09:44 Uhr
Moin Moin

Der Beitrag ist ja immer noch offen.
Ist doch nicht so schwer. Du schiebst dein Code in eine Function. Dann liest du die PCnamen aus einer Textdatei Zeilenweise aus und rufst deine Function mit dem PC namen auf.
Etwa so (ungetestet):
01.
Const User = "Christoph" 
02.
Const PW = "test" 
03.
Const ForReading = 1 
04.
Dim szNextLine 
05.
Dim szValue 
06.
Set objDictionary = CreateObject("Scripting.Dictionary") 
07.
Set objFSO = CreateObject("Scripting.FileSystemObject") 
08.
Set objTextFile = objFSO.OpenTextFile("PCListe.txt", ForReading) 
09.
Do Until objTextFile.AtEndOfStream  
10.
		szNextLine = objTextFile.Readline 
11.
                PCShutdown(szNeuLine) 
12.
Loop 
13.
 
14.
Function PCShutdown(PC,User,PW) 
15.
	On Error Resume Next 
16.
	Set WMI = CreateObject("WBemScripting.SWbemLocator") 
17.
	Set Login = WMI.ConnectServer(PC,"root/cimv2",USER,PW) 
18.
	If Err.Number <> 0 then 
19.
					Wscript.Echo Now() & " Fehler beim Einloggen bei Rechner: " & PC 
20.
					Err.Clear 
21.
					Shutdown = 1 
22.
			End if 
23.
	Set BS = Login.InstancesOf("Win32_OperatingSystem") ' Kann auch ExecQuery("SELECT * FROM Win32_OperatingSystem") verwendet werden. 
24.
	On Error Resume Next 
25.
	For Each obj in BS 
26.
	Shutdown = obj.Shutdown 
27.
	Next 
28.
	If (Shutdown = 0) Then 
29.
	WScript.Echo Now() & ": Rechner " & PC & " wird/wurde heruntergefahren." 
30.
	Else 
31.
	WScript.Echo Now() & ": Rechner " & PC & " konnte nicht heruntergefahren werden!" 
32.
	End if 
33.
End Function
Gruß L.
Bitte warten ..
Mitglied: chrizz-at
14.07.2009 um 09:48 Uhr
Ok das funktioniert mal nicht.. aber ist ein Ansatz!
Wenn ich ein bisschen Plan hätte würd ichs hinkriegen

Es scheitert bei der Zeile

01.
Do Until objTextFile.AtEndOfStream  
02.
		szNextLine = objTextFile.Readline 
03.
                PCShutdown(szNeuLine) <-- HIER! 
04.
Loop
Bitte warten ..
Mitglied: Logan000
14.07.2009 um 11:43 Uhr
Moin Moin

Ein Tippfehler meinerseits.
Ist aber ziemlich offensichtlich.
So solte es funktionieren:
01.
Do Until objTextFile.AtEndOfStream  
02.
		szNextLine = objTextFile.Readline 
03.
'                PCShutdown(szNeuLine) <-- HIER! 
04.
                PCShutdown(szNextLine)  
05.
Loop
Gruß L.
Bitte warten ..
Mitglied: chrizz-at
14.07.2009 um 14:00 Uhr
Hab das Script selbst fertigstellen können!

Es sieht so aus wer es haben möchte:

Einfach Rechnernamen in die Textfile eintragen (und nätürlich auch Administrator Login) und los gehts!

01.
' ******************************* 
02.
' Shutdown Script (c) HOST		* 
03.
' Author: Christoph Strassmair	* 
04.
' Created: 06.07.09				* 
05.
' Last Changed: 14.07.09		* 
06.
' ******************************* 
07.
' Login Daten 
08.
Const User = "Christoph" 
09.
Const PW = "PWTEST" 
10.
 
11.
' Dimensionieren der Variablen 
12.
Dim szNextLine, objDictionary, objFSO, objTextFile, PC 
13.
Set objDictionary = CreateObject("Scripting.Dictionary") 
14.
Set objFSO = CreateObject("Scripting.FileSystemObject") 
15.
Set objTextFile = objFSO.OpenTextFile("PCListe.txt", 1) 
16.
 
17.
Do Until objTextFile.AtEndOfStream  
18.
	szNextLine = objTextFile.Readline 
19.
	PCShutdown szNextLine, User, PW 
20.
Loop 
21.
 
22.
Private Sub PCShutdown(PC,User,PW) 
23.
	On Error Resume Next 
24.
	Set WMI = CreateObject("WBemScripting.SWbemLocator") 
25.
	Set Login = WMI.ConnectServer(PC,"root/cimv2",USER,PW) 
26.
	If Err.Number <> 0 then 
27.
					Wscript.Echo Now() & " Fehler beim Einloggen bei Rechner: " & PC & vbCRLf & _ 
28.
					"Grund: " & Err.Description 
29.
					Err.Clear 
30.
	End if 
31.
	Set BS = Login.InstancesOf("Win32_OperatingSystem") ' Kann auch ExecQuery("SELECT * FROM Win32_OperatingSystem") verwendet werden. 
32.
	On Error Resume Next 
33.
	For Each obj in BS 
34.
	Shutdown = obj.Shutdown 
35.
	Next 
36.
	If (Err.Number <> 0) Then 
37.
	WScript.Echo Now() & ": Rechner " & PC & " konnte nicht heruntergefahren werden!" 
38.
	Else 
39.
	WScript.Echo Now() & ": Rechner " & PC & " hat den Shutdown Befehl erhalten." 
40.
	End if 
41.
End Sub
Danke für eure Hilfe!! Thread gelöst!
Bitte warten ..
Ähnliche Inhalte
Windows 8
Windows 8.1 Shutdown Script
gelöst Frage von MStegeWindows 810 Kommentare

Hallo, ich habe per GPO ein PowerShell Shutdownscript hinzugefügt. Computerkonfiguration\Windows-Einstellungen\Skripts (Starten/Herunterfahren) das Script "BackupScript.ps1" liegt in: "C:\WINDOWS\System32\GroupPolicy\Machine\Scripts\Shutdown" Das Skript ...

VB for Applications
VBS Script kann Prgramm nicht starten
gelöst Frage von C.BoernerVB for Applications15 Kommentare

Hallo ihr Admins, Ich habe folgendes Scenarios ein Programm läuft im Hintergrund (Drivve-Image) das übergibt Werte an ein VBS ...

Batch & Shell
Hilfe Bei einem vbs Script
gelöst Frage von Hattori-HanzoBatch & Shell19 Kommentare

Hey Leute Könnt ihr mir bitte sagen was daran falsch ist? beschäftige mich erst seit kurzem mit vbs scripts. ...

JavaScript

VBS-Script wird nicht vollständig ausgeführt

Frage von HousefrauJavaScript3 Kommentare

Hallo zusammen, wir lassen über eine Gruppenrichtlinie einen Script ausführen, welcher die Drucker der einzelnen Parteien mappen soll. Leider ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 1 TagWindows 105 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 2 TagenAdministrator.de Feedback18 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 2 TagenHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 3 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Router & Routing
WRT keine Verbindung zum Web Interface
Frage von ILeonardRouter & Routing15 Kommentare

Hallo, Ich habe einen TP-Link WR841n mit wrt geflasht, das Problem ist ich kann mich mit 192.168.1.1 nicht verbinden. ...

Windows Server
Standortvernetzung zu einem Strato VServer (Windows)
Frage von matzefratze81Windows Server10 Kommentare

Moin, ich komme aus einem Enterprise-Umfeld und habe den Fehler gemacht, dass ich mich auf ein kleines Unternehmen eingelassen ...

Grafikkarten & Monitore
4k EIZO Monitor, Fernseher und Splitter
Frage von LerxxeyGrafikkarten & Monitore9 Kommentare

Hallo Zusammen, vielleicht könnt ihr mir bei einem Problem helfen wo ich einfach nicht mehr weiterkomme Und zwar haben ...

Humor (lol)
Nerd Zeitschrift gesucht
Frage von 2SeitenHumor (lol)6 Kommentare

Hey Zusammen, Ich suche eine Zeitschrift bei der es ums technische Basteln geht. Pc zusammenschrauben, Arduino Projekte, Server Tipps ...