Probleme mit dem Befehl "RunAsSet" unter WinXP

  • Hallo,

    ich habe folgendes Problem: ich möchte mit einem kleinen Skript eine Software automatisch installieren - dass heißt, grob gesagt, wenn sich ein Benutzer (ohne Admin-Rechte) anmeldet, dann wird diese Software installiert und noch ein paar Kleinigkeiten erledigt - das funktioniert auch gut, bis auf eine Sache: ich möchte im AllUsers-Programmpfad einen Ordner mit Verknüpfungen anlegen und auf dem AllUsers-Desktop ebenfalls. Dazu habe ich den Befehl "RunAsSet" verwendet - nur leider funktioniert der nicht. Wenn ich mich allerdings direkt als Admin anmelde und das Skript ausführe, dann funktioniert es wie es soll. Hat da jemand eine Idee ?


    Viele Grüße

  • ..das Betriebssystem ist Windows XP. Das Skript, welches die Verknüpfungen erstellen soll, wird aus einem anderen Skript aufgerufen. Hier mal der Code:


    Spoiler anzeigen
    [autoit]


    #include <file.au3>
    #include "functions.au3"
    $user = EnvGet("username")
    $pc = EnvGet("computername")
    $os = @OSVersion
    $checklogpfad = "\\aquarius\notes_install\log\" & $user & "-" & $pc & "-" & $os & ".txt"
    $realini = IniRead("\\aquarius\notes_install\log\" & $user & "-" & $pc & "-" & $os & ".ini", "Notes", "realini", "Schlüssel nicht gefunden")
    ;wenn aus der $user-$pc-$os.ini die realini nicht ermittelt werden kann, wird Iconen.exe abgebrochen (neu!)
    RunAsSet("domänenadmin", "domäne", "passwort")
    If $realini = "Schlüssel nicht gefunden" Then
    _FileWriteLog($checklogpfad, "[Skript Iconen]...*** Fehler *** $realini konnte nicht gefundenwerden.")
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Dim $pfade[5]
    $pfade[1] = @DesktopDir
    $pfade[2] = @DesktopCommonDir
    $pfade[3] = @StartMenuDir
    $pfade[4] = @StartMenuCommonDir

    [/autoit] [autoit][/autoit] [autoit]

    For $i=1 To UBound($pfade)-1
    FileChangeDir($pfade[$i])
    If @error Then
    _FileWriteLog($checklogpfad, "[Skript Iconen]...*** Fehler *** In dieses Verzeichnis konnte nicht gewechselt werden: " & $pfade[$i])
    EndIf
    $search = FileFindFirstFile("*notes*.lnk")
    While $search <> -1
    $datei = FileFindNextFile($search)
    If @error Then ExitLoop
    FileDelete($datei)
    _FileWriteLog($checklogpfad, "[Skript Iconen]...Folgende Datei wurde gelöscht: " & $datei)
    WEnd
    Next

    [/autoit] [autoit][/autoit] [autoit]

    FileClose($search)
    DirRemove(@ProgramsCommonDir & "\Lotus Anwendungen", 1)
    _FileWriteLog($checklogpfad, "[Skript Iconen]...Der Ordner 'Lotus Anwendungen' wurde erfolgreich gelöscht.")
    _FileWriteLog($checklogpfad, "[Skript Iconen]...Neue Verknüpfungen werden erstellt.")
    FileCreateShortcut("D:\Programme\Lotus\Notes\notes.exe", @DesktopCommonDir & "\Lotus Notes 7.lnk","D:\Programme\Lotus\Notes\","""="& $realini &"notes.ini""", "Lotus Notes 7", "D:\Programme\Lotus\Notes\notes.exe", "^!l", "", @SW_SHOWMAXIMIZED)
    $shortcut=@DesktopCommonDir & "\Lotus Notes 7.lnk"
    DirCreate(@ProgramsCommonDir & "\Lotus Anwendungen")
    FileCopy($shortcut, @ProgramsCommonDir & "\Lotus Anwendungen",1)
    _FileWriteLog($checklogpfad, "[Skript Iconen]...Neue Verknüpfungen wurden erstellt.")
    RunAsSet()
    Exit

    [/autoit]

    Einmal editiert, zuletzt von peethebee (3. Mai 2007 um 14:59)