WinFuture-Forum.de: Administratorabfrage bei cmd-Script - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
  • 2 Seiten +
  • 1
  • 2

Administratorabfrage bei cmd-Script


#1 Mitglied ist offline   AnMa 

  • Gruppe: aktive Mitglieder
  • Beiträge: 43
  • Beigetreten: 01. Mai 13
  • Reputation: 1

geschrieben 01. Mai 2013 - 21:19

Hallo zusammen,

ich weiß gerade neu angemeldet und schon eine Frage ist immer ein schlechtes Zeichen. Aber ich habe mich auch erst angemeldet als es eben garnicht mehr anders ging :)

In den letzten Wochen habe ich ein, für meine Verhältnisse sehr umfangreiches, Script geschrieben und so wie es aussieht bleibe ich jetzt beim Finale hängen.

Das eigentliche Script ist soweit fertig und es geht mir aktuell nur um eine Installationsroutine.

In dieser muß zum kopieren der Script-Daten ein Verzeichnis unter C:\Programme\ angelegt werden, das geht allerdings nur wenn das Script als Administrator ausgeführt wird. Das wiederum ist aber anscheinend nicht so einfach.

Inzwischen habe ich mehrere Lösungswege ausprobiert. Über eine Verknüpfung mit Adminrechten, über eine zweite cmd und dem Befehl "Runas" aber ich komme nicht weiter.

Am liebsten wäre mich bei der install.cmd ein Popup das eben nochmal eine Abfrage tätigt, ob man das zulassen möchte. Wie es bei vielen Programmen üblich ist.

Ich hoffe ich konnte mich einigermaßen verständlich ausdrücken?

Schonmal lieben Dank
Anna
0

Anzeige



#2 _d4rkn3ss4ev3r_

  • Gruppe: Gäste

geschrieben 01. Mai 2013 - 21:28

Willkommen im Forum!

Kurz und knapp:
if not defined sessionname echo Adminrechte
0

#3 Mitglied ist offline   AnMa 

  • Gruppe: aktive Mitglieder
  • Beiträge: 43
  • Beigetreten: 01. Mai 13
  • Reputation: 1

geschrieben 01. Mai 2013 - 22:00

Danke :)

zum Thema ...
den Befehl setze ich schon am Anfang in die install.cmd?

So habe ich davon leider keine Änderung.
0

#4 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.902
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 01. Mai 2013 - 23:11

Schau auch mal hier.

Vielleicht hilft das weiter.

Das von Darknessforever gepostete Snippet kommt dahin, wo es halt gebraucht wird - also da, wo auf Adminrechte geprüft werden soll. Zugehörige Befehle kämen dann zwischen Klammern, also so:

if not defined sessionname (
REM Wenn Adminrechte verfügbar, tu Folgendes:
  echo 1a
  echo 2a
  echo 3a
) else (
REM Wenn Adminrechte NICHT verfügbar sind, mache stattdessen dies:
  echo 4n
  echo 5n
  echo 6n
)


"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#5 Mitglied ist offline   AnMa 

  • Gruppe: aktive Mitglieder
  • Beiträge: 43
  • Beigetreten: 01. Mai 13
  • Reputation: 1

geschrieben 01. Mai 2013 - 23:29

Ok, dann hilft mir das von Darknessforever leider nicht weiter, da das ja nur überprüft ob Adminrecht zur Verfügung stehen oder nicht. Aber nicht die Option bieten um diese Adminrechte eben zu gewähren.

Der Link von dir liest sich sehr interessant, das muß ich aber in Ruhe durchackern, da zum einen meine englischen Fachkenntnisse nicht sehr umfangreich sind und ich auch mit gewissen Begrifflichkeiten noch nciht so vertraut bin.

Danke jedenfalls schon mal für die Tipps, ich werde mal versuchen mich da reinzulesen. :)

Gruß
Anna
0

#6 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.902
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 02. Mai 2013 - 05:37

Alternativ ginge auch ein WSH-Script statt einer Batchdatei.

Pro: Damit kann man direkt die UAC anstoßen.
Contra: Du müßest Dein Script komplett umschreiben.

Für Powershell gilt mehr oder weniger dasselbe.
"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#7 Mitglied ist offline   AnMa 

  • Gruppe: aktive Mitglieder
  • Beiträge: 43
  • Beigetreten: 01. Mai 13
  • Reputation: 1

geschrieben 02. Mai 2013 - 14:09

OK, damit werde ich mich wohl mal auseinander setzen müssen. Am liebsten wäre es mir ja etwas schönes in Pascal zu programmieren, dazu fehlt mir dann doch noch einiges.

Ich könnte ja damit Leben, dass die Leute die das kleine Programm bei sich am Rechner installieren sollen, die Install.cmd über einen Rechtsklick und "Als Administrator ausführen" starten. Aber dann habe ich das Problem, dass meine Abfrage des aktuellen Pfads in dem sich die Install.cmd befindet nicht mehr funktioniert. Anstatt des korrekten Pfades wind dann "C:\Windows\system32" ausgegeben.
0

#8 Mitglied ist offline   CaNNoN 

  • Gruppe: aktive Mitglieder
  • Beiträge: 489
  • Beigetreten: 16. November 05
  • Reputation: 80

