Ich habe Zugriffstechte auf C:\
Auch bin ich lokaler Admin. Die UAC habe ich testweise auch mal deaktiviert.
Leider alles ohne Erfolg.
Auch wenn ich das Programm in einen neuen Pfad kopiere, nützt das nichts...
Ich habe Zugriffstechte auf C:\
Auch bin ich lokaler Admin. Die UAC habe ich testweise auch mal deaktiviert.
Leider alles ohne Erfolg.
Auch wenn ich das Programm in einen neuen Pfad kopiere, nützt das nichts...
Nein, leider habe ich auch dann nichts drin!
Sorry, klar weiss ich, dass auch Programme (oder gerade die) Registry Einträge haben!
Es klang einfach so, als meintest Du einen Benutzer.
In der ganzen Registry gibt es (bei mir) keinen Eintrag quser.
Leider ist es immer noch das selbe!
Im Anhang ein Screen-Shot von Scite und die Console Meldung, dass er das Programm nicht findet!
Hallo zusammen,
das OS, ist wie im ersten Post geschrieben Windows 7 (x64)
Registry Eintrag von quser???
Das ist kein Benutzer, das ist eine Windows Funktion / Programm!
Da das Script bei anderen Funktioniert, denke ich, dass es an unserer Domäne liegt...
Obwohl es sehr komisch ist, dass man es lokal in der DOS-Box ausführen kann......
Wenn jemand noch Ideen hat, dann habe ich ein offenes Ohr!
PS: Wegen CCleaner: Der (Test-)PC ist frisch installiert und hat momentan nur AutoIt und Virenscanner drauf.....
Natürlich ist er in der Domäne. Aber sonst nichts!
Ich bekomme leider ein leerer String! (Siehe Bild)
Dazu muss ich noch folgendes sagen:
Wenn ich das ohne #RequireAdmin ausführe, bekomme ich wie gesagt ein leerer String; also nichts!
Wenn ich es mit #RequireAdmin ausführe passiert gar nichts! Also die UAC Meldung kommt, ich bestätige und dann passiert nichts mehr.
Das Script beendet dann ohne Fehler, aber ohne etwas anzuzeigen. Wenn ich es dann als EXE kompilliere und ausführe, dann kommt zwar die
MsgBox am Ende, aber ist auch ohne Inhalt!
Danke für die Antworten!
Ich habe nun ein #RequireAdmin an den Anfang gestellt.
Leider keine Änderung!
Ich bekomme nichts zurück.
Wenn ich das ganze in einer DOS-Konsole ohne Admin-Rechte!! teste, funktioniert es!
Hallo zusammen,
ich muss für mein Script unterscheiden können, ob jemand via Remotedesktop oder direkt (Konsole) an einem PC eingeloggt ist. (Alles Win7)
Dafür wollte ich die Rückgabe des Befehles quser auswerten.
Wenn ich in einer CMD-Box den Befehl quser eingebe, bekomme ich zurück, ob er an der console oder an einem Remotedesktop (rdp-tcp#0) eingeloggt ist. Das muss ich auswerten.
Leider funktioniert das nachfolgende einfache Script nicht, weil er sagt, dass er quser nicht findet.
Diese Datei gibt es aber (C:\Windows\System32) und kann auch über die Konsole (CMD-Box) angeprochen werden.
Wo liegt der Fehler?
Gruss Veronesi
Global $PID, $Ret = ""
$PID = Run('"' & @ComSpec & '" /c quser', '', @SW_HIDE, 0x2)
While 1
$Ret &= StdoutRead($PID)
If @error Then ExitLoop
WEnd
MsgBox(0, "", $Ret)
[/autoit]Super! Vielen Dank!
Ja, es ist unsauber, doch ich benutze das nur in seltenen Ausnahmefällen. Ich möchte in meiner Datenbank / Softwareverteilung so flexibel wie möglich bleiben.
Dazu gehört auch, dass ich vor der eigentlichen Installation und nach jeder Installation Programmspezifische Befehle ausführen kann.
Alle relevanten Daten sind in einer Datenbank. Auch diese Programmspezifischen Befehle. Und wenn notwendig können sie ausgeführt werden!
Dies wird von 10'000 Installationen zwar nur 1x vorkommen, aber immerhin!
(Ich muss hier 8'000 PCs auf der ganzen Welt automatisch mit der gleichen Software bestücken und korrekt installieren. Doch es ist immer ein anderes OS und eine andere Sprache......! Bis jetzt läuft alles gut, doch ich wollte noch diese flexibilität erhalten!)
Vielen Dank!
Gruss, Veronesi
Hallo zusammen,
entschuldigt bitte den sehr ungenauen Titel. Was besseres ist mir nicht eingefallen.
Ich habe ein Programm, welches (u.a.) aus einer Datenbank einzelne Felder einliest.
Ein Feldinhalt sieht so aus:
FileCopy($sDatabaseOriginal, $sDatabase, 9)
[/autoit]Nun steht also in einer Variable dieser "Text" drin.
Also wie wenn ich schreiben würde
$Command = "FileCopy($sDatabaseOriginal, $sDatabase, 9)"
[/autoit]
Wie schaffe ich es nun, dass dieser "Text", der ja eigentlich ein AutoIt Befehl ist, ausgeführt wird? Die Variablen innerhalb dieses Befehls sind im Programm selber deklariert.
Grüsse
Veronesi
Den Benutzernamen als Parameter zu übergeben nützt mir nichts. Denn das Programm Task.exe muss zwingend als Benutzer (und nicht als Admin) ausgeführt werden. Sonst ist der Task, welcher mit dieser Datei erstellt wird, nur als Admin sichtbar und nicht als Benutzer....!
Gruß Veronesi
Hat jemand eine Idee, an was das liegen könnte? Oder wie ich das Problem lösen kann?
Vielen Dank!
Kein Problem ![]()
Hallo Chip,
ich habe mich falsch ausgedrückt.
Die MsgBox im Task.exe gibt den falschen Benutzernamen zurück.
Also: Ich führe das Script1 aus: Gebe als Benutzername folgendes an: Administrator (dieser hat Adminrechte
)
Wenn das Script den Benutzernamen abfragt, gebe ich Benutzer1 an.
Aber das Task.exe gibt dann Administrator zurück! Sie sollte aber Benutzer1 zurückgeben!
Hallo zusammen,
ich habe ein etwas spezielles RunAs Problem.
Ausgangslage
Ich möchte als Benutzer mit AutoIt einen geplanter Task erstellen. Das klappt auch, allerdings nur, wenn der Benutzer lokaler Admin ist. Gut, das scheint von M$ so zu sein.
Also habe ich ein zweites Script gemacht, welches mit
#RequireAdmin
[/autoit]Administratoren Rechte beantragt.
Danach wird der Benutzer, um welchen es geht, zu den lokalen Administratoren hinzugefügt. (Auch das klappt)
Nun wird mit RunAsWait das Ursprüngliche Script aufgerufen, in der Hoffnung, dass es nun unter diesem Benutzer läuft. (Dies muss es, weil sonst der Benutzer diesen Task gar nicht sehen oder ausführen kann.
Doch das Script bei RunAsWait wird immer als Administrator ausgeführt!
Script1
[autoit]#RequireAdmin
Opt("MustDeclareVars", 1)
FileInstall("U:\2_Projekte\AutoIt\CreateTask\Task.exe", @TempDir & "\Task.exe", 1)
Dim $Username = InputBox("Enter the Username", "Please enter the Username which want's to start this program finally:" & @LF & "(User with no Admin-rights!)", @UserName)
Dim $Password = InputBox("Please enter the password", 'Please enter the password for this user "' & $Username & '"', "", "*")
Run(@ComSpec & " /c " & "Net Localgroup Administrators " & @LogonDomain & "\" & $Username & " /Add", "", @SW_HIDE)
Run(@ComSpec & " /c " & "Net Localgroup Administratoren " & @LogonDomain & "\" & $Username & " /Add", "", @SW_HIDE)
RunAsWait($Username, @LogonDomain, $Password, 2, @TempDir & "\Task.exe", @TempDir)
[/autoit][autoit][/autoit][autoit]Run(@ComSpec & " /c " & "Net Localgroup Administrators " & @LogonDomain & "\" & $Username & " /Delete", "", @SW_HIDE)
Run(@ComSpec & " /c " & "Net Localgroup Administratoren " & @LogonDomain & "\" & $Username & " /Delete", "", @SW_HIDE)
Script Task.exe
[autoit]MsgBox(0, "", @UserName)
;Other things to do....
Return 1
Die Scripte sind natürlich gekürzt auf das wesentliche Problem!
Kann mir jemand helfen? Im Task.exe kommt als @UserName immer der Admin!
Das Hinzufügen und Entfernen zu den Gruppen funktioniert einwandfrei!
Gruss Veronesi
Hallo Xenobiologist
Vielen Dank!
Ich möchte aber nur die Ansicht von genau einem definierten Ordner (ist bereits geöffnet) ändern. Die anderen Ordneransichten dürfen nicht verändert werden.
Also genau so, wie wenn das Häkchen "Ansicht für jeden Ordner speichern" gesetzt ist und ich bei einem Ordner aus dem Kontex Menü den Befehl View => Thumbnails wähle!
Gruß
Veronesi
Hallo zusammen
Ich suche nach einer Möglichkeit, um per Script in Win XP und Win 7 die Explorer Ansicht umzustellen.
Konkret soll genau 1 vordefinierter Order von Details auf Symbole umgestellt werden.
Momentan ist das so gelöst, dass ich Tastendrücke simuliere.
Z.B. Shift+F10 für Kontex Menü, und dann vn für View > Thumbnails.
Das Problem ist, dass das nicht immer funktioniert. Gerade in virtuellen PCs geht das öfters nicht.
Dazu muss ich sagen, dass das Script immer beim starten ausgeführt wird, wenn also der PC noch ziemlich beschäftigt ist.
Ich habe es schon mit diversen Sleep versucht, aber es nie fertig gebracht, dass es IMMER läuft
Gibt es da keinen eleganteren weg z.B über eine DLLCall oder sonstigen Befehl?
Vielen Dank für Hilfe!
Super! Vielen Dank.
Nun läuft es.
Ich stehe mit den StringRegExp irgendwie auf Kriegsfuss! Ich habe zwar gesehen dass ich (?i) einfügen muss, doch ich habe es falsch gemacht!
Dankeschön!
Diese Funktion ist genial.
Leider ist das Pattern Case Sensitiv.
D.h. Wenn ich nach *.jpg suche, findet er keine Dateien, die *.JPG heissen....
Woran müsste ich schrauben, damit das auch noch klappt?
Grüsse Veronesi
@Grossvater
Vielen Dank für Deine Mühe.
Ich werde das mal studieren. Vermutlich brauche ich mehrere Jahre, bis ich das verstehe ![]()
Aber man lernt ja immer mal wieder dazu. Ist auf jeden Fall sehr interessant!
Sprenger120
Auch Dir dankeschön! Nun lade ich gleich mal die Shell32!
Veronesi