1 2 Previous Next 15 Replies Latest reply on Dec 14, 2010 7:19 AM by MTheis

    cmd als Administrator ausführen (netsh)

    Andree Apprentice
      Hallo.

      Ich möchte gerne bei einem Windows 7 64Bit Client den Proxy, für die Netzwerkansicht, mitgeben, damit Windows auch weiß, "was Internet ist".

      Befehl: netsh winhttp set proxy 172.16.0.31:3128

      Problem ist nur, dass ich ja die CMD als Administrator ausführen muss.
      Im eScript habe ich schon die verschiedensten Befehle ausprobiert.

      Wie bin ich bisher vorgegangen:
      - FileCopy der Batchdatei mit dem o. g. Befehl lokal auf den Client.
      - dann die lokale Batch-Datei ausgeführt mit execute, runas, etc.


      Frage:
      Wie bekomme ich es hin, dass ich die CMD als "als Administrator" (Admin-Modus) ausführe mit dem o. g. Befehl?
        • 1. Re: cmd als Administrator ausführen (netsh)
          MTheis Specialist
          Hallo Andree,

          wir haben das unter Windows Vista 32 und Windows 7 32 folgendermaßen gelöst. Ich weiß allerdings nicht, ob es bei x64 auch funktioniert:


          RunAs('%WINSYSDIR%
          etsh.exe','winhttp set proxy iport ""','','','2',raUseSisAccount+WaitForExecution+UndoneContinueParentScript)/TS


          Gruß, MTheis
          • 2. Re: cmd als Administrator ausführen (netsh)
            Andree Apprentice
            Hi.
            Danke für deine Rückmeldung. Ist schön SMART die Zeile

            Ich bekomme leider folgende Fehlermeldung in den Log-Dateien:
            16:03:39.511 2     Not passing cmd to service (Local admin or not allowed to call service)

            Dazu befrage ich noch mal Herrn Google.

            Nachtrag:
            Wofür steht denn das /TS am ende der Befehlszeile?

            (...)UndoneContinueParentScript)/TS


            Anbei ein Screenshot von uns .....
            • 3. Re: cmd als Administrator ausführen (netsh)
              info@offlimits-it.com Expert
              was passiert denn wenn du einen nicht Admin User anmeldest?
              • 4. Re: cmd als Administrator ausführen (netsh)
                Andy74 Expert
                Ist bei uns zwar ein ENTEO 5.86 Umgebung, solte doch aber in der Beziehung gleich sein:


                If IsRunningOnX64
                ! Mit SYSNATIVE wird aus einer 32-Bit Anwendung (niinst32.exe) das 64-Bit SYSTEM32-Verzeichnis angesprochen
                Execute('%windir%\sysnative\NETSH.exe WINHTTP set proxy XXXXX:8080 ";*.XXXXX.com"')/?/TS
                If not IsRunningOnX64
                Execute('NETSH WINHTTP set proxy XXXXX:8080 ";*.XXXXX.com"')/?/TS
                • 5. Re: cmd als Administrator ausführen (netsh)
                  MTheis Specialist
                  Hmmm... wie gesagt, hab keine Erfahrung mit x64, aber was wäre, wenn du die Dateiumleitung abschaltest?

                  das /TS steht für computerbezogener Befehl als Service ausführen (Das Flag im escript. Rust du das Paket über den Autoinstaller oder über den Serviceinstaller auf?


                  Das mit dem 16:03:39.511 2 Not passing cmd to service (Local admin or not allowed to call service) war AFAIR nicht schlimm. Er benötigt es nicht, da er schon Adminrechte hat. Der eigentliche Fehler sollte im Log etwas später auftauchen und ein E davor haben.

                  Gruß, MTheis
                  • 6. Re: cmd als Administrator ausführen (netsh)
                    Andree Apprentice

                    Ist bei uns zwar ein ENTEO 5.86 Umgebung, solte doch aber in der Beziehung gleich sein:


                    Werde ich mal ausprobieren das Script und schauen was dann passiert.

                    [QUOTE=info@offlimits-it.com;32618]was passiert denn wenn du einen nicht Admin User anmeldest?
                    Die Einstellungen werden versucht zu "installieren" jedoch ohne erfolg. Das Anstoßen der Installationen testen wir immer über die NIInst32.exe /AI.

                    Allgemeine Frage:
                    Wo sehe ich denn im Enteo die Logdateien. Die Logdateien mit sofortigere Ansicht bekommt man ja nur durch den Start mit F7 - oder?
                    • 7. Re: cmd als Administrator ausführen (netsh)
                      MTheis Specialist


                      Die Einstellungen werden versucht zu "installieren" jedoch ohne erfolg. Das Anstoßen der Installationen testen wir immer über die NIInst32.exe /AI.



                      In den Eigenschaften des Paketes definierst du ob es
                      - nur ausgeführt werden soll wenn KEIN Benutzer angemeldet ist(Serviceinstaller)
                      - nur ausgeführt werden soll wenn EIN Benutzer angemeldet ist (Autoinstaller)
                      - Oder egal (Dann entscheidet Enteo selbst) Die hast allerdings bei uns zu Timingproblemen geführt, wenn der Autoinstaller loslegen wollte (Über Loginskript) und der Serviceinstaller noch am ackern war.


                      Allgemeine Frage:
                      Wo sehe ich denn im Enteo die Logdateien. Die Logdateien mit sofortigere Ansicht bekommt man ja nur durch den Start mit F7 - oder?



                      Entweder im nimoni (Start - Ausführen - nimoni)
                      Oder im Verzeichnis %ProgramFilesDir%\Common Files\enteo\NiLogs

                      Je nach verwendeter Installationsart findest du dann da entsprechende LOGs.
                      • 8. Re: cmd als Administrator ausführen (netsh)
                        Andree Apprentice
                        Auch wenn ich das mit einem Nutzer der kein Admin ist ausführe, erhalte ich nicht das ergebnis was ich gerne möchte.

                        Haben es die meisten etwa über dein GP (group policy) gelöst?

                        Noch Ideen?


                        Nachtrag (13:49h)
                        RunAs('cmd /C "netsh winhttp set proxy 172.16.0.31:3128"','','','','',raUseSisAccount+UndoneContinueParentScript)


                        Nachtrag II:
                        Er führt es aus - aber ändert es nicht :-(

                        Nachtrag III (15:02h)
                        Da bei mir am Client die CMD immer im Adminmodus startet - läuft es leider überhaupt nicht.
                        Wir probieren noch mal was aus....
                        • 9. Re: cmd als Administrator ausführen (netsh)
                          Ratzratz Expert
                          Hallo Andree,

                          der netsh-Befehl ist kein in der CMD integrierter Befehl, wie z.B. "dir" oder "cd", sondern eine eigenständige exe-Datei und liegt in c:\windows\system32.

                          Es müsste also entweder so funktionieren:
                          Execute('%WINSYSDIR%
                          etsh.exe winhttp set proxy 172.16.0.31:3128')/?/TS

                          oder wenn das nicht hilft, vielleicht auch so:
                          RunAs('%WINSYSDIR%
                          etsh.exe','winhttp set proxy 172.16.0.31:3128','','','2',raUseSisAccount+WaitForExecution+UndoneContinueParentScript)/TS

                          Mit "cmd /C ..." mußt Du da nichts machen.

                          Gruß
                          M. Metzger
                          • 10. Re: cmd als Administrator ausführen (netsh)
                            NicoS1 Master
                            Und Achtung beim RunAs. Dort musst du die Parameter trennen. Oben nur die Datei die du ausführen möchtest also %WINSYSDIR%
                            etsh.exe und darunter unter "Paramter" dann alles eintragen was du dranhängen möchtest.

                            Des weiteren, wenn du den RunAs benutzt, solltest du den Befehl nicht "Maschinenbezogen als Service" sondern nur "Maschinenbezogen" flaggen (so wie es Ratzratz im seinem Beispiel angegeben hat, ist es falsch geflaggt). Du gibst ja im RunAs schon an, dass du mit dem Konto des Enteo Runtime Services (aka Benuzter in der Lokalen Admingruppe) arbeiten möchtest. Nur so bekommst du wirklich einen "unterschied" zwischen Execute (Maschinenbezogen als Service) wo es wirklich als Dienst ausgeführt wird, und dem RunAs der einen zweiten Benutzer anmeldet, mit den Account Daten des Dienstes (analog Windows Befehl Runas).
                            • 11. Re: cmd als Administrator ausführen (netsh)
                              Andree Apprentice
                              Hallo.
                              Das Problem was besteht ist, dass der Command (CMD) nicht im Administrationsmodus ausgeführt wird.
                              Ich habe so keine Berechtigungen den netsh Befehl auch wirksam auszuführen!

                              Witzig ist, dass ich es hinbekommen habe, dass die cmd.exe immer im Admin-Modus bei mir gestartet wird. Weiß aber nicht - wie ich es zurück drehen kann. (nein, ich meine nicht die Verknüpfung mit der Option!)! Wäre ja auch nicht schlecht.

                              Mit dem Spy sieht man auch kaum bis nichts was dort wirklich passiert....

                              Anmerkung: Zum Netsh Befehl: ist klar das dieser Befehl ein extra "Programm" ist und nicht zur CMD gehört. Ausführen kann man den von "überall". (Start - Ausführen).
                              • 12. Re: cmd als Administrator ausführen (netsh)
                                NicoS1 Master
                                Ok ich pack jetzt mal meine Windows 7 Trickkiste aus:

                                1. Für Windows 7, speziell mit UAC, sollte man schauen das der SIS Service vollständig konfiguiert ist und (i.d.R) auf deinem Deportserver (Enteo Infrastruktur, Eigenschaften der Site) installiert ist.

                                2. Für die UAC, es gibt einmal die Einstellung in der Systemsteuerung => Benutzerkonten => Einstellungen der Benutzerkonstensteuerung, dort kannst du die UAC abschalten. Wenn die aus ist, müsste die CMD immer als Admin aufgehen.

                                Desweiteren kannst du per Active Directory GPO, bzw. per Lokaler Sicherheitsrichtlinie (secpol.msc) noch ein paar detailierte Einstellungen machen. Badmin (hier im Forum) und ich haben da nach langem testen und tüfteln für unsere Konzepte folgende 3 Einstellungen verändert.
                                (Lokale Sicherheitsrichtlinien => Sicherheitsoptioptionen)

                                * "Benutzerkonstensteuerung: Alle Administraten im Administorbestätigungsmodus ausführen => Aktiviert

                                Das ist Grundsätzlich erstmal die UAC an/aus Richtlinie. Wenn du die Abschalten würdest, würdest du, wenn du die CMD aufmachst sie immer als Admin öffnen, sogar ein User der nicht Lokaler Admin ist, bekommst sie dann als "Administrator" angezeigt, hat aber nicht die Rechte eines Admins.

                                * Benutzerkontensteuerung: Verhalten der Eingabeaufforderung für erhöhte Rechte für Administratoren im Administratorgenehmigungsmodus => "Erhöhte Rechte ohne Eingabeaufforderung"

                                Das stelllt die UAC Einstellung für alle Benutzer ein, die Mitglied der Lokalen Admingruppe sind. Mit der Einstellung wird die UAC für alle Admins mehr oder weniger deaktiviert. Die Hochstufung erfolgt automatisch ohne Eingabeaufforderung.

                                *Benutzerkontensteuerung: Verhalten der Eingabeaufforderung für erhöhte Rechte für Standardbenutzer => Eingabeaufforderung zu Anmeldeinformationen (auf sicherem Desktop)

                                Das ist die UAC Einstellung für normale Benutzer. Wenn Benutzer die nicht Admin sind, etwas als Admin ausführen möchten, werden sie nach Anmeldeinformationen gefragt.

                                --------------
                                Ich würde sagen, dass das ganze "Best Practice" für unsere Konzepte ist, da wir dort beschrieben haben, dass alle Benutzer mit einem Standard Account arbeiten und nur einen Lokalen Administrator bekommen auf Anfrage / Temporär usw.

                                3. Dateiumleitung bei 64 Bit Systemen:
                                Bei 64 Bit Betriebssystemen musst du berücksichtigen, dass Enteo im 32 Bit Modus läuft. So landest du, wenn du unter Enteo etwas zum Beispiel nach C:\Programme kopieren willst, automatisch in C:\ProgramFiles(x86). Das gleiche hast du auch beim Sysdir. Im 32 Bit Modus landest du normalerweise automatisch in C:\Windows\System32. Im 64 Bit Modus würdest du in C:\Windows\SysWOW64 landen. Kurioserweise findest du in beiden Verzeichnissen eine netsh.exe ob beide Problemlos funktionieren weiß ich leider nicht. Wenn du einen execute('%WINSYSDIR%
                                etsh.exe) machst führst du automatisch C:\Windows\System32
                                etsh.exe aus.

                                Wenn du C:\Windows\Syswow64
                                etsh.exe ausführen möchtest dann probier mal execute('%windir%\Syswow64
                                etsh.exe') und schalte zusätzlich mal noch die 64 Bit Dateiumleitung ab (in deinem Script oben rechts bei Benutzer / Computerbezogen, der kleine gelbe Ball mit der 64 drin).

                                Ich weiß nicht genau ob dass das ganze beeinflusst, aber testen kann man es ja mal.

                                ---------------------------
                                So und ich hab noch 2 ganz blöde Fragen (sorry aber ich stell sie vorsichtshalber mal)

                                1. Der Befehl funktioniert, wenn du ihn normal als Admin ausführst?
                                2. Der Benutzer des Enteo Services ist auch wirklich in der lokalen Admingruppe?

                                Wenn beides mit Ja beantwortet ist, würde ich echt mal vorschlagen, poste mal bitte deine kompletten script.inc die du ausführst und das entsprechende Logfile dazu (auf Level 0, kannst du mit nimoni.exe ggf. umstellen vor der paketausführung). Auch bitte darauf achten, dass du nicht das Paket aus der emmc mit F7 bzw "jetzt lokal ausführen" startest, sondern auch wirklich per AutoInstaller / Softwareshop aufführst. "Jetzt lokal ausführen" ist leider nicht für einen richtigen Praxistest tauglich.

                                Im übrigen... wenn alles scheitert. Führ den Befehl komplett manuell aus und schau dir mal den Registry Key

                                HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Connections\WinHttpSettings

                                Da sollten deine Einstellungen drin stehen. Wenn sie das nicht tun, stimmt mit deinem Befehl grundsätzlich schonmal was nicht. Wenn sie das tun, dann exportier einfach den Registry Zweig und pump ihn per Enteo auf deine Rechner raus.
                                • 13. Re: cmd als Administrator ausführen (netsh)
                                  Andree Apprentice


                                  (...) Im übrigen... wenn alles scheitert. Führ den Befehl komplett manuell aus und schau dir mal den Registry Key

                                  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Connections\WinHttpSettings

                                  Da sollten deine Einstellungen drin stehen. Wenn sie das nicht tun, stimmt mit deinem Befehl grundsätzlich schonmal was nicht. Wenn sie das tun, dann exportier einfach den Registry Zweig und pump ihn per Enteo auf deine Rechner raus.



                                  Hi.
                                  Das ist doch mal was. Das werde ich gleich einmal probieren!
                                  Mit der CMD werde ich mal weitertesten über den Pfad  C:\Windows\Syswow64
                                  etsh.exe.
                                  Die UAC soll auf den Arbeitsplätzen erhalten bleiben.

                                  Ergebnis: --> kommt ab dem 27.12.
                                  Schöne Weihnachten und guten Rutsch an dieser Stelle....
                                  • 14. Re: cmd als Administrator ausführen (netsh)
                                    NicoS1 Master
                                    Nach der Methode bleibt die UAC grundsätzlich aktiv. Allerings nur ohne Bestätigungsfenster für Admins. Für "normalos" ist sie aktiv mit Anmeldeoptionen. Macht natürlich wenig Sinn, wenn alle User bei euch lokale Admins sind. Aber in dem Fall auf jeden Fall das mit dem SIS Dienst berücksichtien. Den brauchst du dann nämlich um die UAC zu "umgehen" (hab ich mir hier im Forum sagen lassen).

                                    Ebenso schöne Weihnachten und schöne Feiertage ;-)
                                    1 2 Previous Next