geschrieben 02. Mai 2013 - 14:38

Beitrag anzeigenZitat (AnMa: 02. Mai 2013 - 14:09)

OK, damit werde ich mich wohl mal auseinander setzen müssen. Am liebsten wäre es mir ja etwas schönes in Pascal zu programmieren, dazu fehlt mir dann doch noch einiges.

Ich könnte ja damit Leben, dass die Leute die das kleine Programm bei sich am Rechner installieren sollen, die Install.cmd über einen Rechtsklick und "Als Administrator ausführen" starten. Aber dann habe ich das Problem, dass meine Abfrage des aktuellen Pfads in dem sich die Install.cmd befindet nicht mehr funktioniert. Anstatt des korrekten Pfades wind dann "C:\Windows\system32" ausgegeben.


funktioniert das nicht, wenn du nach dem springen zu system32 ein "cd c:\dein\korrekter\pfad" eingibst?
0

#9 Mitglied ist offline   AnMa 

  • Gruppe: aktive Mitglieder
  • Beiträge: 43
  • Beigetreten: 01. Mai 13
  • Reputation: 1

geschrieben 02. Mai 2013 - 15:03

Beitrag anzeigenZitat (CaNNoN: 02. Mai 2013 - 14:38)

funktioniert das nicht, wenn du nach dem springen zu system32 ein "cd c:\dein\korrekter\pfad" eingibst?


Leider nein.

Meine Install.cmd frägt mittels "set dir=%cd%" den Pfad ab in dem die Intsall aktuell liegt und aus dem sie gestsartet wurde. dieser Pfad ist für die weitere Installation maßgeblich, da dort die zu kopierenden Dateien und Daten liegen. Dieser Pfad kann natürlich von user zu user unterschiedlich sein. Man weiß ja nie wo die Leute später dann das Rar-Archiv entpacken.

Ein weiterer Versuch war es den Bereich der Install auszulagern, der das Programm-Verzeichnis in "C:\Programme\" anlegen soll um diese externe CMD dann mit "runas" zu starten. Aber dann frägt er nach dem Administratorpasswort, dass es ja nicht gibt.
0

#10 _d4rkn3ss4ev3r_

  • Gruppe: Gäste

geschrieben 02. Mai 2013 - 16:11

Ja runas funktioniert nur mit Passwörtern.
Hmm eventuell geht es via den Befehl at.
0

#11 Mitglied ist offline   AnMa 

  • Gruppe: aktive Mitglieder
  • Beiträge: 43
  • Beigetreten: 01. Mai 13
  • Reputation: 1

geschrieben 02. Mai 2013 - 16:22

Der Befehl at ist doch aus der Taskplanung oder? Aber der hilft ja nicht bei den Adminproblemen ...
0

#12 _d4rkn3ss4ev3r_

  • Gruppe: Gäste

geschrieben 02. Mai 2013 - 16:35

Jop richtig. Mir war aber so das man Aufgaben mit Adminrechten starten lassen kann.
0

#13 Mitglied ist offline   AnMa 

  • Gruppe: aktive Mitglieder
  • Beiträge: 43
  • Beigetreten: 01. Mai 13
  • Reputation: 1

geschrieben 02. Mai 2013 - 19:14

Nun so wie es aussieht muß ich mir da was anderes einfallen lassen.

Ich ärgere mich grad nur, weil ich mich jetzt so lange durch die ganzen Scripte geackert habe und am Ende scheiterts an der Install .... :(
0

#14 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.902
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 02. Mai 2013 - 19:40

Naja, in %PROGRAMFILES% installieren ist immer mit Problemen verbunden.

Geht ggf. auch ein anderes Zielverzeichnis?

Wenn Du zu 100% auf Adminrechte verzichten willst (oder mußt), bleibt Dir nur, direkt ins Nutzerprofil
%USERPROFILE%
oder
%APPDATA%
zu installieren. Dort hat der einzelne Benutzer immer Schreibrechte. Nachteil ist halt, daß das dann eine Benutzer- und keine systemspezifische Installation ist; wenn an einem PC zB 10 Nutzerkonten da sind, müßtest Du für jeden neu installieren.

Dieser Beitrag wurde von RalphS bearbeitet: 02. Mai 2013 - 19:40

"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#15 Mitglied ist offline   AnMa 

  • Gruppe: aktive Mitglieder
  • Beiträge: 43
  • Beigetreten: 01. Mai 13
  • Reputation: 1

geschrieben 02. Mai 2013 - 20:16

*grins* Nun ich bin ein Fan von korrekter Vorgehensweise, also müßte das Programm eigentlich in "C:\Programme" installiert werden.

Aber wie Du schon sagtest macht das nur unnütze Probleme. Bei den Usern die mein Programmchen nutzen reicht es allerdings sicher auch das Ganze in %Appdata% zu installieren. Man muß sich das Leben ja nicht unnütz erschweren.

Vieleicht setze ich mich dann irgendwann mal mit Pascal auseinander, wobei ich da eben unsicher bin ob ich solche aktionen wie hier mit "sox" "id3" usw. machen kann. Andererseits könnte ich dann natürlich auch eine benutzerfreundliche Oberfläche erstellen.
0

Thema verteilen:


  • 2 Seiten +
  • 1
  • 2

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0