Helmut: Batch über Hyperlink starten

Guten Tag !
bin heute das erste Mal zum posten hier.
Geholfen habt Ihr mir über vorhandene Artikel schon öfters.
aber zu meiner jetzigen Frage hab ich leider nichts gefunden.

ich möchte eine einfache Batchdatei über einen Hyperlink starten, und schaffe es nicht, die notwendigen Parameter zu übergeben.

hier meine Batchdatei:
@echo off
echo userdn %1
echo passwort %2
dsmod user "%1" -pwd %2 -mustchpwd yes -disabled no
echo Zum beenden:
pause

wenn ich das über cmd mit Parametern aufrufe, klappt das.
aber die Syntax über den Hyperlink bekomme ich nicht zusammen.

es sollte doch mit <a href="file://...? und dann den Variablen irgendwie funktionieren, aber die beiden Variablen werden nicht übergeben (das Script wird schon aufgerufen).
hab jetzt schon alles mögliche hinter dem ? ausprobiert.

hat jemand Rat für mich ?
Danke

  1. Hellihello Helmut,

    hier meine Batchdatei:
    @echo off
    echo userdn %1
    echo passwort %2
    dsmod user "%1" -pwd %2 -mustchpwd yes -disabled no
    echo Zum beenden:
    pause

    wenn ich das über cmd mit Parametern aufrufe, klappt das.
    aber die Syntax über den Hyperlink bekomme ich nicht zusammen.

    es sollte doch mit <a href="file://...? und dann den Variablen irgendwie funktionieren, aber die beiden Variablen werden nicht übergeben (das Script wird schon aufgerufen).

    Echt, die Batchdatei wird ausgeführt? Ich hatte das irgendwann mal nur über ein eigenes Protokoll hinbekommen. Versuche doch mal %20 fürs Blankzeichen oder gib dir %0 aus, dass ist dann vielleicht mehr als nur der name der Datei.

    Dank und Gruß,

    frankx

    --
    tryin to multitain  - Globus = Planet != Welt
  2. hallo,

    hier meine Batchdatei:
    @echo off
    echo userdn %1
    echo passwort %2
    dsmod user "%1" -pwd %2 -mustchpwd yes -disabled no
    echo Zum beenden:
    pause

    Was willst du damit erreichen? WEnn ich die einfach nur kopiere und bei mir ausprobiere, erhalte ich folgendes:
    userdn
    passwort
    Der Befehl "dsmod" ist entweder falsch geschrieben oder
    konnte nicht gefunden werden.
    Zum beenden:
    Drücken Sie eine beliebige Taste . . .
    (Na gut, ich kenne halt deine Variablen nicht)

    es sollte doch mit <a href="file://...? und dann den Variablen irgendwie funktionieren

    Das "sollte" eher eine Abfrage ergeben, ob die Datei heruntergeladen oder geöffnet werden soll.

    Du kannst solche Dateien ausführen, wenn du sie über deinen lokalen Server als CGI-Programme abrufst, dann "sollte" das funktionieren.

    Grüße aus Berlin

    Christoph S.

    --
    Visitenkarte
    ss:| zu:) ls:& fo:) va:) sh:| rl:|
    1. Hallo Christoph,

      Was willst du damit erreichen? WEnn ich die einfach nur kopiere und bei mir ausprobiere, erhalte ich folgendes:

      warum sollen das aufgerufene Dienstprogramm "bei dir"  vorhanden sein?

      Der Befehl "dsmod" ist entweder falsch geschrieben oder
      konnte nicht gefunden werden.

      Kein Windows 2003 Server? Also Christoph, das ist doch das mindeste ...

      es sollte doch mit <a href="file://...? und dann den Variablen irgendwie funktionieren

      Das "sollte" eher eine Abfrage ergeben, ob die Datei heruntergeladen oder geöffnet werden soll.

      ... und wenn man sie öffnet - und für "Öffnen" wäre immer noch das "Ausführen" von Batchdateien eingetragen, dann wird sie halt ausgeführt. Wo ist das Problem, das Du zu erkennen glaubst?

      Freundliche Grüße

      Vinzenz

      1. hallo Vinzenz,

        Der Befehl "dsmod" ist entweder falsch geschrieben oder
        konnte nicht gefunden werden.
        Kein Windows 2003 Server?

        Wieso denn das? Warum sollte ich? Auch hat Helmut nichts von Win2003Server geschrieben.

        es sollte doch mit <a href="file://...? und dann den Variablen irgendwie funktionieren
        Das "sollte" eher eine Abfrage ergeben, ob die Datei heruntergeladen oder geöffnet werden soll.
        ... und wenn man sie öffnet - und für "Öffnen" wäre immer noch das "Ausführen" von Batchdateien eingetragen, dann wird sie halt ausgeführt. Wo ist das Problem, das Du zu erkennen glaubst?

        Es ist lediglich eine Vermutung, da im OP nicht so benannt - ich vermute, er möchte diese Abfrage nicht haben, sondern seine Batchdatei gleich ausführen lassen. Das ist zum Beispiel über einen lokalen Server als CGI-Programm möglich.

        Grüße aus Berlin

        Christoph S.

        --
        Visitenkarte
        ss:| zu:) ls:& fo:) va:) sh:| rl:|
        1. Hallo Christoph,

          Du gehörst hier sozusagen zum Inventar. Helmut erwähnt, dass es seine erste
          Frage ist, die er hier stellt. Möchtest Du eine solche Antwort auf Deine erste
          Frage in Forum abc oder Board xyz haben? Ich nicht!

          Der Befehl "dsmod" ist entweder falsch geschrieben oder
          konnte nicht gefunden werden.
          Kein Windows 2003 Server?

          Wieso denn das? Warum sollte ich? Auch hat Helmut nichts von Win2003Server geschrieben.

          war auch ziemlich überflüssig, da es nicht zur Lösung des Problems beiträgt.
          Helmut schreibt, dass die Batchdatei, an der Kommandozeile aufgerufen, wie
          gewünscht funktioniert. Es ist daher müßig, sich daran aufzuhalten, dass Du
          seine Batchdatei nicht nachvollziehen kannst. Mit etwas Erfahrung ist es kein
          Problem, den Befehlsaufruf einem Serverdienstprogramm zuzuordnen?

          Es ist lediglich eine Vermutung, da im OP nicht so benannt - ich vermute, er möchte diese Abfrage nicht haben, sondern seine Batchdatei gleich ausführen lassen.

          Und zwar mit den übergebenen Parametern, die vermutlich aus den Eingabefeldern
          eines Formulars stammen.

          Das ist zum Beispiel über einen lokalen Server als CGI-Programm möglich.

          Den man dafür nicht bemühen müsste, insbesondere um sich daraus resultierende
          Sicherheitsprobleme zu ersparen. Eine HTA oder eine kleine GUI die paar
          Zeilen Code in VB-Script, JScript, Perl oder Python, die die Batchdatei samt
          notwendigen Parameter aufruft, täte es auch :-)

          Freundliche Grüße

          Vinzenz

  3. Hallo Helmut,

    ich möchte eine einfache Batchdatei über einen Hyperlink starten, und schaffe es nicht, die notwendigen Parameter zu übergeben.

    hier meine Batchdatei:
    @echo off
    echo userdn %1
    echo passwort %2
    dsmod user "%1" -pwd %2 -mustchpwd yes -disabled no
    echo Zum beenden:
    pause

    ich persönlich würde Dir dazu raten, das über eine HTA zu lösen und die
    Batchdatei über JScript oder VB-Script aufzurufen - oder in diesem Zusammenhang
    die Änderung im Active Directory direkt mit der gleichen Programmiersprache und
    dem Windows-Scripting-Host durchzuführen.

    Mir ist nicht bekannt, ob man einer Batchdatei bei "direktem" Aufruf aus HTML
    heraus Parameter übergeben kann. Natürlich könntest Du die Aufgabe auch
    Deinem IIS übergeben, aber mein Eindruck ist der, dass Du dieses Skript für schnelle
    und bequeme Passwortzurücksetzungen direkt vom Server aus nutzen willst, ohne gleich
    Benutzerverwaltung aufzurufen und Dich mühsam durchzuklicken.

    Folgendes Archivposting (Vorsicht, lang!) zeigt Dir, wie Du mit JScript eine
    Kommandozeile öffnen und einen Befehl absetzen kannst (dort FINDSTR, nutze
    dafür die  Browsersuche). Das solltest Du recht schnell für Deine Zwecke
    umbauen können. Wie dort empfohlen: mach das mit einer HTA.

    Freundliche Grüße

    Vinzenz

    1. Hallo Helmut,

      ich möchte eine einfache Batchdatei über einen Hyperlink starten, und schaffe es nicht, die notwendigen Parameter zu übergeben.

      hier meine Batchdatei:
      @echo off
      echo userdn %1
      echo passwort %2
      dsmod user "%1" -pwd %2 -mustchpwd yes -disabled no
      echo Zum beenden:
      pause

      ich persönlich würde Dir dazu raten, das über eine HTA zu lösen und die
      Batchdatei über JScript oder VB-Script aufzurufen - oder in diesem Zusammenhang
      die Änderung im Active Directory direkt mit der gleichen Programmiersprache und
      dem Windows-Scripting-Host durchzuführen.

      Mir ist nicht bekannt, ob man einer Batchdatei bei "direktem" Aufruf aus HTML
      heraus Parameter übergeben kann. Natürlich könntest Du die Aufgabe auch
      Deinem IIS übergeben, aber mein Eindruck ist der, dass Du dieses Skript für schnelle
      und bequeme Passwortzurücksetzungen direkt vom Server aus nutzen willst, ohne gleich
      Benutzerverwaltung aufzurufen und Dich mühsam durchzuklicken.

      Folgendes Archivposting (Vorsicht, lang!) zeigt Dir, wie Du mit JScript eine
      Kommandozeile öffnen und einen Befehl absetzen kannst (dort FINDSTR, nutze
      dafür die  Browsersuche). Das solltest Du recht schnell für Deine Zwecke
      umbauen können. Wie dort empfohlen: mach das mit einer HTA.

      Freundliche Grüße

      Vinzenz

      Hallo !
      erstmal Danke für Eure Antworten.
      Aber irgendwie hab ich den Dreh noch nicht raus.
      Ich kann also per Hyperlink keine Parameter an eine Batchdatei übergeben.
      Jetzt hab ich versucht, die Parameter an ein VB-Script zu übergeben - aber das funktioniert auch nicht. Das Script wird gestartet, aber die Parameter werden nicht übergeben. Syntax hab ich gleich gelassen mit ...script.vbs? und dann den Parametern.
      Oder hab ich was noch gar nicht verstanden?
      oder ist es generell so, dass ich mit ?... nur Parameter an html-Seiten übergeben kann ?
      Gruß Helmut

      1. Moin Moin!

        Hallo !
        erstmal Danke für Eure Antworten.
        Aber irgendwie hab ich den Dreh noch nicht raus.
        Ich kann also per Hyperlink keine Parameter an eine Batchdatei übergeben.
        Jetzt hab ich versucht, die Parameter an ein VB-Script zu übergeben - aber das funktioniert auch nicht. Das Script wird gestartet, aber die Parameter werden nicht übergeben. Syntax hab ich gleich gelassen mit ...script.vbs? und dann den Parametern.

        Der Aufrufmechanismus bleibt der selbe, auch wenn Du etwas anderes aufrufst.

        Oder hab ich was noch gar nicht verstanden?

        So ist es. Du sollst den Browser vergessen und stattdessen per HTA (HTML + Javascript) arbeiten, dort kannst Du mit speziellen, nur im HTA-Modus verfügbaren Javascript-Objekten, externe Programme aufrufen. (HTA ist übrigens der Internet Explorer, ohne alle IE-typischen Bedienelemente und mit den erwähnten zusätzlichen Objekten.)

        oder ist es generell so, dass ich mit ?... nur Parameter an html-Seiten übergeben kann ?

        ? funktioniert uneingeschränkt nur für http:// und https://, sehr eingeschränkt auch für ftp:// und mailto://. In file:// sollte ? überhaupt keine Wirkung haben.

        Jetzt mal die große Frage: Warum machst Du Dir das leben so extrem schwer, eine Batch-Datei aus dem Browser aufrufen zu wollen? Leg doch einfach eine Verknüpfung auf die Batch-Datei an, da kannst Du auch Parameter mitgeben.

        Alexander

        --
        Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".