Befehlszeile um einen anderen PC im Netzwerk anzusteuern VBScript
Ich bin noch in den Anfängen von VBScript!!
Ich versuche über VBScript einen Netzwerkdrucker von einem anderen PC zu enfernen.
Lokal an meinem Rechner habe ich das schon geschafft mit:
Set objNetwork = CreateObject("Wscript.Network")
objNetwork.RemovePrinterConnection "\\Server\Drucker"
Jetzt ist meine Frage wie kann ich das selbe mit einem PC im Netzwerk machen??
Welche Befehlszeile benötige ich um einen anderen Client anzusprechen?
MfG
AeRoX1990
Danke schon mal!!
Ich versuche über VBScript einen Netzwerkdrucker von einem anderen PC zu enfernen.
Lokal an meinem Rechner habe ich das schon geschafft mit:
Set objNetwork = CreateObject("Wscript.Network")
objNetwork.RemovePrinterConnection "\\Server\Drucker"
Jetzt ist meine Frage wie kann ich das selbe mit einem PC im Netzwerk machen??
Welche Befehlszeile benötige ich um einen anderen Client anzusprechen?
MfG
AeRoX1990
Danke schon mal!!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 120172
Url: https://administrator.de/contentid/120172
Ausgedruckt am: 23.11.2024 um 05:11 Uhr
16 Kommentare
Neuester Kommentar
Hi,
ich glaube dir könnte der Link weiterhelfen:
Druckerreinrichtung für alle User
Wenn net guck ich heute nachmittag mal wie es genau ging (hab es schon einmal hinbekommen)
ich glaube dir könnte der Link weiterhelfen:
Druckerreinrichtung für alle User
Wenn net guck ich heute nachmittag mal wie es genau ging (hab es schon einmal hinbekommen)
Moin Moin
Also auf die schnelle würd ich sagen, mach es genau so, nur das du dein Skript per Loginskript oder GPO auf dem Client laufen läßt.
Ansonsten kannst du dein Skript auch per psexec auf dem Client ausführen lassen.
Es geht natürlich auch per WMI. Dazu soltest du hier fündig werden:
http://www.microsoft.com/technet/scriptcenter/scripts/default.mspx?mfr= ...
Gruß L.
Also auf die schnelle würd ich sagen, mach es genau so, nur das du dein Skript per Loginskript oder GPO auf dem Client laufen läßt.
Ansonsten kannst du dein Skript auch per psexec auf dem Client ausführen lassen.
Es geht natürlich auch per WMI. Dazu soltest du hier fündig werden:
http://www.microsoft.com/technet/scriptcenter/scripts/default.mspx?mfr= ...
Gruß L.
Nur so nebenbei bemerkt:
Netzwerkdrucker sind User und nicht PC spezifisch.
Daher wird das etwas aufwendiger, weil fast alle Varianten, die es erlauben remote auf einem PC etwas ausführen zu lassen, in einem eigenen Benutzerkontext laufen und damit nicht den Drucker des aktuell angemeldeten Users entfernen. Außerdem könnte es ja passieren, daß gar kein user angemeldet ist, was dann?
Es sei denn, Du meinst lokal installierte Drucker, aber die würde Dein Beispiel noch nicht einmal lokal löschen.
Netzwerkdrucker sind User und nicht PC spezifisch.
Daher wird das etwas aufwendiger, weil fast alle Varianten, die es erlauben remote auf einem PC etwas ausführen zu lassen, in einem eigenen Benutzerkontext laufen und damit nicht den Drucker des aktuell angemeldeten Users entfernen. Außerdem könnte es ja passieren, daß gar kein user angemeldet ist, was dann?
Es sei denn, Du meinst lokal installierte Drucker, aber die würde Dein Beispiel noch nicht einmal lokal löschen.
Doch das geht 100%
Wo steht in meinem Posting das das nicht geht? Ich habe nur geschrieben das es aufwendiger ist bei Netzwerkdruckern. Und was lokale versus Netzwerkdrucker angeht, ist Dir der Unterschied überhaupt bewusst?Aber mit WMI auf andere Rechner zuzugreifen und dort ein Programm starten ist jetzt nicht wirklich kompliziert. Vorausgesetzt der, der es startet, hat genügend Rechte.
Programm = "c:\windows\system32\wscript.exe Pfad_zu_VBSKRIPT"
Set system = GetObject("winmgmts:" & Zielcomputer & "\root\cimv2:win32_process")
status = system.create(Programm)
If Status = 0 then
wscript.echo "Programm gestartet!"
else
wscript.echo "Fehler beim Start: " & status
End If
Moin moin
Hier, schau dir mal diesen Codefetzen an:
Gruß L.
Hier, schau dir mal diesen Codefetzen an:
strComputer = "PCname"
strUser=""
strPassword=""
strDrucker =""
set wmi = CreateObject("WBemScripting.SWbemLocator")
Set cs = wmi.ConnectServer(strComputer,"root/cimv2",strUser,strPassword)
set colInstalledPrinters = cs.ExecQuery("Select * from Win32_Printer")
For Each objPrinter in colInstalledPrinters
tmp = tmp & objPrinter.DeviceID & vbcrlf
Next
msgbox tmp ' Drucker Liste ausgeben
Set colInstalledPrinters = objWMIService.ExecQuery("Select * from Win32_Printer WHERE DeviceID = '" & strDrucker & "'")
For Each objPrinter in colInstalledPrinters
objPrinter.Delete_ ' Drucker löschen
Next
Gruß L.
Den Begriff Netzlaufwerk sollte man schon kennen, wenn man im Netz was macht.
Auf Englisch auch Share genannt.
Ihr werdet doch wohl irgendeinen Fileserver haben und der freigegebene Ordner.
Dort das Skript ablegen und statt c:\temp\skript.vbs muß man \\SERVERNAME\SHARENAME\... verwenden (wie genau es heißt kommt darauf an, wo auf dem Server Du das Skript ablegst).
Wenn wir also davon ausgehen, daß der Server XXX heißt, die Freigabe YYY und das Skript test.vbs im Ordner ZZZ gespeichert ist würde es in meinem BeispielSkript so anfangen:
Programm = "c:\windows\system32\wscript.exe \\XXX\YYY\ZZZ\test.vbs"
Und falls man mögliche Leerzeichen in den Namen abfangen will:
Programm = "c:\windows\system32\wscript.exe ""\\XXX\YYY\ZZZ\test.vbs"""
Auf Englisch auch Share genannt.
Ihr werdet doch wohl irgendeinen Fileserver haben und der freigegebene Ordner.
Dort das Skript ablegen und statt c:\temp\skript.vbs muß man \\SERVERNAME\SHARENAME\... verwenden (wie genau es heißt kommt darauf an, wo auf dem Server Du das Skript ablegst).
Wenn wir also davon ausgehen, daß der Server XXX heißt, die Freigabe YYY und das Skript test.vbs im Ordner ZZZ gespeichert ist würde es in meinem BeispielSkript so anfangen:
Programm = "c:\windows\system32\wscript.exe \\XXX\YYY\ZZZ\test.vbs"
Und falls man mögliche Leerzeichen in den Namen abfangen will:
Programm = "c:\windows\system32\wscript.exe ""\\XXX\YYY\ZZZ\test.vbs"""
Was heist genau funktioniert nicht?
Wird das Skript nicht gestartet, gibt es Fehlermeldungen oder tut es nur nicht das was Du erwartest?
Ob es überhaupt funktioniert könnte man mit einem eingebauten net send Aufruf oder einem Logging in eine Datei feststellen.
Und wenn Du erwartest, daß Netzwerkdrucker gelöscht würden, verweise ich gern auf mein erstes Posting:
<quote>
Netzwerkdrucker sind User und nicht PC spezifisch.
Daher wird das etwas aufwendiger, weil fast alle Varianten, die es erlauben remote auf einem PC etwas ausführen zu lassen, in einem eigenen Benutzerkontext laufen und damit nicht den Drucker des aktuell angemeldeten Users entfernen. Außerdem könnte es ja passieren, daß gar kein User angemeldet ist, was dann?
</quote>
Wird das Skript nicht gestartet, gibt es Fehlermeldungen oder tut es nur nicht das was Du erwartest?
Ob es überhaupt funktioniert könnte man mit einem eingebauten net send Aufruf oder einem Logging in eine Datei feststellen.
Und wenn Du erwartest, daß Netzwerkdrucker gelöscht würden, verweise ich gern auf mein erstes Posting:
<quote>
Netzwerkdrucker sind User und nicht PC spezifisch.
Daher wird das etwas aufwendiger, weil fast alle Varianten, die es erlauben remote auf einem PC etwas ausführen zu lassen, in einem eigenen Benutzerkontext laufen und damit nicht den Drucker des aktuell angemeldeten Users entfernen. Außerdem könnte es ja passieren, daß gar kein User angemeldet ist, was dann?
</quote>