Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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, 4122 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
gelöst Base64 Decode (Batch,VBS) (26)

Frage von clragon zum Thema Batch & Shell ...

PHP
gelöst HTML Dropdownmenü auslesen und in PHP als Variable übergeben (35)

Frage von ITFlori zum Thema PHP ...

Batch & Shell
gelöst Powershell invoke Command Variablen übergeben (4)

Frage von H41mSh1C0R zum Thema Batch & Shell ...

Neue Wissensbeiträge
Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(8)

Information von thomasreischer zum Thema Windows 10 ...

Microsoft

Die neuen RSAT-Tools für Win10 1709 sind da

(2)

Information von DerWoWusste zum Thema Microsoft ...

Heiß diskutierte Inhalte
Router & Routing
Allnet - VDSL2 Modem - SFP (mini-GBIC) (20)

Frage von Dobby zum Thema Router & Routing ...

Monitoring
Netzwerk-Monitoring Software (18)

Frage von Ghost108 zum Thema Monitoring ...

Windows 10
Seekrank bei Windows 10 (17)

Frage von zauberer123 zum Thema Windows 10 ...

Windows Server
gelöst Kopiervorgang schlägt fehl, weil Datei- und Ordnername zu lang sind (14)

Frage von Schroedi zum Thema Windows Server ...