Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

VB-Script in VB-Script starten und Parameter übergeben

Frage Entwicklung VB for Applications

Mitglied: denkis

denkis (Level 1) - Jetzt verbinden

02.02.2015, aktualisiert 22:45 Uhr, 1329 Aufrufe, 7 Kommentare

Hallo liebe Scriptgemeinde,

ich muss mehrere Rechner für den Übergang in eine neue Domäne vorbereiten. Dafür sind drei wesentliche Schritte definiert worden:
1. lokale Drucker und verbundene Netzwerkdrucker löschen
2. lokal konfigurierte Netzwerk Druckerports löschen
3. Name des PCs ändern

Mit dem Buch "Windows Scripting lernen" und verschiedenen Forumsschnipseln habe ich für dieses Szenario ein Script zusammengebastelt. Schritt zwei und drei funktionieren auch reibungslos.
Für Schritt eins bediene ich mich bei den Windows Boardmitteln - den Printing_Admin_Scripts, die ich in meinem Script aufrufe. Im Scriptverlauf startet er zwar den "prnmngr.vbs", beachtet jedoch keine Schalter bzw. angehängte Parameter.

In der Commandline starte ich diese Scripte mit [cscript %Pfad%\prnmngr.vbs -xc -xo -x]
-xc trennt Netzwerkdrucker
-xo löscht lokal installierte Drucker
-x löscht den Rest bzw. alle Drucker

Scriptausschnitt
'Dieses Skript löscht alle Drucker einschl. lokaler Netzwerkports und Treiber, und ändert den Namen des PCs
'

'Berechtigungen setzen
'
If WScript.Arguments.length =0 Then
Set objShell = CreateObject("Shell.Application")
'Pass a bogus argument with leading blank space, say [ uac]
objShell.ShellExecute "wscript.exe", Chr(34) & _
WScript.ScriptFullName & Chr(34) & " uac", "", "runas", 1
Else

'Warnung
'

If MsgBox ("Dieses Script löscht alle Drucker einschließlich lokal konfigurierter Netzwerkdruckerports und zugehöriger Treiber, sofern möglich. Zudem ändert es den Namen des Gerätes unter Verwendung der Seriennummer. Dieser Vorgang lässt sich zwischendurch nicht beenden! Möchten Sie damit fortfahren?", _
vbYesNo + vbDefaultButton2 + vbExclamation, "Warnung") = vbNo Then
WScript.Quit
End If

'Variablen
'

Dim Path1, Path2, Path3, Path4, Path5, Path6, Path7, Path8
Dim ValueDevice, ValueStrich, ValueName
Dim WSHShell, ObjShell, wmiobj
Dim KeyPath
Dim objReg
Const HKEY_CLASSES_ROOT = &H80000000
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_USERS = &H80000003
Const HKEY_CURRENT_CONFIG = &H80000005
Const HKEY_DYN_DATA = &H80000006
Const COMPUTER = "."

'Objekteinführung
'

Set WSHShell = CreateObject("WScript.Shell")
Set ObjShell = WScript.CreateObject("WScript.Shell")
Set objReg = GetObject("winmgmts:\\" & COMPUTER & "\root\default:StdRegProv")
Set wmiobj = GetObject("winmgmts://localhost/root/cimv2:Win32_BIOS")

'Drucker und Treiber löschen
'

On Error Resume Next

ObjShell.Run "cscript C:\windows\system32\cscript.exe C:\Windows\System32\Printing_Admin_Scripts\de-DE\prnmngr.vbs -xc -xo -x"
ObjShell.Run "cscript C:\Windows\System32\Printing_Admin_Scripts\de-DE\prndrvr.vbs -x"

'Registry Eintrag löschen
'
....

Scriptausschnitt Ende


Wie bekomme ich es hin, dass die Parameter -x -xc und -xo berücksichtigt werden?

denkis
Mitglied: emeriks
02.02.2015 um 21:37 Uhr
Hi,
Code Tag benutzen!

Ich glaube, die x-Parameter schließen sich gegenseitig aus. Man kann immer nur einen von denen angeben. Bzw. nur "-x" löscht sowie so alle Drucker. "xc" und "xo" ist dann jeweils eine Einschränkung.
Also

