cH4PpY Geschrieben 17. Mai 2005 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
Maulwurf_der_Schlaue Geschrieben 17. Mai 2005 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...)
Amstelchen Geschrieben 17. Mai 2005 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
Maulwurf_der_Schlaue Geschrieben 18. Mai 2005 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?
cH4PpY Geschrieben 18. Mai 2005 Autor 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
Maulwurf_der_Schlaue Geschrieben 18. Mai 2005 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?
cH4PpY Geschrieben 18. Mai 2005 Autor 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
Amstelchen Geschrieben 18. Mai 2005 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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden