koluschkib
Goto Top

Per remote ein vbscript auf entferneten pc ausführen

Mahlzeit Admin freunde,
häng mal wieder fest und komm nicht wirklich weiter

versuche per vbscript einen remote verbidnung zu einem pc herzustellen und eine *.exe auf ihm aus zu führen. zb calc.exe. hab zwar im netzt ein script gefunden, womit man die drucker die auf dem remote pc installiert sind auslesen kann. was ja soweit ganz nett ist, aber ich kriege es nicht hin dieses script so umzubatslen, dass es einfach nur ne exe startet.
das script sieht vollgendermaßen aus:

strComputer = InputBox("Bitte IP-Adresse des PC's eingeben:","Installierte Drucker abrufen")  
strUsername = InputBox("Bitte Username eines Administrators des Remotesystems eingeben:","Installierte Drucker abrufen")  
strPassword = InputBox("Bitte Password des Administrators eingeben:","Installierte Drucker abrufen")  
Const WbemAuthenticationLevelPktPrivacy = 6
Set objWbemLocator = CreateObject("WbemScripting.SWbemLocator")  
Set objWMIService = objwbemLocator.ConnectServer(strComputer, "root\cimv2", strUsername, strPassword)  
objWMIService.Security_.authenticationLevel = WbemAuthenticationLevelPktPrivacy
Set objPrinters = objWMIService.ExecQuery("Select * From Win32_Printer")  

For Each objPrinter In objPrinters
	WScript.Echo objPrinter.Name
Next

ansich alles selbst erklärend, ip des pc eingeben, adminname, pw und los gehts. aber ich finde einfach keinen passende syntax mit der man einefach auf dem entfernten pc nem prozess zu starten. hab schon google durch geforstet und auch diese service56.chm in anspruch genommen. zwar gibt es dort einige beispiele, aber nicht denn denn ich brauche. was mir ja nicht unbedingt weiterhilft...

hoffe einer von euch, kann mri bei dem problem helfen

grüße

koluschkiB

Content-Key: 140827

Url: https://administrator.de/contentid/140827

Printed on: April 24, 2024 at 07:04 o'clock

Member: lefgruen
lefgruen Apr 16, 2010 at 09:55:55 (UTC)
Goto Top
Hallo,

schau mal nach psexec!

Viel Erfolg
Member: koluschkiB
koluschkiB Apr 16, 2010 at 10:17:36 (UTC)
Goto Top
Hey und danke für denn Tipp,

ich hab ihn schon selbst gefunden, aber will etwas ohne das ich ein PSTool da rein intigieren. es muss doch irgendeinen befehlt geben, der es einfach so straten kann

hab was gefunden, womit man powerpoint starten kann, und wenn das geht muss es auch möglich sein ne calc.exe zu starten

Dim objFSO, objFileCopy, objGuyFile
Dim strFilePath, strDestination 
strComputer = "sexpw193"  
strUser = "remotepc\username"  
strPassword = "password"  
strProcessKill = "'POWERPNT.EXE'"  
strFilePath = "d:\H\PowerPoint\presentation.pps"  
strDestination ="\\remotepc\PPT$\"  
 
  'Kill powerpoint show  
    Set wbemLocator = CreateObject("WbemScripting.SWbemLocator")  
    Set wbemServices = wbemLocator.ConnectServer(strComputer, "root\cimv2", strUser, strPassword)  
    Set wbemObjectSet = wbemServices.ExecQuery("Select * from Win32_Process where Name = " & strProcessKill)  
 
    For Each wbemObject In wbemObjectSet
        wbemObject.Terminate
    Next
 
		
	'code to copy ppt to dest  
	Set objFSO = CreateObject("Scripting.FileSystemObject")  
	Set objFileCopy = objFSO.GetFile(strFilePath)
	objFileCopy.Copy (strDestination)
	
	
 
  
  'Restart show  
	'Set objProcess = GetObject("winmgmts:\\" & strComputer & "\root\cimv2:Win32_Process")  
	'strCommand = "wscript " & Chr(34) & "D:\PPT\pp.vbs" & Chr(34)  
	'objProcess.Create strCommand,null,null,intProcessID  
	
	
	
	
	Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2:Win32_Process")   
Error = objWMIService.Create("d:\PPT\pp.vbs", null, null,intProcessID)   
 
If Error = 0 Then 
MsgBox (strProcess & " was started with a process ID of " & intProcessID & ".")   
 
Else 
MsgBox (strProcess & " could not be started due to error " & _   
errReturn & ".")   
 
End If
	
REM Dim objWMIService, objProcess
REM Dim strShell, objProgram, strVBS
 
REM strVBS = "wscript.exe d:\PPT\pp.vbs"  
REM ' Connect to WMI  
REM set objWMIService = getobject("winmgmts://"_  
REM & strComputer & "/root/cimv2")   
 
REM ' Obtain the Win32_Process class of object.  
REM Set objProcess = objWMIService.Get("Win32_Process")  
REM Set objProgram = objProcess.Methods_( _
REM "Create").InParameters.SpawnInstance_  
REM objProgram.CommandLine = strVBS
 
