Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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, 3398 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst FOR Loop Variablen ( Batch ) (2)

Frage von clragon zum Thema Batch & Shell ...

Entwicklung
gelöst Mit Batch,VBS,Powershell Windows einrichten (1)

Frage von Justin98 zum Thema Entwicklung ...

Batch & Shell
gelöst Teilstring nach Splitten in Variablen schreiben vbs (2)

Frage von goodbytes zum Thema Batch & Shell ...

Batch & Shell
gelöst Variablen Zusammenbauen 2.0 ( Batch ) (6)

Frage von clragon zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...