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

Variablen von Batch zu VBS übergeben

Frage Entwicklung Batch & Shell

Mitglied: ciejay

ciejay (Level 1) - Jetzt verbinden

15.01.2014, aktualisiert 10:48 Uhr, 4262 Aufrufe, 10 Kommentare, 2 Danke

Hallo liebe Com,

ich versuche mich gerade in der Batch und vbs Programmierung und bin daher sozusagen noch Anfänger.

Ich versuche nun mit einer Batch 2 Variable mittels Eingabe an eine vbs datei weiter zu geben

Ich habe bereits folgendes versucht.


test.bat
@echo off

winput "set name=$input" "Please enter name:"
winput "set password=$input" "Enter password:" /pass
::winput ist ein zustätzliches Tool um die Passworteingabe zu verbergen

start test.vbs name password
:: ich starte meine vbs und versuche dann die variable name und password an die vbs datei zu übergeben


Die erste Variable (also "name") wird an die vbs Datei übergeben jedoch die zweite nicht. Was mache ich falsch?
Ich hoffe ihr wisst Rat

Grüße
ciejay


PS: Ich benutze Win7 und Win8

Mitglied: colinardo
LÖSUNG 15.01.2014, aktualisiert um 10:54 Uhr
Hallo ciejay, Willkommen im Forum!
das machst du folgendermaßen. In deiner VBS-Datei kannst du so Kommandozeilenparameter abfragen:
01.
parameter1 = WScript.Arguments.Item(0) 
02.
parameter2 = WScript.Arguments.Item(1) 
03.
wscript.echo "Der Name lautet:" & parameter1 
04.
wscript.echo "Das Passwort lautet: " & parameter2
dein VBS-Script rufst du dann so aus deiner Batchdatei auf:
01.
wscript.exe //NOLOGO //B test.vbs "%name%" "%password%"
Die erste Variable (also "name") wird an die vbs Datei übergeben jedoch die zweite nicht. Was mache ich falsch?
Du meintest wohl eher (Anführungszeichen beachten; der Name und das Passwort könnten ja Leerzeichen beinhalten):
start test.vbs "%name%" "%password%"
Grüße Uwe
Bitte warten ..
Mitglied: ciejay
15.01.2014, aktualisiert um 10:50 Uhr
Hallo Uwe,

SUPER! hat funktioniert. Dickes danke.

Noch eine frage. Was bedeutet //NOLOGO

Gruß ciejay
Bitte warten ..
Mitglied: colinardo
LÖSUNG 15.01.2014, aktualisiert um 10:55 Uhr
Zitat von ciejay:
Noch eine frage. Was bedeutet NOLOGO
--------------------------- 
Windows Script Host 
--------------------------- 
Syntax: WScript Skriptname.Erweiterung [Option...] [Argumente...] 
 
Optionen: 
 //B		Batch-Modus: Zeigt keine Skriptfehler und Aufforderungen an 
 //D		Aktives Debuggen aktivieren 
 //E:engine	Modul zum Ausführen des Skripts verwenden 
 //H:CScript	Ändert den Standardskripthost auf CScript.exe um 
 //H:WScript	Ändert den Standardskripthost auf WScript.exe um (Standard) 
 //I		Interaktiver Modus (Standard; Gegenteil von //B) 
 //Job:xxxx	Führt einen WSF-Auftrag aus 
 //Logo		Zeigt das Logo an (Standard) 
 //Nologo	Zeigt kein Logo an: Bei Ausführung wird kein Banner angezeigt 
 //S		Speichert die aktuellen Befehlszeilenoptionen für diesen Benutzer 
 //T:nn		Timeout in Sekunden:  Maximale Zeit, die ein Skript laufen darf 
 //X		Führt das Skript im Debugger aus
für den Batchmodus könntest du noch den Parameter
B mit angeben

Grüße Uwe
Bitte warten ..
Mitglied: ciejay
15.01.2014 um 11:54 Uhr
Hallo Uwe,

habe doch noch ein Problem.
Ich schilder mal was das Programm können soll zum Verständnis.

Per vbs wurde durch die Eingabe von Benutzername und Passwort ein Netzlaufwerk automatisch verbunden.
Da aber weder in Batch noch vbs das Passwort verdeckt eingegeben werden kann (um vor neugierigen Blicken zu schützen) z.B. mit *Sternchen* habe ich nach einen weg gesucht um das zu erreichen. Somit bin ich zu Winput gekommen.

Die Batch sieht nun Dank deiner Hilfe so aus

test.bat
@echo

winput "set Name=$input" "Please enter name:"
winput "set password=$input" "Enter password:" /pass

wscript.exe //NOLOGO test.vbs "%Name%" "%password%"



test.vbs
Dim objNetwork
Set objNetwork = WScript.CreateObject("WScript.Network")

Name = WScript.Arguments.Item(0)
password = WScript.Arguments.Item(1)

Set fs = CreateObject("Scripting.FileSystemObject")

strLocalDrive = "Pfad Buchstabe"
If Not fs.DriveExists(strLocalDrive) Then
strRemoteShare = "Netzlaufwerkpfad"
objNetwork.MapNetworkDrive strLocalDrive, strRemoteShare, False, Name, password
End If

Set fs = Nothing


Sorry für die Formatierung. Ich wusste jetzt nicht genau wie man das ganze mit Nummerierung einfügt

