# [VBS] Skript auf einem RemoteRechner ausführen lassen



## marcaurel1984 (27. August 2006)

Hallo Leute,

Ich hoffe ich bin Hier im richtigen Forum zu meinem Problem.
Ich versuche über ein VB-Skript die IP Adresse eines Remote Rechners zu ändern.
Folgendes Skript möchte ich Nutzen:


```
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "\\" & strComputer & "\root\cimv2")

Set colNetAdapters = objWMIService.ExecQuery _
    ("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")

strIPAddress = Array("192.168.1.141")
strSubnetMask = Array("255.255.255.0")
strGateway = Array("192.168.1.100")
strGatewayMetric = Array(1)
 
For Each objNetAdapter In colNetAdapters
    errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)
    errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)
    If errEnable = 0 Then
        WScript.Echo "The IP address has been changed."
    Else
        WScript.Echo "The IP address could not be changed."
    End If
Next
```


Das Problem wo ich nicht weiter komme ist das ich eine Fehlermeldung bekomme
das der Remote Rechner nicht erreichbar ist.
Woran könnte das liegen? Hat einer von euch So etwas ähnliches schon mal probiert?


----------



## DJBUNDI (29. August 2006)

Hallo marcaurel1984,

Wie startest du denn das script? Wird das script auf dem andern host durch einen andern process gestartet oder änderst du einfach "strComputer" und gehst über remote WMI?

greez
djbundi


----------



## marcaurel1984 (29. August 2006)

Hi,

ich änder einfach nur "strComputer" auf die jewielige IP Adresse des Remote Rechners....

mfg Marc


----------



## DJBUNDI (1. September 2006)

hallo,

also wenn du den host pingen kannst und du kriegst die meldung immer noch, dann ist es wichtig zu wissen, wann er die meldung bringt, ich könnte mir noch vorstellen, dass er bei dieser zeile dann alarmschlägt...


```
errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)
```

ganz einfach deswegen weil du vorher die methode EnableStatic aufrufst und die IP-Adresse änderst, d.h. der host hat ab diesem zeitpunkt eine neue IP... und gleich darauf willst du eben die obengenannte zeile ausführen, was ja nicht mehr geht, da die klasse/object "colNetAdapters" nicht für diese IP bestimmt ist, es zielt auf einen host, der gar nicht mehr erreichbar ist!
Das problem hast du nur, wenn du eben das ganze remote machst, wenn du das script lokal auf dem server ausführst, strComputer auch nicht änderst, und es funktioniert, dann hast du das problem gefunden! 

greez
djbundi


----------



## marcaurel1984 (1. September 2006)

Hi DJBUNDI,

erst einmal Danke das du mir bei meinem Problem hilfst... aber ich denke das script kommt erst gar nicht dazu überhaupt eine IP zu ändern sondern schon in dem Moment scheitert wo er erst einmal verbindung mit dem Remote System aufbauen will.

mfg marc


----------



## DJBUNDI (8. September 2006)

hallo,

war in den ferien... 
hmm...paste doch mal einen screenshot von der fehlermeldung... 

greez,
djbundi


----------



## marcaurel1984 (9. September 2006)

Salve,

ich habe dir mal nen screenshot mit hoch geladen

mfg Marc


----------



## DJBUNDI (15. September 2006)

moins,

na gut, dann würde ich mal sagen, dass der computer wirklich nicht erreichbar ist oder du hast keine rechte um per remote auf WMI mit dem ausführenden User zuzugreifen...

greez
djbundi


----------



## marcaurel1984 (15. September 2006)

Salve,

und wie kann ich mir die rechte verschaffen?

mfg marc


----------



## DJBUNDI (16. September 2006)

hellou,

1. in der MMC --> WMI Control Snap-IN aufmachen
2. Rechte mausklick auf WMI Control (Local) --> Properties
3. Im Register "Security" den entsprechenden Namespace (also "Root/CIMV2") markieren --> Security Button klicken...
4. User/gruppe hinzufügen und rechte vergeben...

und dann würd ich nochmals versuchen...wenns immer noch nicht geht...dann muss ich das bei mir selber testen... aber jetzt wird zuerst mal *glug* *glug*... 

greez,
djbundi


----------



## freakezoid1604 (8. Januar 2007)

Hallo erst mal


ich nutze fast das gleiche script, aber ich habe ein anderes problem ich möchte dieses script nur für eine bestimmte lan verbindung nutzen und nicht für alle. weis jemand wie ich das realisieren kann?

danke schon mal im voraus

gruß

freakezoid1604


```
Private Sub Command2_Click()
strComputer = "localhost"
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colNetAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
strIPAddress = Array("143.21.72.199")
strSubnetMask = Array("255.255.252.0")
strGateway = Array("143.21.72.1")
strGatewaymetric = Array(1)
For Each objNetAdapter In colNetAdapters
errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)
errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)
If errEnable = 0 Then
Status.Caption = "The IP address has been changed."
Else
Status.Caption = "The IP address could not be changed."
End If
Next
End Sub
```


----------



## DJBUNDI (15. Januar 2007)

hello,

ich versteh nicht ganz deine frage! was möchtest du genau machen? oder hat sich dein Problem in der Zwischenzeit schon gelöst.?

greez
djbundi


----------



## freakezoid1604 (15. Januar 2007)

Hallo erst mal

Leider ist mein Problem noch nicht gelöst.

Ich habe mehrere Lan Verbindungen unter anderem auch Vmware. 
Dieses Script ändert bei allen Verbindungen die IP.Ich möchte aber z.B. nur die IP von der "LAN-Verbindung-1" von DHCP auf eine Statische IP wechseln, während die anderen noch DHCP bleiben.

Ich hoffe das ist jetzt so rüber gekommen wie ich das meine.

Gruß
freakezoid1604


----------

