1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. FKFK

Beiträge von FKFK

  • SetPermissions-UDF: Berechtigungen werden entfernt

    • FKFK
    • 20. Mai 2014 um 10:40

    Hallo alle zusammen,

    ich nutze die Set-acl-permissions-udf aus dem englischen Forum: http://www.autoitscript.com/forum/topic/13…ermissions-udf/
    Damit möchte ich die Berechtigungen für einen Ordner setzen. Bis gestern Nachmittag hat das einwandfrei geklappt. Seit dem löscht er plötzlich alle vorhanden Berechtigungen statt sie zu ergänzen.
    Wie kann ich das so einrichten, dass die neue Berechtigung hinzugefügt wird, ohne Vorhandenes zu überschreiben?
    Vielleicht habe ich irgendwo einen Leichtsinnsfehler :)

    mein Quellcode
    [autoit]


    Local $aBerechtigungen[1][3] = [['Test-Gruppe', 1, $GENERIC_ALL]] ;Erzeugt passendes Berechtigungsarray
    _SetObjectPermissions($sPath, $aBerechtigungen, $SE_FILE_OBJECT, '', 0, 1)

    [/autoit]
    Funktionsbeschreibung von _SetObjectPermissions
    [autoit]


    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _SetObjectPermissions
    ; Description ...: Sets the access permissions for a given object.
    ; Syntax.........: _SetObjectPermissions($oName, $_SE_OBJECT_TYPE, $aPermissions, $SetOwner, $ClearDacl, $Recurse)
    ; Parameters ....: $oName - The handle or name of the object. This can be a path to a file or folder, a registry key, service name,
    ; +a handle to a window or process, etc. See the comments on the _SE_OBJECT_TYPE enum for more info
    ; $aPermissions - A bi-dimensional array containing info on the aces to add. The info must be on the folowing format:
    ; $array[n][0] - The user name or Sid string to add. 'Everyone', 'Administrators', and 'System' are also allowed.
    ; $array[n][1] - The access type to set. A value of 1 grants acecess, 0 denies access.
    ; $array[n][2] - The access mask. This must be one or more of the access mask constants. Use BitOR to combine.
    ; $array[n][3] - (optional) The inheritance flag for the ace. Can not have the $INHERITED_ACE or the $INHERIT_ONLY_ACE flags.
    ; $_SE_OBJECT_TYPE - The type of the object to set permissions. This must be one of the values of the
    ; +_SE_OBJECT_TYPE enum.
    ; $SetOwner - The user name to set as the owner of the object. Leaving blank '' will make no changes to the owner.
    ; $ClearDacl - Whether to clear the existing DACL. If this value is 0, the new aces will be merged to the existing
    ; +inherited aces.
    ; $Recurse - For folders or registry keys, setting this value to 1 will make the function set the same permissions to
    ; +all the sub containers and objects.
    ; $InHerit - The object's inheritance flag. Can be a combination of the inheritance contants.
    ; +The default is 3 ($SUB_CONTAINERS_AND_OBJECTS_INHERIT)
    ; Return values .: Success - 1
    ; Failure - 0 and sets @error: 1- Bad formated array of permissions; 2 - Unable to initialize the Dacl
    ; Author ........: FredAI
    ; Modified.......:
    ; Remarks .......: If using a folder or registry key handle rether than the name, the recursion will be ignored
    ; Related .......: _EditObjectPermissions, _GrantReadAccess, _GrantAllAccess, _DenyAllAccess, _GrantReadDenyWrite
    ; Link ..........:
    ; Example .......:
    ; ===============================================================================================================================
    Func _SetObjectPermissions($oName, $aPermissions, $_SE_OBJECT_TYPE = $SE_FILE_OBJECT, $SetOwner = '', $ClearDacl = 0, $Recurse = 0, $InHerit = 3)
    If $ResourcesState = 0 Then _InitiatePermissionResources()
    If Not IsArray($aPermissions) Or UBound($aPermissions,2) < 3 Then Return SetError(1,0,0)
    Local $DACL = _CreateDaclFromArray($aPermissions,$InHerit)
    Local $HasDeniedAces = @extended
    Local $SECURITY_INFORMATION = 4, $pOwner = 0
    If $SetOwner <> '' Then
    If Not IsDllStruct($SetOwner) Then $SetOwner = _GetSidStruct($SetOwner)
    $pOwner = DllStructGetPtr($SetOwner)
    If $pOwner And _IsValidSid($pOwner) Then
    $SECURITY_INFORMATION = 5
    Else
    $pOwner = 0
    EndIf
    EndIf
    If Not IsPtr($oName) And $_SE_OBJECT_TYPE = $SE_FILE_OBJECT Then
    Return _SetFileObjectSecurity($oName, $DACL, $pOwner, $ClearDacl, $Recurse, $HasDeniedAces, $SECURITY_INFORMATION)
    ElseIf Not IsPtr($oName) And $_SE_OBJECT_TYPE = $SE_REGISTRY_KEY Then
    Return _SetRegObjectSecurity($oName, $DACL, $pOwner, $ClearDacl, $Recurse, $HasDeniedAces, $SECURITY_INFORMATION)
    Else
    If $ClearDacl Then _ClearObjectDacl($oName,$_SE_OBJECT_TYPE)
    Return _SetObjectSecurity($oName, $_SE_OBJECT_TYPE, $SECURITY_INFORMATION, $pOwner, 0, $DACL,0)
    EndIf
    EndFunc ;==>_SetObjectPermissions

    [/autoit]

    Vielen Dank!

    LG

  • RunWait: Angry IPscanner liefter Return Code direkt nach Start

    • FKFK
    • 12. August 2013 um 16:58

    Hi, danke für deine Rückmeldung!
    Bei mir geht es auch bei ShellExecuteWait nicht. Ich habe dieses Programm verwendet: http://sourceforge.net/projects/ipsca….2.exe/download

    Und folgenden Befehl:

    [autoit]

    $iReturnCode = ShellExecuteWait($sSoftwarePfad, '-s -q ' & '-f:range ' & $sIPBereich & ' -o ' & $sSaveAs, "", "", @SW_MINIMIZE)

    [/autoit]

    Hattest du es mit dem gleichen Programm getestet?

  • RunWait: Angry IPscanner liefter Return Code direkt nach Start

    • FKFK
    • 9. August 2013 um 09:48

    Ja, das macht das etwas komplizierter :)
    Hm, der Angry IPscanner wird eigentlich immer mit Java gestartet, deswegen macht es kaum einen Unterschied.
    Ich frage mich auch, was passiert, wenn ich mehrere Male das gleiche Programm starte.
    Irgendwie müsste ich dann vor dem Starten des Prozesses die gestarteten Programme prüfen, ob Java schon läuft, damit man das Ausschlussverfahren anwenden könnte oder man müsste irgendwie vom Prozessstartzeitpunkt ausgehen oder so.

    Am genialsten wäre, wenn ich einfach die PID von dem Prozess erzeuge, den die Anfangs-Exe gestartet hat. Ich habe mir mal mit dem ProcessMonitor angeschaut, was die Anfangs-Exe so treibt, innerhalb von ca. 2 Sekunden treibt sie nämlich einiges. Mir ist aber nichts verwertbares aufgefallen...

  • RunWait: Angry IPscanner liefter Return Code direkt nach Start

    • FKFK
    • 8. August 2013 um 18:17
    Zitat von Joriktos

    Wie heißt der neue Prozess?


    Der neue Prozess ist Java: javaw.exe
    Das Fenster hat den Namen des Angry IP Scanners.

  • RunWait: Angry IPscanner liefter Return Code direkt nach Start

    • FKFK
    • 8. August 2013 um 14:38

    Hallo alle zusammen,

    ich möchte eine Funktion um das Programm Angry IPscanner bauen. Der Angry IPscanner wurde mit Java programmiert.
    Diese soll ihn über ein RunWait mit Parametern starten und anschließend die erstellte Ergebnisdatei abfangen.
    Leider liefert das Programm direkt am Anfang den ReturnCode und somit geht das Skript direkt weiter: RunWait nutzt nichts.
    Hat jemand eine Idee, wie ich das lösen kann?
    Bringt es etwas über Run die PID zu erhalten und dann auf ProcessClose zu warten? Funktioniert das mit Java? Gibt es noch andere Möglichkeiten?

    LG FKFK

    //edit:
    Ich habe herausgefunden, dass die Programm-Exe eigentlich eine Java-Exe startet.
    Gibt es eine Möglichkeit herauszufinden, welche PID der Java-Prozess hat, der durch die andere Exe gestartet wird? Ansonsten müsste ich das ja über den Fensternamen herausfinden? Das wäre aber recht unsicher.

  • http://translation.autoit.de/hilfe.php nicht erreichbar

    • FKFK
    • 26. April 2013 um 18:44

    Danke für deine Antwort :)
    Gibt es bereits einen Hinweis, wann sie wieder erreichbar ist?

  • http://translation.autoit.de/hilfe.php nicht erreichbar

    • FKFK
    • 17. April 2013 um 21:06

    Danke für die Links. Ich habe die deutsche Hilfe schon heruntergeladen ;)
    Der Link, den ich gepostet habe, erhält man, beim Klicken auf das Q neben "Hilfe Detusch 12/28/2012" (Rubrik Downloads links).
    Dort habe ich immer sowas Hilfreiches gefunden, wie die deutschen Beispiele der UDFs, auf die in der Hilfe zugegriffen wird und außerdem die au3.api für die Übersetzung der Quickinfo im ScITE. Dieser Link funktioniert nun nicht mehr :S

  • http://translation.autoit.de/hilfe.php nicht erreichbar

    • FKFK
    • 17. April 2013 um 18:26

    Hallo zusammen,

    die Seite http://translation.autoit.de/hilfe.php ist nicht mehr erreichbar: Fehler 404 Not Found
    Gibt es eigentlich schon Hinweise, wann die nächste AutoIt-Version herauskommt? Es wird wohl schon seit einem Jahr entwickelt :)

    LG FKFK

  • Von einem NTP-Server Zeit und Datum ermitteln und auswerten

    • FKFK
    • 10. Februar 2013 um 00:14

    Vielen Dank für die UDF!
    Es hat alles gut funktioniert!

    Wie hast du eigentlich die Hilfe dafür erstellt? Mit welchem Programm geht das?

  • Zeitsynchronisierung bei defekter BIOS-Batterie

    • FKFK
    • 10. Februar 2013 um 00:11

    Danke, dass hat sehr gut funktioniert :)

  • Von einem NTP-Server Zeit und Datum ermitteln und auswerten

    • FKFK
    • 9. Februar 2013 um 16:29

    Erstmal danke, dass diese Funktion erstellt wurde.
    Gibt es dazu schon Erfahrungsberichte? Wurde die UDF schon erfolgreich eingesetzt?

  • Zeitsynchronisierung bei defekter BIOS-Batterie

    • FKFK
    • 9. Februar 2013 um 15:38

    Hallo alle zusammen,

    ich beschäftigte mich gerade mit einem Laptop, bei dem die BIOS-Batterie-Halterung abgebrochen ist und der Akku defekt.
    Das Löten hat für mich ein zu hohes Risiko und ein neuer Akku ist fast mehr wert als der Laptop ;)
    Bekanntlich ist das Datum beim Starten dann irgendwo im 20. Jahrhundert.
    Wegen dem falschen Datum funktioniert die automatische Zeitsynchronisierung nicht (laut System: aus Sicherheitsgründen). Ich überlege mir, wie die Zeit bei jedem Hochfahren trotzdem automatisch synchronisiert werden kann.
    Ob ich die Kontrolle des Datums über eine Gruppenrichtlinie abschalten kann, habe ich noch nicht herausgefunden.

    Eine andere Möglichkeit wäre ein Skript zu schreiben. Mit Zeitsynchronisierung kenne ich mich noch nicht so aus.
    Ich weiß, dass man die Zeit über die Date-Management-UDFs setzen kann. Kennt sich jemand mit der Zeitabfrage übers Internet aus?

    Vielen Dank schonmal :)

    LG FKFK

  • Array oder String+Stringsplit schneller?

    • FKFK
    • 23. Januar 2013 um 18:08

    In Zeile 8 ist es praktischer, wenn man als Index $i nimmt oder?

  • Array oder String+Stringsplit schneller?

    • FKFK
    • 23. Januar 2013 um 09:50

    Danke für das anschauliche Beispiel :)
    Da die Arraygröße erst am Schluss bekannt ist, ist stringsplit wohl die beste Lösung.

  • In Datei suchen

    • FKFK
    • 22. Januar 2013 um 16:49

    Sorry, ich meine natürlich einen String mit Inhalt z.B. suche nach dem String "Admin"

  • In Datei suchen

    • FKFK
    • 22. Januar 2013 um 16:43

    Hallo zusammen,

    in meinem Skript durchsuche ich den PC nach einer Datei.
    Anschließend möchte ich den Inhalt der Datei durchsuchen, ob ein String enthalten ist.
    Muss ich dazu FileRead und strininstring machen oder gibt es eine bessere Möglichkeit?

    LG FKFK

  • Array oder String+Stringsplit schneller?

    • FKFK
    • 22. Januar 2013 um 16:39

    Hallo zusammen,

    was ist schneller:

    • String ständig mit $string &= $variable & "|" befüllen
      zum Schluss $array = stringsplit($string, "|")
    • arrayadd($array, $variable)

    LG FKFK

  • Herausfinden in welchen Tasks etc. der Admin-Account verwendet wurde

    • FKFK
    • 22. Januar 2013 um 14:11

    Danke, das ist eine gute Idee :)
    Dann sollte ich schon eher ein Skript erstellen statt mit TotalCommander zu arbeiten oder?

  • Herausfinden in welchen Tasks etc. der Admin-Account verwendet wurde

    • FKFK
    • 20. Januar 2013 um 19:21

    Hm, das stimmt schon :)
    Ist das auch möglich, mehrere Server gleichzeitig von einem Programms aus zu durchsuchen? Es geht nämlich um mehr als eine handvoll Server. Das wäre natürlich wesentlich schneller, als das bei jedem einzeln zu machen...

  • InetGetSource mit POST

    • FKFK
    • 20. Januar 2013 um 11:18

    Guten Morgen,

    vielen Dank für diese tolle Funktion.
    Es wäre toll, wenn auch noch der Port über die URL übergeben werden kann.
    Ich denke, dass man, in der Zeile bevor TCPStartup steht, mit String-Split ein kleines Array mit IP und Port erzeugen könnte. In den HTTP-Header muss der Port nicht eingebaut werden oder?

    LG FKFK

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™