cH4PpY Geschrieben 17. Mai 2005 Teilen Geschrieben 17. Mai 2005 Hi Leute also ich muss folgendes lösen. Per Skript auf einen remoterechner zugreifen und dort dann ein netzlaufwerk erstellen. bin da noch ziemlich neu und habe mal verschiedenes probiert bin allerdings noch zu keiner lösung gekommen. Ich habe 3 Stellen im Code fett dargestellt das sind die wichtigen. Und zwar bei dem Fettgedrucktem NR1: hier wird die verbindung zur WMI des Remoterechners hergestellt. NR2: hier SOLLTE dann auf dem Remoterechner ein Netzlaufwerk verbunden werden. Leider verbindet er das Laufwerk aber auf meinem lokalen Rechner ^^ NR3: Hier wird dann die Datei ausgeführt die ich normalerweise dann über das gemappte laufwerk aufgerufen wird. Nr3 führt er korrekt remote aus aber Nr2 jedesmal auf meinem lokalen rechner weiß einer wieso? danke schonmal '* Msgbox welcome <-- Aufteilung in 2 Zeilen welcome = "Willkommen bei blablabla" & vbNewLine welcome = welcome & " (Beta 0.1)" MsgBox welcome,,"remote.Installer (Beta 0.1)" '* Eingabe der IP des Zielrechners & Wiederholung bei "Leereingabe" ziel = InputBox("Bitte geben Sie die IP des Zielrechners ein.") If IsEmpty(ziel) Then Do MsgBox "Es muss ein Zielcomputer angegeben werden.", vbCritical ziel = InputBox("Bitte geben Sie die IP des Zielrechners ein.") Loop Until ziel <> "" End If Namespace = "root\CIMV2" '* Eingabe des Usernamen & Wiederholung bei "Leereingabe" UserName = InputBox("Bitte geben Sie den Benutzernamen ein.") If UserName = "" Then Do MsgBox "Es muss ein Benutzername angegeben werden.", vbCritical UserName = InputBox("Bitte geben Sie den Benutzernamen ein.") Loop Until UserName <> "" End If '* Eingabe des Passworts & Wiederholung bei "Leereingabe" Password = InputBox("Bitte geben Sie das Passwort ein.") If Password = "" Then Do MsgBox "Es muss ein Passwort angegeben werden.", vbCritical Password = InputBox("Bitte geben Sie das Passwort ein.") Loop Until Password <> "" End If '* PktPrivacy <-- zusätzliche Datenverschlüsselung [B]Const wbemAuthenticationLevelPktPrivacy = 6 Set objLocator = CreateObject("WbemScripting.SWbemLocator") objLocator.Security_.AuthenticationLevel = wbemAuthenticationLevelPktPrivacy Set ObjWMI = objLocator.ConnectServer(ziel, Namespace, UserName, Password) [/B] '* MsgBox zur Prüfung der vorangegangenen Eingaben ziel = "Zielrechner: " & ziel & vbNewLine name = ziel & "Username: " & UserName & vbNewLine pw = name & "Passwort: " & Password & vbNewLine leer = pw & "" & vbNewLine abfrage = leer & "Sind diese Angaben korrekt?" '* Prüfung der vorangegangenen Eingaben entscheidung = MsgBox (abfrage, vbYesNo + vbQuestion) If entscheidung = vbNo Then MsgBox "Bitte Programm neu starten und Eingaben korrigieren." WScript.Quit ElseIf entscheidung = vbYes Then MsgBox "Die Installation wird nun durchgeführt." End If [B]'* Netzlaufwerke verbinden Set objnet = CreateObject("WScript.Network") objnet.MapNetworkDrive "Z:","\\10.10.3.230\c$",True,"demo\user","pw"[/B] [B]'* Führt die Datei aus Set instanz = ObjWMI.Get("Win32_Process") WScript.Echo instanz.GetObjectText_ * rv = instanz.Create("Z:\xxx.bat") WScript.Echo "Rückgabewert: " & rv ObjWMI Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Maulwurf_der_Schlaue Geschrieben 17. Mai 2005 Teilen Geschrieben 17. Mai 2005 objnet.MapNetworkDrive "Z:","\\10.10.3.230\c$",True,"demo\user","pw" du sagst hier er soll lokal z erstellen, er hat ja sonst nichts wie soll er da auf nen anderen Rechern was erstellen, oder seh ich was falsch? vielleicht gibt es einen Befehl der auf einem anderen Rechner das laufwerk erstellt oder du versucht mal irgendwie sowas: objnet.MapNetworkDrive "\\"+ziel+"\Z:","\\10.10.3.230\c$",True,"demo\user","pw" (is nur ne idee, vielleicht ein bisserl anders...) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 17. Mai 2005 Teilen Geschrieben 17. Mai 2005 probier das ganze vielleicht mal so - ist allerdings ohne SWbemLocator sprich ohne verschlüsselung/authentifizierung. hast du zugriff auf das eventlog des remoterechners? Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & ziel & "\root\cimv2") Set WshNetwork = WScript.CreateObject("WScript.Network") WshNetwork.MapNetworkDrive "z:", "\\10.10.3.230\c$", blabla @maulwurf: MapNetworkDrive lässt keine unc-pfade als ersten parameter zu, dass muss ein laufwerksbuchstabe sein - aber schön wärs schon... s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Maulwurf_der_Schlaue Geschrieben 18. Mai 2005 Teilen Geschrieben 18. Mai 2005 @Amstelchen: du scheinst dich richtig gut auszukennen ... ich würd gern mehr mit WSH machen ... hast du da evtl. Link mit Befehlen allen Objekten und deren Eingenschaften und Methoden? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
cH4PpY Geschrieben 18. Mai 2005 Autor Teilen Geschrieben 18. Mai 2005 guten morgen zusammen also erstmal vielen dank für die Hilfe habe es nun versucht so zu lösen wie Amstelchen genannt hat: Set objWMIService = GetObject("winmgmts:\\" & "10.10.3.230" & "\root\cimv2") <-- du meintest ja das damit dann die verbindung aufgebaut wird. geht aber nicht zugriff verweigert da er dann ja meinen momentan account nimmt (soweit ich weiß) und der auf dem zielrechner nicht gültig ist. Habe es dann einfach mal um den user und pw ergänzt allerdings geht es so auch nicht. Set objWMIService = GetObject("winmgmts:\\" & "10.10.3.230" & "\root\cimv2" & "demo\user" & "pw") Mein Arbeitskollege hat gesagt ich soll mal schaun ob es bei ObjWMI.Get etwas gibt was ich nutzen kann bisher habe ich jedoch noch nichts gefunden. @Maulwurf_der_Schlaue ich habe mal was angehangen da bekommst du ne Übersicht über die ganzen WMI Klassen vielleicht hilft dir das ja bissel scriptomatic.zip Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Maulwurf_der_Schlaue Geschrieben 18. Mai 2005 Teilen Geschrieben 18. Mai 2005 dank dir... zu deinem Problem: es gibt doch bestimmt einen Admin-Account auf den Remoterechner? und die haben bestimmt den selben Username und Password oder? Wenn ja, dann meld dich doch als admin an und führ das skript aus, dann nimmt er deinen Account und findet ihm auf dem Remotesystem, dann sollte es gehen.... oder nicht? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
cH4PpY Geschrieben 18. Mai 2005 Autor Teilen Geschrieben 18. Mai 2005 dank dir... zu deinem Problem: es gibt doch bestimmt einen Admin-Account auf den Remoterechner? und die haben bestimmt den selben Username und Password oder? Wenn ja, dann meld dich doch als admin an und führ das skript aus, dann nimmt er deinen Account und findet ihm auf dem Remotesystem, dann sollte es gehen.... oder nicht? so habe ich es eben schon versucht klappt leider nicht also die verbindung steht aber das netzlaufwerk wird nicht auf dem remoterechner angelegt sondern immernoch auf dem lokalen rechner :-( naja ich muss mal weitersuchen wird schon irgendwie Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 18. Mai 2005 Teilen Geschrieben 18. Mai 2005 also eine exzellente quelle ist das handbuch wsh-scripting von microsoft - ausgedruckt sind das ca. 90 seiten. eine übersicht über alle wmi-objekte hilft dir vielleicht auch noch. s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.