Vom Makefile aus eine dll im C:\Program\progr\ erzeugen

Gast #3203349
Lesenswert?
• ▲
▼
Hallo,
für ein installiertes Programm (Windows 7) möchte ich Plugins als *.dll 
bereitstellen. Diese müssen sich im entsprechenden Ordner befinden unter 
C:\Programme.
Aber das Makefile (mingw32-make) kann das nicht reinkopieren.
Per Hand im File-Explorer lässt sich das zwar reinkopieren, aber es 
kommt ein Dialog-Box, dass man dafür Administrator-Rechte braucht und 
diese muss man bejahen. Dann kopiert Windows die dll in das Verzeichnis.
Aber ich würde es so haben wollen, dass es im Make-Lauf schon 
reinkopiert wird.
Vorschläge?
#3203381
Lesenswert?
• ▲
▼
Ab Vista wird "Dateien im Programme-Ordner anfassen" von Windows als 
sicherheitsrelevant angesehen.

Wird etwas als Administrator ausgeführt, darf das machen was sonst nur 
ein Administrator darf. (Rechtsklick "Ausführen als Administrator") Also 
auch Dateien in relevante Ordner schreiben.

Installationsprogramme dürfen aber auch weiterhin in den 
Programme-Ordner installieren.

Vom Programm änderbare Dateien möchte Windows dann bevorzugt im 
Anwendungsdaten/.../Programm- oder Benutzer-Ordner abgelegt haben also 
die ganzen *.ini, *.cfg etc.

Ansonsten fängt Windows dann auch gern an, Schattenkopien anzulegen.
Gast #3203383
Lesenswert?
• ▲
▼
> Natürlich Installationen als Administrator durchführen

Sowohl MinGw als das Programm mit Plugin musste ich natürlich mit 
Admin-Rechten installieren. Ohne kann man nur in sein users- Verzeichnis 
oder users\public installieren.

> einfach die Rechte für das Verzeichniss anpassen und gut ist.
Das geht beim c:\programs Verzeichnis? Ok, werde ich ausprobieren. Danke
Persönliche Seite #3203501
Lesenswert?
• ▲
▼
Peter II schrieb:
> warum sollte er sich auf seinen eingenem PC an irgendwelche Richtlinien
> halten?

Nun, so hebelt er einen Teil der Sicherheitsarchitektur seines Rechners 
aus, und so kann jedes beliebige Programm, das er aufruft, auch auf 
dieses Verzeichnis zugreifen, und dort ... interessante Dinge 
veranstalten.

Nicht alles, was sich Microsoft einfallen lässt, ist eine schlechte 
Idee.

Es sollte möglich sein, ein Batchfile so zu schreiben, daß darin die 
erforderliche "Elevation" stattfindet, damit die Datei kopiert werden 
kann. Ja, das erfordert dann zusätzliche Mausklicks oder gar 
Passworteingaben, aber das sollte einem das bisschen Sicherheit, was MS 
hier vorgesehen hat, schon wert sein.

Hier wird das erforderliche Verfahren beschrieben:

http://technet.microsoft.com/en-us/magazine/2008.06.elevation.aspx
Gast #3203539
Lesenswert?
• ▲
▼
Rufus Τ. Firefly schrieb:
> Nicht alles, was sich Microsoft einfallen lässt, ist eine schlechte
> Idee.

sagt ja auch keiner, ich hätte auch schreiben können die UAC abschalten. 
Dies ist auch grundsätzlich vorgesehen und hebelt die Sicherheit 
komplett aus.

Es ist einfach nicht praktikabel wenn man alles 2min eine neue DLL baut, 
jedes mal ein dialog wegzuklicken. Irgedwann ist das dann so im Hirn 
drin das man ihn nur noch ignoriert.

Er könnte auch einfach eine link zum dem Plugin verzeichniss legen, 
damit sollte das auch gehen.
Persönliche Seite #3203552
Lesenswert?
• ▲
▼
Peter II schrieb:
> Er könnte auch einfach eine link zum dem Plugin verzeichniss legen,
> damit sollte das auch gehen.

Nö, wenn das die Zugriffsberechtigungen für das Verzeichnis umgehen 
würde, wäre das ein wahrlich beeindruckendes Sicherheitsloch.

Andersherum wäre es vermutlich einfacher, wenn die das Plugin-Zeug 
nutzende Software nicht unterhalb von "\Programme", sondern an anderem 
Ort installiert würde. Fragt sich nur, ob das auch das 
Plugin-Verzeichnis betrifft.

Man könnte auch in der Registry nachsehen, ob das Plugin-Verzeichnis 
möglicherweise darin konfigurierbar ist, und das dann aus \Programme 
herauskopieren.

Noch eine Möglichkeit bestünde aus einem Skript, das per Scheduler 
aufgerufen wird und im Benutzerkonto "System" läuft - das kopiert die 
DLL von einem anderen Ort ans eigentliche Ziel.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren