5 Replies Latest reply on Dec 6, 2016 7:48 AM by DSMForum

    DSM skripting - custom tools

    DSMForum Master
      Hi community,

      ich bin ganz frisch bei Netinstall/DSM und hätte ein paar Fragen an euch:
      1. Ich würde gerne eine neue benutzerdefinierte Aufgabe erstellen, welche es mir ermöglicht auf einem gemanageten Computer eine cmd konsole mit admin rechten zu öffnen. Leider bin ich der skriptsprache nicht sehr mächtig... wie wird diese Art von Skript/Argumente eigentlich bezeichnet?
      /v:%CurrentComputer.Object.Name%
      Dieser code wird z. B. verwendet um eine RDP session zu starten
      2. wo finde ich tutorials dazu bzw. bücher?

      Danke euch und schönes Wochenende
        • 1. Re: DSM skripting - custom tools
          derniwi Master
          Hallo Namenloser,

          herzlich Willkommen hier im Forum.

          Nochmal kurz von vorne:
          Du möchtest, dass auf einem gemanagten Computer ein DOS-Box mit administrativen Rechten geöffnet wird, also auf dem Bildschirm eines dort angemeldeten Benutzers?

          Oder möchtest Du von einem Rechner aus der DSMC heraus eine DOS-Box öffnen, damit die dort ausgeführten Befehle auf dem Rechner des gemanagten Computers ausgeführt werden?

          Gruß
          Nils
          • 2. Re: DSM skripting - custom tools
            DSMForum Master
            Hi derniwi,

            danke erstmal für deine Antwort und sorry für meinen späten reply...
            das zweitere, also ich möchte gerne, dass der user davon nichts mitbekommt. Muss ich dann die Befehle anders schreiben, also, dass sie auf dem remote PC ausgeführt werden, oder verhält es sich tatsächlich so, wie wenn die cmd console auf dem remote PC geöffnet wäre?
            Leider weiß ich immer noch nicht welche Art von Code das nun genau ist :/
            /v:%CurrentComputer.Object.Name%

            nennt man das einfach windows scripting oder was ist die genaue Bezeichnung?

            Danke dir nochmals!
            • 3. Re: DSM skripting - custom tools
              derniwi Master
              Hallo,

              naja, wie nennt man das? Windows-Batch, Shell-Programmierung (nicht PowerShell)... oder so ähnlich. Ich weiß gar nicht, wieviele Begriffe es für die Kommandozeile gibt.

              Dein Ziel geht so leider nicht, da ein cmd.exe zuerst einmal nur auf dem Rechner ausgeführt wird, von dem Du es startest. Aber Microsoft hat Tools dafür (irgendwann mal aufgekauft, stehen jetzt aber frei zur Verfügung). Was Du brauchst, nennt sich [URL="https://technet.microsoft.com/en-us/pxexec"]PsExec.

              Ein Beispiel für eine benutzerdefinierte Aufgabe, die aus der DSMC gestartet werden kann:
              Anzeigename:
              IPConfig /all


              Programm oder Skript:
              %WinSysDir%\cmd.exe


              Argumente:
              /K "CLS && TITLE Show IPConfig for %CurrentComputer.Object.Name% && \\\DSM$\EXTERN$\Tools\PSTools\PsExec.exe -accepteula \\%CurrentComputer.Object.Name% %WinSysDir%\IPConfig.exe /all"


              Das Tool "PsExec.exe" muss irgendwo liegen, wo der Rechner zugreifen kann (von dem aus Du das starten möchtest), ich habe es auf dem DSM-Server in der Freigabe DSM$ im Unterverzeichnis "\EXTERN$\Tools\PSTools\" abgelegt.

              Die Dinge, die man über %CurrentComputer.Object.Name% anspricht, nennt man Variablen. Dabei wird in der Regel der Variablenname zwischen zwei Prozentzeichen gepackt, um an dessen Inhalt zu kommen. Hierbei gibt es einige Systemvariablen, die man in eine Kommndozeile (cmd.exe) per "set" angezeigt bekommt.
              Andere Variablen gibt es dann noch über DSM, wie z.B. "CurrentComputer.Object.Name".

              Hoffe, das hilft Dir weiter. Im obigen Beispiel kann Du
              %WinSysDir%\IPConfig.exe /all
              durch den von Dir gewünschten Befehl ersetzen. Aber halt immer vorsichtig sein. Wenn etwas gelöscht werden soll, z.B., dann kann da auch schnell mehr verloren gehen.

              Gruß
              Nils
              • 4. Re: DSM skripting - custom tools
                SitzRieSe Expert
                Es gibt eine ausführliche Hilfe, Tutorials und Bücher gibt es zum DSM Skripting nicht. Es gibt Workshops von HEAT oder Partner wo dieses Thema behandelt und erklärt wird. DSM hat seine eigene Syntax, die ist aber eigtl nur bedingt relevant weil alle Befehle GUI gesteuert sind.

                Deinen Code den du posted ist ein Parameter mit einer Variablen dahinter und ist ziemlich wenig Aussagekräftig wofür genau.

                Wenn du eine CMD bei einem Client PC starten willst ohne das der User etwas davon mitbekommt, musst du ExecuteEx oder RunAs im eScript benutzen.

                Ich rate dir aber dringend einen Dienstleister hinzuzuziehen oder ein Workshop zu besuchen, ansonsten wird der Einstieg in die DSM Welt sehr schmerzhaft für dich! Das ist nicht bös gemeint, sondern ich spreche hier aus eigenen Erfahrungen!

                Gruß

                Alex
                • 5. Re: DSM skripting - custom tools
                  DSMForum Master
                  Danke für eure Antworten, denke ich werde den Rat von Sitzriese früher oder später befolgen, wenn mal Luft für ne Schulung ist. Haben ja auch einen Dienstleister, welcher uns betreut.
                  Ich habe mir mal unsere custom Tools angeschaut und es gibt schon einige vorgefertigte tools von unserem Dienstleister. Habe jetzt mal versucht ein eigenes skript hinzuzufügen, nämlich den Befehl sfc /scannow.
                  Hier mein Argument dazu:
                  /K "CLS && TITLE sfc scannow %CurrentComputer.Object.Name% && %NiDir%\extern$\tools\pstools\psexec.exe -accepteula -s -i \\%CurrentComputer.Object.Name% SFC /Scannow

                  Habe den Pfad von psexec.exe aus einem Argument eines anderen custom tools skript entnommen. Leider wird mir im Konsolenfenster, welches aufpoppt wenn ich das Skript auf einem gemanageten PC ausführen will, angezeigt, dass das System den angegebenen Pfad nicht finden kann. Brauche ich für diesen Befehl überhaupt den psexec?
                  Und noch eine Frage: Was bedeutet der code am Anfang /K "CLS && TITLE"?
                  Dann lasse ich euch erstmal in Ruhe