REM 'Execute the program now at the command line.  
REM Set strShell = objWMIService.ExecMethod( _
REM "Win32_Process", "Create", objProgram)   
 
REM WScript.echo "Created: " & strVBS & " on " & strComputer  
 
 
	Wscript.Quit

wenn das irgendwie möglich ist, gehte s doch sicherlich mit so ner billigen calc.exe

gruß
Member: Edi.Pfisterer
Edi.Pfisterer Apr 16, 2010 at 10:51:24 (UTC)
Goto Top
Hallo!
Mann, mann, mann...
Bist Du dir sicher, dass Du die richtige Ausbildung machst? - Nix für ungut, aber:

Bei diesem Beispiel gilt auch nicht mehr die Ausrede, das Skript wäre nicht praxisrelevant...
und: das reine kopieren von Code ist sicher nicht Zweck der Aufgabe...

probier mal folgendes:
http://www.gidf.de/

und dann käme hier die Lösung!
Ich empfehle:
Kopier den Code einfach und überlege Dir keinesfalls, warum und vor allem wie er funktioniert. Nur so ist maximale Bildungsresistenz gewährleistet...
Sorry, aber die harten Worte mussten mal sein!


lg
Edi
Member: koluschkiB
koluschkiB Apr 16, 2010 at 11:10:39 (UTC)
Goto Top
was willst du eigentlich mit deinem sch*** www.gidf.de
glaubst ich bin zu blöd zum googlen?
ich bin durch aus in der lage die suchmaschine auch zu nutzen.
aber es scheint, dass es deine standard antwort auf alle userproblem die hier sind ist, es ist nicht das erstemal, dass du es mir antwortest. wozu gibt es denn das forum hier überhaupt, wenn deine ultimative antwort auf alles www.gidf.de ist?!

ich mach schon dir richtige ausbildung, systemintegration im support. ich hab so viel mit scripten zu tun wie ne kuh mit eier legen. es ist absolut nicht mein ding das programmieren, aber mir bleibt nichts anderes übrig als es bis ende juni übermich ergehen zu lassen. ich versuche auch dahinter zu kommen, wie was funktioniert. und durch welche befehle, etwas in gang gesetzt wird...
wenn ein user bei mir anruft, wegen XY, dann schreib ich keins script um mich auf seinen pc drauf zu schalten, sondern starte einfach SMS-Adminkonsole face-wink und siehe da. alles klappt, falls du nicht weist was SMS-Adminkonsole ist ---> www.gidf.de face-wink


hab das mit der psexec.exe ausprobiert. zwar nicht über vb sondern cmd

start d:\pstools\psexec.exe \\pcname -u domain/username -w c:\windows\system32\calc.exe

klappt leider nicht so ganz wie ich es mir gedacht habe, zwar öffnet sich bei mir die cmd mit der aufforderung der pw eingabe. aber das programm startet nicht.
das pw gehört dem nutzer des anderen pc, eben so ist als username sein benutzername eingetragen, so wie sein pcname

gruß
Member: koluschkiB
koluschkiB Apr 16, 2010 at 11:20:09 (UTC)
Goto Top
ja, vonwegen kopieren und ja nicht hinterfragen wieso etwas nicht funktioniert.
dein script funktioniert nicht, nach eingabe des pc namens,
kommt n error in

zeile 15 Zeichen 1
Fehler Erlaubnis verweigert.: 'getobject'

so viel dazu...
Mitglied: 45877
45877 Apr 16, 2010 at 12:16:45 (UTC)
Goto Top
Zitat von @koluschkiB:
hab das mit der psexec.exe ausprobiert. zwar nicht über vb sondern cmd

> start d:\pstools\psexec.exe \\pcname -u domain/username -w c:\windows\system32\calc.exe
> 

klappt leider nicht so ganz wie ich es mir gedacht habe, zwar öffnet sich bei mir die cmd mit der aufforderung der pw
eingabe. aber das programm startet nicht.
das pw gehört dem nutzer des anderen pc, eben so ist als username sein benutzername eingetragen, so wie sein pcname


Das Programm startet schon, nur halt in der konsole.

Probier mal den -i switch

Ansonsten schau mal hier

http://motevich.blogspot.com/2007/11/execute-program-on-remote-computer ...
Member: koluschkiB
koluschkiB Apr 16, 2010 at 12:27:14 (UTC)
Goto Top

Probier mal den -i switch

was meinst du denn mit -i switch? wo soll ich es denn reinsetzen?


hab denn artikel auch gefunden und getestet, dass problem ist glaueb ich, dass wenn ich es so lasse ich keinen zugriff auf denn remote pc kriege, weil kein benutzer und password abgefragt wird, mir wird der zugriff verweigert.

egal, was ich schon ausprobiert habe, der fehler ist immer der gleiche 'GetObject' kotzt mich schon langsam das ganze

hab folgenedes gemacht, aber selbst dort gibt es immer ne fehlermeldung

strComputer = InputBox("Bitte IP-Adresse des PC's eingeben:")  
strUsername = InputBox("Bitte Username eines Administrators des Remotesystems eingeben:")  
strPassword = InputBox("Bitte Password des Administrators eingeben:"  

strCommand = "notepad.exe"  


Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer, strUsername, strPassword & "\root\cimv2")  
Set objProcess = objWMIService.Get("Win32_Process")  


