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

VBS Befehl als string zusammenbasteln und dann per run ausführen

Frage Entwicklung VB for Applications

Mitglied: Scroller

Scroller (Level 1) - Jetzt verbinden

14.06.2011 um 15:49 Uhr, 7312 Aufrufe, 9 Kommentare

Hi,

ich will cacls per vbscript - run mehtode staten.
Irgendas geht schief. Gibts in vbs nicht wie in Powershell die Möglichkeit einen Befehl als String zusammensetzen und ihn dann auszuführne?
(wie invoke-expression in Powershell.)


Hier mein code vieleicht findet ja jemand meinen Fehler:

set fso = CreateObject("Scripting.FileSystemObject")
set onet = CreateObject("Wscript.Network")
set WshShell = Wscript.CreateObject("Wscript.Shell")
Set objShell = CreateObject("Shell.Application")
set oSA = CreateObject("Shell.Application")


sTMP = WshShell.ExpandEnvironmentStrings("%temp%") & "\"



tp = stmp & "cacls.exe"
sDesktop = WshShell.SpecialFolders("Desktop") & "\"



WshShell.Run "cmd /c " & tp & " " & sDesktop & " /E /P ad\" & oNet.Username & ":R",3,true


Danke SC!
Mitglied: TsukiSan
14.06.2011 um 16:01 Uhr
Hallo Scroller,

fasse bitte deine Schnippets in die richtige Formatierung, dann liest es sich einfacher!

Eventuell liegt ein Schreibfehler bei dir vor?
Meintest du eventuell
tp = stmp & "calc.exe" ?

Gruss
Tsuki
Bitte warten ..
Mitglied: Clijsters
14.06.2011 um 17:17 Uhr
Er möchte Berechtigungen setzen, (hoffe ich), von daher gehe ich davon aus er meinte CACLS,

welche sich bei mir aber nicht im TEMP-Ordner sondern unter %SYSTEMROOT%\System32 befindet...

Desweiteren fehlen meiner Meinung nach Leerzeichen in der Befehlszeile.
UND: Wenn Leerzeichen in den Pfadangaben verwendet werden, (%TEMP% = "C:\dokumente und einstellungen\user\temp" oder wie auch immer)
nicht die Anführungszeichen vergessen

Ich bevorzuge was das angeht eher ... & Chr(34) & ... anstelle von Dingen, wie """" oder " """

Gruß
Dominique
Bitte warten ..
Mitglied: Scroller
15.06.2011 um 06:11 Uhr
Hallo Zusammen,

danke für eure Antworten.
Hier noch ergänzedne Infos :

An einem Thin client soll der Desktop für den User schreibgeschützt sein.
Dazu lade ich cacls.exe vom netz auf das Ding runter (da das abgespeckte windows auf dem Gerät die datei nicht beinhaltet)

Diese wird nach %temp% kopiert von da dann gestartet.

Beim Start Poppt das Fenster kurz auf und schliesst sich wieder. Das wars dann

Danke
SC
Bitte warten ..
Mitglied: Biber
15.06.2011 um 06:20 Uhr
Moin Scroller,

das empfohlene Vorgehen beim Testen von Schnipseln ist das Ausführen vom CMD-prompt aus.
Nur so kannst du auch die Fehlermeldungen lesen und gegebenfalls hier weitergeben.

Bitte starte den Schnipsel von der Eingabeaufforderung aus und erzähl uns dann, was du siehst.

Grüße
Biber
Bitte warten ..
Mitglied: AndreasHoster
15.06.2011 um 10:12 Uhr
Und als weiterer Tipp:
Nie davon ausgehen, daß der Computer macht was er soll.
Will sagen:
Nachkontrollieren ob Dein String richtig zusammengebaut ist könnte helfen:
01.
sExec="cmd /c " & tp & " " & sDesktop & " /E /P ad\" & oNet.Username & ":R" 
02.
wscript.echo sExec 
03.
WshShell.Run sExec,3,true
Dann siehst Du nämlich, was Du tatsächlich versuchst auszuführen und das könnte man dann auch mal direkt in einer CMD ausprobieren.
Dann sieht man auch, daß als Ergebnis dies kommt:
01.
cmd /c c:\temp\cacls.exe C:\Dokumente und Einstellungen\xxx\Desktop\ /E /P ad\xxx:R
Und da sieht man doch innerhalb von ca. 0,5 Sekunden, wo das Problem ist, oder nicht?

Wie sagte doch Prof. Tanenbaum: Ein guter Programmierer braucht nur seinen Kopf und ein printf (bei vbs halt wscript.echo) zum Debuggen.
Bitte warten ..
Mitglied: Scroller
15.06.2011 um 14:47 Uhr
Hallo,

Danke für Eure Antworten alle,

Es war ein Leerzeichen Problem beim Desktop. Die Lösung war:

sDesktop = """ & WshShell.SpecialFolders("Desktop") & """

Gruss
SC
Bitte warten ..
Mitglied: Clijsters
15.06.2011 um 18:48 Uhr
Da fühlt man sich ignoriert...
Bitte warten ..
Mitglied: Scroller
15.06.2011 um 20:43 Uhr
Wieso fühlst Du dich ignoriert??
Hab mich doch bei allen bedankt

Gruss
SC
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Datenbanken
gelöst SQL - mehrere UPDATE-Anweisungen in einem String per vbs (4)

Frage von goodbytes zum Thema Datenbanken ...

Batch & Shell
Eventlog Druckjobs mit VBS auslesen (2)

Frage von joni2000de zum Thema Batch & Shell ...

VB for Applications
VBS Script zum versenden mehrerer Verknüpfungen zu Dateien per Lotus Notes

Frage von Sentinel87 zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...