merci für die Antworten... ![]()
(tolles Forum...wirklich. :-))
Ich wünsch Euch nen schönen Nachmittag.
merci für die Antworten... ![]()
(tolles Forum...wirklich. :-))
Ich wünsch Euch nen schönen Nachmittag.
Salü miteinander
Ich habe ein GuiCtrlCreateInput - Feld. Wenn jemand da rein klickt, sollte ein Button, der sich auf derselben GUi befindet, unsichtbar werden.
Wie krieg ich das hin?
Weiss das jemand?
Wär lieb, wenn Ihr mir hier weiterhelfen könntet.
Lieber Gruss
Flo
LOL.. danke...
ich habs jetzt raus... komm mir grad ne Runde saublöd vor...
dachte doch, dass es ein simpler denkfehler sein muss.. es funzt jetzt.
Merci.
Nun ja... wenn ich das mache, dann krieg ich beim ersten mal das, was ich erwarte... es wird der WErt ausgegeben, den ich in die INput Box geschrieben habe.
Wenn ich diese Zeile weglasse, krieg ich immer nur den Wert "5" (und ich frag mich woher er DIESEN überhaupt her nimmt... lol)
Salü miteinander
Habe wohl ein Anfänger-Problem, und es ist dringend... *g* Möchte ein GuiCtrlInput-Feld per Knopfdruck auslesen, benutze dazu GuiCtrlRead und spreche den Handler an.
Das Ding funktioniert genau einmal, ab dann bekomme ich nur noch den Wert "0" zurück.
WAS MACH ICH FALSCH. ... *zensur-flucherei* ??
Anm.: stört Euch nicht ab den vielen Includes, ich brauch die für andere Script-Bestandteile, die ich hier ausgeblendet hab.
#include <GuiConstantsEx.au3>
#include <Excel.au3>
#include <Array.au3>
#include <EditConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Global $VST_Nr = 0
$SupporterGui=GUICreate("Test", 200,200)
$SearchButton = GUICtrlCreateButton("?",100,10,15,19)
GUICtrlCreateLabel("VST-Nr",10, 12, 50, 40)
$VST_Nr=GUICtrlCreateInput($VST_Nr, 50, 10, 50, 20)
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
Select
Case $msg = $SearchButton
$VST_Nr=GUICtrlRead($VST_Nr)
MsgBox(0,"Input-String",$VST_Nr)
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
EndSelect
WEnd
Wäre wirklich super-lieb, wenn Ihr mir hier auf die Sprünge helfen könntet, ich verzweifel grad ne Runde...
Liebe Grüsse aus der Schweiz
Flo
Danke, $var, dass Du Dir die Zeit genommen hast... :-))...
Gelegentlich auf n Bier'sche oder so ![]()
Sonnige Grüsse
Flo
Salü miteinander
Ich möchte meiner Anwendung ein anderes Icon verleihen, und habe null Ahnung, wie man das bewerkstelligt. Habe schon bei dem Thread hier nachgeguckt, leider werd ich nicht mal schlau draus. (Command Line etc.... )
Kann mir da bitte bitte jemand auf die Sprünge helfen?
Ich weiss, das ist ziemlich unten durch, sowas überhaupt zu fragen... aber äh... *lol*.... ja, eben.. ich brauch Hilfe. ![]()
Knuutsch und Zuckerstreu
Flo
... hat ja geklappt.. somit lösch ich meinen roman wieder..*fg*... (kommt hinzu dass noch n fehler drin war)
![]()
Salü miteinander
Ich habe mich - obwohl ich erst dagegen war - dazu durchgerungen, es mit psexec durchzuführen. Mit _RundDos() gehts dann ja auch "unsichtbar". Funktioniert herrlich. Werde aber bei Gelegenheit die oben erwähnte Lösung ohne psexec ausprobieren, das find ich irgendwie "more sexy".
veronesi: schönes Script. Style gefällt mir.
Der momentan eingelogte User lässt sich mit diesem Script hier rausfinden:
[autoit];--------- Detects the User which is logged on the remote system ----------
Func Userlogged($MarkedValue)
Global $sLoggedInUser = ""
Local $sLoggedInDomain = "", $sResults = ""
$objWMIService = ObjGet("winmgmts:" & "{impersonationLevel=impersonate}!\\"&$MarkedValue&"\root\cimv2")
If IsObj($objWMIService) Then
$colComputer = $objWMIService.ExecQuery("Select * from Win32_ComputerSystem")
For $objComputer In $colComputer
$sLoggedInUser = $objComputer.UserName
Next
If StringInStr($sLoggedInUser,"\") Then
$iSplit = StringInStr($sLoggedInUser,"\")
$sLoggedInDomain = StringTrimRight($sLoggedInUser,(StringLen($sLoggedInUser) - $iSplit)+1)
$sLoggedInUser = StringTrimLeft($sLoggedInUser,$iSplit)
EndIf
;If $sLoggedInDomain <> "" Then $sResults &= "Logged in domain: " &$sLoggedInDomain &@CRLF
If $sLoggedInUser = "" Then $sLoggedInUser = "n.a."
Else
$sLoggedInUser = "n.a."
EndIf
Return $sLoggedInUser
EndFunc
Hier sei dem Ersteller von "scriptomatic" ein Kränzchen gewindet, das wurde hiermit realisiert. (falls Du das nicht kennst, ist ne tolle Sache, unbedingt mal angucken)
Möchte mich für die zahlreichen Antworten bedanken, ist n tolles Forum, in welchem man wirklich Hilfe kriegt.
![]()
Alles Liebe und so..
Florian
Hier in der Firma ist offiziell das Erfragen von Passwörtern nicht erlaubt. Trotzdem wird's gemacht. Weil es - und das muss halt jetzt einfach mal hingenommen werden - nicht anders machbar ist, unter den gegebenen Umständen. Bitte erspart mir die Details.
Um diese Passwort-Fragerei wenigstens so zu gestalten, dass ich das Passwort zwar für eine Weile (First Login plus Konfiguration) verwenden kann, jedoch dasselbe nie wirklich zu Gesicht bekomme, möchte ich eine Lösung realisieren, die oben beschrieben ist. Das First Login kann ich nicht automatisieren, weil danach einiges konfiguriert werden muss. Wir "customizen" hier die Maschinchen jeweils auf die unterschiedlichste Weise, es würde Jahre dauern, für jegliche Konfigurations-Arten das passende Script zu schreiben. Ich MUSS die Möglichkeit haben, mit den Benutzerdaten einloggen zu können.
Klar könnte ich in der AD das Passwort ändern, da ich auch im Accounting arbeite. Jedoch benutzen wir hier eine Art übergeordnete Benutzerstruktur, die in sämtlichen Systemen, die daran angehängt sind, das Passwort dann gleich mit ändert. (SSO) Direkt in der AD wird hier - was Passwörter angeht - nichts gemacht. Ausserdem empfinde ich das Ändern des Passworts als .. naja... unschön, und nicht als ganz so bequem für den Benutzer.
psexec-Zeugs fällt weg, weil ich da was auf meinem Rechner installieren muss, was nicht standardmässig auf den Rechner gehört. Wenn es anders machbar ist, dann lieber ohne psexec.
Aber anscheinend gibt es hierfür keine wirkliche Lösung, oder niemanden, der mich versteht, oder ich bin zu dämlich, um eindeutig rüberzubringen, was ich realisieren möchte. *ggg*
Aber ich glaub, ich werde das ganz einfach machen: Ich ruf den User an, schick ihm ein kleines Script auf seinen Rechner, welches er dann selbst starten soll. Er gibt dann das Passwort ein, dieses wird mir verschlüsselt geschickt, ich lasse es von meinem Programm dann entschlüsselt für's First Login verwenden auf dem Zielrechner.
Dennoch vielen Dank für die zahlreichen Informationen... bin halt erst am Anfang von AutoIT, und weiss noch nicht, was da alles so möglich ist.
Lieber Gruss
Floh
Joa, Thread-Ersteller is wieder hier. Danke für die Antworten.
Ich hab jetzt mal grundsätzlich ein paar Fragen: Es ist doch möglich, mittels Auto-IT remote ein Programm auf einem remote Rechner zu starten, oder?
Wenn ja, dann kann ich doch ein compiletes Script auf den Rechner kopieren, dieses laufen lassen?
Dieses Script öffnet dann nämlich ein Fenster, wo der User das Passwort eingibt, und verschlüsselt wegschickt. Oder von mir aus auf seinem Rechner ablegt, und ich geh's dann abholen. (Wir haben hier Admin Rechte auf allen Maschinen)
Nachdem das Passwort so hinterlegt wurde, kann ich das Script auf dem Remote-Rechner wieder löschen.
Wenn das obige möglich ist, dann schaff ich den Rest. Was ich also brauche:
---->Hilfe, wie man ein Programm auf einem Remote Rechner startet. So, dass das Programm dann nicht auf meinem Rechner läuft, sondern auf dem Rechner des Benutzers. <----
Also reduziert sich mein Thread auf diese eine Frage, ob das möglich ist. (Frage 1, ganz oben)
Ich brauche keine Umgehungslösung, sondern .. naja.. genau das da oben.. :-))...
Salü miteinander
Ich möchte mein Script erkennen lassen, ob es sich bei einem gepingten wert um einen Netzwerkprinter handelt. kann mir jemand sagen, welchen Befehl ich auf seinen Returnwert nehmen könnte, um dies möglichst schlank und schnell zu bewerkstelligen?
(PC's identifiziere ich, indem ich einen FileExists auf sein C:\ mache... aber wie geht das bei Druckern? ist da vielleicht ein gewisser Port offen, der bei PC's zu ist?)
Wäre cool, wenn da jemand das adäquate Hintergrundwissen hätte... :-))
Ja, genau.. Nummer 1 ist es. Der User ist eingeloggt, arbeitet an seinem alten PC. Ich ruf ihn an, sag ihm, dass ich seinen neuen PC grad fit mache, und hierfür sein Passwort benötige. Und genau diese Aktion möchte ich elektronisieren, sprich, auf seinem Bildschirm kommt dann eine InputBox, er schreibt sein Passwort rein. Nach ok-klicken wird das Passwort verschlüsselt, und in einer Variable meines laufenden Scripts gespeichert. Den rest drumrum hab ich schon realisiert, ich brauch bloss die InputBox auf dem remote Rechner und weiss nicht wie.
(sorry wenn ich mich umständlich ausdgedrückt habe)
Vielleicht muss ich noch etwas Info liefern. Ich starte den VNC service auf remote maschine, setz dessen VNC reg-keys (temporär) auf "noAuthentication", dann gelange ich auf dessen Desktop mit der Anzeige, wo man "ctrl+alt+del" drücken muss, um zum Login fenster zu gelangen.
Wenn ich jetzt via "Send(blabla, blabla)" ein Ctrl+Alt+Del schicke, und dann den Usernamen, und dann ein Tab, und dann jenes vom programm wieder entschlüsselte Passwort, dann sehe ich das Passwort ja eigentlich gar nie, kann aber einloggen, und sämtliche Einstellungen tätigen.
Also für mich als "Entwickler", der den Key kennt, ist das tatsächlich so, wie Du sagst. Aber für denjenigen, der das Passwort dann benutzt (via send-befehl), der kriegt das Passwort ja nie zu sehen, und das würde eigentlich reichen.
Haste hier zufällig was auf Lager? Wie gesagt, ich brauch bloss einen Anstoss, wie ich eine Meldung auf den momentan verwendeten PC des Benutzers bekomme, wo dann das Passwort eingegeben werden kann. Sprich: ich möchte (vermutlich) ein Script auf dem Remote Rechner ausführen lassen, welches eine Benutzereingabe ermöglicht.
Hallo zusammen
Ich möchte, dass bei einem Benutzer ein Fenster aufpoppt, und er da einen einzeiligen, ca. 20 Zeichen langen Code eingeben kann. Dieser Code soll dann auf meinen Rechner übertragen werden. (vorher am liebsten verschlüsselt, da es sich um ein Passwort handelt)
Wie lässt sich sowas realisieren? Hat mir da jemand einen "Hint", wie der beste Ansatz ist? Ich bin noch sehr neu im Gefilde von AutoIT, darum seid bitte gnädig.
Ziel der Sache ist: Wir führen hier "First Logins" für Benutzer aus, wenn die einen neuen Rechner kriegen. Da müssen wir immer das Passwort zurücksetzen, oder gar den Benutzer danach fragen. Eigentlich wäre das aber in den Enterprise Policies verboten, überhaupt danach zu fragen, geschweige denn dies mitzuteilen.
Mein Lösungsansatz wäre, dass der Benutzer uns das Passwort gar nicht mitteilen muss, sondern dass wir dieses in einem File verschlüsselt gespeichert bekommen. Mein Programm kann dann via VNC auf den Rechner zugreifen, und das First Login automatisiert durchführen.
Wäre froh um ein klitzeklein wenig Hilfe... ![]()
Lg
ps: ver- und entschlüsseln sowie diese Info in einem File speichern/abrufen kann ich bereits, ebenso die VNC Verbindung zum Remote Rechner aufbauen. Fehlt mir nur die Benutzereingabe, die remote geschehen soll.
Floh
Wenn man Run aufruft und dies nicht klappt könnte man ja mal einfach den übergebenen String ausgeben lassen (Consolewrite, Msgbox) um zu überprüfen was an diesem Aufruf nicht stimmt.
Unter Umständen würde man vielleicht sehen das z.B. ein Leerzeichen fehlt oder ähnliches...Ansonsten lässt es sich für uns natürlich schlecht testen und nachvollziehen da diese Netzwerkkonfiguration hier ja nicht existiert.
Ich schliesse mich dem an. Hatte ein ähnliches Problem, welches durch die einfache Verwendung von MsgBox nicht ersichtlich wurde. Ich hatte dann den "idiotischen" Einfall, mal vor und hinter die in MsgBox ausgegebene Variable einen Doppelpunkt zu machen. (wäre in Deinem fall MsgBox(0,"File",":" & $Reg & ":"), und da sah ich, dass sich in meinen String, ausgelesen aus einer *.txt - Datei, ein @crlf (neueZeile-Enter) eingeschlichen hatte. Vielleicht liegt bei Dir was ähnliches vor. Habe mir dann mit "StringStripWS" und "StringStripCR" ausgeholfen, nützliche Funktion :-).
Eine andere Möglichkeit könnte sein, dass dem User ggf. die Berechtigungen fehlen, um Reg-Keys in die Registry reinzuschreiben.
Sonnige Grüsse aus der Schweiz (okay, es kübelt aus Bechern, aber egal)
Floh
Danke erstmal. Hat leider nicht den erwünschten Effekt bewirkt. Aber ich habe das ganze dann auf andere Weise realisiert, sodass es gar nicht zu diesem Problem kam.
Lieber Gruss
Flo
Salü Leute
ich schreibe grad ein Support-Tool für Remote Support. Dabei habe ich folgendes Problem:
mein Script wird durch die Tastenkombination "Alt+Ctrl+$" aufgerufen. Nun denn...der Supporter kann einen Computernamen markieren. Tastenkombination -> Tool rattert los. Benutzt ein Supporter jedoch den Shortcut, der auf dem Desktop liegt, sollte sich das Setup Menue für das Tool öffnen.
wenn ich das folgende Script verwende, wird komischerweise beim Doppelklicken des Shortcuts der zuvor kopierte Wert verwendet (was auch immer das war)
erst beim ZWEITEN mal verwendet das tool dann den return-wert des shortcuts (was der dateiname des shortcuts ist) .. ich möchte, dass dies schon beim ersten mal passiert. (tatsächlich..wiederholt man den doppelklick auf den shortcut, dann funzt es)
1) warum ist das so?
2) weiss da jemand eine lösung?
[autoit]
#include <GuiConstantsEx.au3>
#include <AVIConstants.au3>
#include <TreeViewConstants.au3>
#include <IE.au3>
#include <File.au3>
#include <Clipboard.au3>
;variables
Local $Listview
Global $MarkedValue
Global $NumberOfConditions=0
Global $WhatIsIt=0
;************************************ start of script ************************************
;getMarkedValue
#Cs
_ClipBoard_Empty()
_ClipBoard_Close()
_ClipBoard_Open(0)
#ce
send("^c")
MsgBox(0," ", ClipGet())
wenn man die #cs / #ce wegnimmt, (versuchsweise eingebaut) dann wird zwar immer beim ersten mal der korrekte wert reinkopiert, jedoch liefert die verwendung des shortcuts immer "".. also nix..
Ich nerv mich grad, und hoffe, dass mir da jemand mitteilen kann, wie ich das problem lösen oder umgehen kann. steh aufm Schlauch.
Lieber Gruss ausser Schweiz
Flo
ps: ausserdem bin ich neu mit Auto-IT, und sowieso ned ne Riesen-Leuchte im Scripten..