errReturn = objProcess.Create(strCommand, null, null, intProcessID)


If errReturn = 0 Then
Wscript.Echo "notepad.exe was started with a process ID: " & intProcessID  
Else
Wscript.Echo "notepad.exe could not be started due to error: " & errReturn  
End If

gruß
Mitglied: 45877
45877 Apr 16, 2010 at 12:31:47 (UTC)
Goto Top
Warum machst du es nicht aus ner Adminkosonle?
Member: koluschkiB
koluschkiB Apr 16, 2010 at 12:50:11 (UTC)
Goto Top
meinst aus der mmc? das könnte ich, aber soll es nicht. ich muss nen *.vbs datei schreiben, mit der man auf einem remote pc etwas starten kann.
ich erlerne gerade VBS PS programmieren.
die aufgabe die ide ich habe lautet:

wie kann man VBS-Skripte auf einem Remote PC laufen lassen?

hab nochmal nach gehackt, was mit der frage gemeint ist. wäre einfach sich auf denn anderen pc zu klemmen, das skript dort anlegen und starten face-smile aber nein, so soll es nicht sein
es muss was sein, was ich auf meinem pc (lokal) ausführe und auf einem entferneten pc das resultat gesehen wird. mehr oder weniger...
das mit denn drucker auslesen auf anderen pc, war schon ok. aber der aufgabengeber meinte, wäre ein gutes bsp. wenn man zb ne calc.exe auf einem anderen pc starten würde.
es ist schon der 5. Aufgabenpool denn ich gekriegt habe, bis jetzt verlief es ganz gut, aber da wurde eben nur an der oberfläche bisschen gekratzt, jetzt geht es langsam ans eingemacht, was mir gleichzeitig ein paar graue haare mehr bringt

gruß
Mitglied: 45877
45877 Apr 16, 2010 at 13:00:37 (UTC)
Goto Top
nö, ich meine lass es aus ner cmd box entweder per runas oder eben per "ausführen als"
als admin laufen.
Member: Edi.Pfisterer
Edi.Pfisterer Apr 19, 2010, updated at Oct 18, 2012 at 16:41:47 (UTC)
Goto Top
Hallo koluschki!

Schön, dass ich mich über genau NICHTS ärgere, denn sonst müsste ich es nun!

ICH habe dir zum Biespiel hier eine fixfertige Lösung gemacht!
ICH habe dir noch nie zu GIDF geraten
ICH finde es im übrigen nicht sch* und rate im übrigen dringend davon ab, hier mit Fäkalausdrücken zu hantieren - die Moderatoren sind da empfindlich (im übrigen: ich auch!)

so viel dazu!

Falls DU damit zufrieden bist, lebenslänglich im Supportcenter zu arbeiten, gebe ich Dir recht, dass Scripts zu schreiben für dich keinen Sinn ergibt!

UND: Danke für den Hinweis auf gidf wegen der SMS-Konsole. Ich musste zum Glück nicht googeln, weil mein erster Kontakt zu SMS im Jahre 1999 war, und meine Gedächtnis ist glücklicherweise (und offensichtlich im Gegensatz zu Deinem, da Du ansonsten ja mich nicht des GIDF-Verteilens bezichtigen würdest) völlig intakt. Noch glücklicher bin ich allerdings über den Umstand, dass es mir gelungen ist, diesen Supportjob vor geraumer Zeit an den Nagel zu hängen, um mich der tatsächlichen Planung und Administration grosser Netze zu befassen. Dieser Supportjob ist mir nämlich - wegen der immerwiederkehrenden ähnlichen Probleme - relativ schnell fad geworden. Schätze dich glücklich, wenn Dir nicht so schnell fad wird!!!

Letzten 2 Anmerkungen:

1.) WIR können nichts dafür, dass du VBS für einen Sch* hälst
2.) ICH werde auf keinen Deiner Beiträge mehr Antworten!

trotz allem:
Alles Gute weiterhin

Edi

edit:
zeile 15 Zeichen 1
Fehler Erlaubnis verweigert.: 'getobject'
Falls das Script ohne Bearbeitung funktionieren würde, hättet ihr ein gröberes Poblem, da kein Passwort übergeben wird...
dh, du musst es halt mit Teilen des Codes aus deinem 1. Posting in diesem Beitrag verbinden und es wird funktionieren!
Member: koluschkiB
koluschkiB Apr 26, 2010 at 07:03:27 (UTC)
Goto Top
nie zu gidf gerraten?
da frag ich mcih doch glatt was das für ein link ist?!
wohl nicht von dir hier gepostet worden...

probier mal folgendes:
http://www.gidf.de/
Member: koluschkiB
koluschkiB Apr 26, 2010 at 07:06:23 (UTC)
Goto Top
Letzten 2 Anmerkungen:

2.) ICH werde auf keinen Deiner Beiträge mehr Antworten!


bin dir sehr dankbar dafür, denn du bringst mich kein bisschen weiter