Auf jedenfall wird das Laufwerk nach dem Ausführen angezeigt aber ich habe noch kein Zugriff drauf da die Parameter anscheinend nicht richtig mit Übergeben werden.
Evtl. hast du/ihr ja auvh eine einfachere Lösung

Gruß ciejay
Bitte warten ..
Mitglied: colinardo
15.01.2014, aktualisiert um 12:33 Uhr
mach das ganze doch direkt mit Powershell:
01.
$cred = Get-Credential -Message "Bitte Benutzernamen und Kennwort für das Netzlaufwerk eingeben" 
02.
if ($cred -ne $null){ 
03.
    $user = $cred.GetNetworkCredential().UserName 
04.
    $pass = $cred.GetNetworkCredential().Password 
05.
    net use z: "\\server\share" /user:$user $pass 
06.
}
dann hast du alles in einem Das zeigt dir den Standard-Windows Passwort-Dialog und mappt danach mit den Daten das Laufwerk.

Grüße Uwe

ps.s zur Code-Formatierung siehe: Code Formatierungen
Bitte warten ..
Mitglied: ciejay
15.01.2014, aktualisiert um 12:46 Uhr
Sieht auf den ersten blick um einiges Übersichtlicher aus.
Aber wie erstelle ich am schnellste so eine Powershell datei? Um eine Batch oder vbs zu erstellen habe ich jeweils eine .txt erstellt und die endung dann einfach in .bat oder .vbs geändert. Wie ist das in Powershell?
Bitte warten ..
Mitglied: colinardo
15.01.2014, aktualisiert um 13:13 Uhr
Anleitung: Wie starte ich Powershell-Scripte
  • Zuerst speicherst man den Code in einer Textdatei mit der Endung .ps1.
  • Wenn man zum ersten mal Powershell-Scripte ausführt, musst man einmalig vorher noch das Ausführen von Scripten im User-Account freischalten. Dazu öffnet man eine Powershell-Konsole (powershell.exe) und gibt dort den Befehl Set-ExecutionPolicy RemoteSigned -Force ein. Noch ein Hinweis für 64-Bit-Systeme: Hier sollte sowohl für die 32bit und 64Bit Variante der Powershell die Policy in einer Admin-Konsole gesetzt werden: Set-ExecutionPolicy RemoteSigned -Force; start-job { Set-ExecutionPolicy RemoteSigned -Force } -RunAs32
  • Jetzt kann das Powershell-Script in der Konsole mit Eingabe des Pfades der Scriptdatei, oder mit einem Rechtsklick auf die Script-Datei :Mit Powershell ausführen gestartet werden.
Bitte warten ..
Mitglied: ciejay
15.01.2014 um 13:12 Uhr
Mhm das is dann auch nicht die Optimale Lösung wenn man Powershell und das Script erst über die Konsole aktivieren muss. Vorallem braucht man dann auch Adminrechte. Wenn man keine hat wäre das somit schlecht.
Bitte warten ..
Mitglied: colinardo
LÖSUNG 15.01.2014, aktualisiert um 13:56 Uhr
Zitat von ciejay:
Mhm das is dann auch nicht die Optimale Lösung wenn man Powershell und das Script erst über die Konsole aktivieren muss.
Vorallem braucht man dann auch Adminrechte. Wenn man keine hat wäre das somit schlecht.
mit einem Set-ExecutionPolicy RemoteSigned -scope CurrentUser benötigt man keine Admin-Rechte.
Die Policy kann man ja mit einer GPO auf den Rechnern Global entsprechend konfigurieren...
Bitte warten ..
Mitglied: ciejay
15.01.2014 um 13:55 Uhr
Danke für die Antworten
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Variable aus VBS in Batch einlesen
gelöst Frage von racer1601Batch & Shell4 Kommentare

Hallo ich habe das Problem das ich die Variable "Ordner" aus einem VBS Script nicht in meine Batch bekomme. ...

Batch & Shell
Variable in neues Batch Script übergeben
gelöst Frage von alex89Batch & Shell3 Kommentare

Hallo, ich habe mir ein Batch Script erstellt um einige adminrelevante Tools und Abfragen aus einem Menü heraus zu ...

Batch & Shell
Vbs - Variable als Parameter an externes Programm übergeben und Rückgabewert in Variable schreiben
gelöst Frage von goodbytesBatch & Shell4 Kommentare

Hallo, ich habe ein vbs-Script, welches alle Dateien eines Verzeichnisse in ein Array schreibt. Mittels eines kleinen Tools kann ...

Batch & Shell
Batch: Parameter in einer For Schleife an eine Variable übergeben
gelöst Frage von BatchAnfaenger91Batch & Shell2 Kommentare

Hallo Liebe Leute, nun bin ich fast am Ende und bleibe trotzdem an Parameterübergabe hängen. Hier ist mein bisheriger ...

Neue Wissensbeiträge
Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 2 StundenInternet2 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 6 StundenDSL, VDSL1 Kommentar

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Windows 10

Microsoft bestätigt DMA-Policy-Problem in Win10 v1709

Information von DerWoWusste vor 6 StundenWindows 10

Wer sein Gerät mit der DMA-Policy absichert, bekommt evtl. Hardwareprobleme in v1709 von Win10. Warum? Weil v1709 endlich "richtig" ...

Verschlüsselung & Zertifikate

Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows

Information von ticuta1 vor 10 StundenVerschlüsselung & Zertifikate

Interessant Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows SSH-Kommando in CMD.exe und PowerShell

Heiß diskutierte Inhalte
Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement21 Kommentare

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

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

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

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 ...

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 ...