01.
ObjShell.Run "cscript C:\windows\system32\cscript.exe C:\Windows\System32\Printing_Admin_Scripts\de-DE\prnmngr.vbs -x" 
02.
ObjShell.Run "cscript C:\Windows\System32\Printing_Admin_Scripts\de-DE\prndrvr.vbs -x"
E.
Bitte warten ..
Mitglied: denkis
02.02.2015 um 21:49 Uhr
Hallo E.

Danke. Habe ich sofort probiert, bzw. in den letzten Tagen auch schon. Funktioniert leider nicht.
Script wird gestartet aber Parameter bleiben unberücksichtigt.

denkis
Bitte warten ..
Mitglied: 114757
LÖSUNG 02.02.2015, aktualisiert um 22:45 Uhr
ObjShell.Run "cscript C:\windows\system32\cscript.exe
Das ist aber doppelt gemoppelt mit dem cscript ... und ein paar Parameter fehlen.
01.
ObjShell.Run "cscript.exe ""C:\Windows\System32\Printing_Admin_Scripts\de-DE\prnmngr.vbs"" -xc -xo -x",0,true 
02.
ObjShell.Run "cscript.exe ""C:\Windows\System32\Printing_Admin_Scripts\de-DE\prndrvr.vbs"" -x",0,true
Gruß jodel32
Bitte warten ..
Mitglied: denkis
02.02.2015 um 22:17 Uhr
vielen Dank @jodel32.
leider werden auch hier die Parameter nicht berücksichtigt, egal ob ich nur Einen oder alle Drei setze. Ich bin auch schon ratlos, weil ich schon einiges probiert habe.
Gruß
denkis
Bitte warten ..
Mitglied: 114757
02.02.2015, aktualisiert um 22:26 Uhr
Zitat von denkis:

vielen Dank @jodel32.
leider werden auch hier die Parameter nicht berücksichtigt, egal ob ich nur Einen oder alle Drei setze. Ich bin auch schon
ratlos, weil ich schon einiges probiert habe.
geht hier einwandfrei ... hatte oben noch die Parameter für die Run-Funktion ergänzt damit für jeden Befehl gewartet wird bis er abgeschlossen ist, die 0 besagt unsichtbar ausführen.
Bitte warten ..
Mitglied: denkis
02.02.2015 um 22:47 Uhr
Hallo jodel32,

mit Deinen Ergänzungen hat es jetzt funktioniert. Ich habe das Ergebnis zweimal infolge repliziert.
Vielen Dank.

denkis
Bitte warten ..
Mitglied: emeriks
03.02.2015 um 08:22 Uhr
Ich habe das Ergebnis zweimal infolge repliziert.
Wohin?
Du meinst sicher "reproduziert".

E.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Anführungszeichen aus übergebenen Parametern entfernen
gelöst Frage von RaidManBatch & Shell2 Kommentare

Hallo Kenner und Könner, bin gerade dabei eine Batch zu basteln die Textdateien (detail infos) ändern soll dazu wollte ...

C und C++
Parameter mit argv übergeben in C-Programm
gelöst Frage von djevil-adC und C++12 Kommentare

Hallo, ich mochte einen Parameter an eine Variable übergeben: Wenn ich printf(argv 1 ); aufrufe funktioniert es, wenn ich aber ip.ki.wVk ...

Batch & Shell
Aus Batch mit Adminrechten ein VB Script starten - klappt nicht
Frage von m.fesslerBatch & Shell14 Kommentare

Hallo, möchte aus einer Batch welche mit Adminrechten gestartet wird ein VB Script starten. Wenn die Batch mit normalen ...

Windows 7
Programme starten mit Parametern
gelöst Frage von b.poppeWindows 74 Kommentare

Hallo und einen recht schönen Abend. Ich habe folgende Aufgabe umzusetzen: Ich muss ein Programm unter bestimmten Rahmenbedingungen starten. ...

Neue Wissensbeiträge
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 23 StundenApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 1 TagWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 1 TagWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 1 TagInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
gelöst Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server18 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement16 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...