Wo soll ich meine Anwendungen unter Windows 7 xcopy bereitstellen?

983
bitbonk

Ich habe einige Anwendungen, die mit Xcopy installiert werden. Ich weiß, dass diese Anwendungen zur Laufzeit einige Daten in ihr installiertes Verzeichnis schreiben werden. Jetzt möchte ich, dass diese Anwendung für alle Benutzer auf meinem PC über das Startmenü verfügbar ist. Wo stelle ich diese App unter Windows 7 ab? Ist es noch "c: \ Programme"? Wenn ja, brauchen die Apps keine Administratorrechte, um in dieses Verzeichnis zu schreiben? Tritt hier das Roaming ein? Wenn ja, wie kann ich verhindern, dass die App in einen speziellen Roaming-Ordner pro Benutzer schreibt und stattdessen in den einen Ordner schreibt, in dem sich das Exe befindet?

Update (Umformulierung der Frage):

Was ist die vorgeschlagene / bevorzugte / offizielle Methode, um eine Anwendung (nur einen Ordner mit einem Exe-Ordner und einige zusätzliche Dateien) auf einem Windows 7-PC eines Kunden bereitzustellen, so dass:

  1. es steht allen Benutzern zur Verfügung (jeder kann das Exe oder eine Verknüpfung dazu doppelklicken)
  2. es gibt nur eine Instanz der Dateien (keine Kopie für jeden Benutzer)
  3. Der Exe kann in demselben physischen Ordner lesen und schreiben, in dem er sich befindet (damit er dieselben Dateien liest, unabhängig davon, von welchem ​​Benutzer die App ausgeführt wird).
  4. Es erscheint kein UAC-Dialog, der nach privilegierten Rechten fragt, wenn das Exe ausgeführt wird (das Exe-Programm selbst macht nichts, was dies erfordert).
3
Bitte nicht einfach abstimmen. Erklären Sie (in den Kommentaren), warum Sie diese Frage abgelehnt haben, damit ich sie verbessern kann. bitbonk vor 11 Jahren 0
Handelt es sich bei diesen Anwendungen um geschriebene oder kommerzielle Produkte? Dave vor 11 Jahren 0
Diese Frage liest sich wie ein XY-Problem. Können Sie erklären, warum Sie dies versuchen, bitte, es gibt möglicherweise eine andere Lösung für Sie. Dave vor 11 Jahren 0
Können diese einfach auf einer Netzwerkfreigabe leben? Auf diese Weise können Sie Berechtigungen vom Server aus steuern. Sie müssen lediglich Verknüpfungen in ein öffentliches Startmenü und / oder einen Desktop kopieren MDT Guy vor 11 Jahren 0

4 Antworten auf die Frage

3
Der Hochstapler

Wenn Sie eine Anwendung zugänglich zu sein für alle Benutzer wollen, sollte es in der installiert werden Program Files Verzeichnis ( Program Files (x86), soweit anwendbar.)

Die Anwendung kann jedoch nicht in den Ordner schreiben, in dem sie installiert ist, es sei denn, sie wurde mit erhöhten Berechtigungen gestartet (die Sie nicht möchten). Und das wäre sowieso eine schlechte Idee. Das solltest du niemals tun wollen.

Stattdessen möchten Sie benutzerspezifische Dateien in ihre Profilordner schreiben. Je nach Wunsch schreiben Sie die Daten entweder in die Roaming- oder Local-Benutzerordner. Wenn Sie es nicht wissen, fragen Sie sich, wie sich die Anwendung in einer Domänenumgebung verhalten soll. Im Allgemeinen wird das Roaming-Profil (wie der Name schon sagt) mit dem Benutzer zu anderen Arbeitsstationen geleitet. Wenn dies für Ihre Anwendung nicht erwünscht ist, verwenden Sie das lokale Profil.

Wenn Sie unbedingt gemeinsam genutzte Daten benötigen, die alle Benutzer lesen und schreiben können, dann legen Sie sie einfach nicht in das Installationsverzeichnis (zum Schreiben). Prüfen Sie beim Start Ihrer Anwendung, ob die Datei im lokalen Profil des öffentlichen Benutzers vorhanden ist. Wenn dies nicht der Fall ist, kopieren Sie die Datei aus Ihrem Installationsverzeichnis und verwenden Sie die Kopie von dort.

Das Problem ist, dass ich keine Kontrolle über den Quellcode der Anwendung habe und der Exe versucht, Dateien in den Ordner zu schreiben, in dem er sich befindet. Es ist erforderlich, dass der Exe immer in denselben physischen Ordner schreibt und die Daten für alle freigegeben sind Benutzer. bitbonk vor 11 Jahren 0
@bitbonk: In einem solchen Fall würde ich es wahrscheinlich direkt in das öffentliche, lokale Profil (aka `C: \ ProgramData`) installieren. http://superuser.com/questions/405097/are-c-programdata-and-c-users-all-users-the-same-do-i-need-beides Sie werden wahrscheinlich den Schreibvorgang anpassen müssen Berechtigungen für alle Benutzer in diesem Ordner (wahrscheinlich unter Verwendung von "icacls" in Ihrer Installationsstapeldatei). http://serverfault.com/questions/335625/icacls-granting-access-to-all-users-on-windows-7 Der Hochstapler vor 11 Jahren 1
Das klingt für mich am klügsten. Wenn Sie MDT verwenden, können Sie mithilfe eines Skripts Berechtigungen über die Befehlszeile ändern MDT Guy vor 11 Jahren 0
1
harrymc

Es ist besser, in einem solchen Fall aus zu bleiben C:\Program Files, oder C:\Program Files (x86)für 32-Bit - Programme, aufgrund der besonderen Berechtigungen in Kraft auf diesen Ordner.

Es ist viel einfacher, die Anwendung in einen anderen Ordner zu kopieren und der Gruppe Benutzer alle erforderlichen Berechtigungen für diesen Ordner zu erteilen.

Es ist leicht genug, eine Verknüpfung zum Exe zu erstellen, die Sie entweder:

  • im Verzeichnis belassen
  • auf den Desktop des Benutzers kopieren
  • Klicken Sie auf das Startmenü des Benutzers
  • Kopieren Sie in das Startmenü aller Benutzer, das sich normalerweise in befindet
    C:\ProgramData\Microsoft\Windows\Start Menu.

Die letzte Option ist möglicherweise die am einfachsten zu implementierende Option.

1
heavyd

Was ist die vorgeschlagene / bevorzugte / offizielle Methode, um eine Anwendung (nur einen Ordner mit einem Exe-Ordner und einige zusätzliche Dateien) auf einem Windows 7-PC eines Kunden bereitzustellen, so dass:

Die vorgeschlagene / bevorzugte / offizielle Methode ist nicht das, was Sie tun möchten. Die bevorzugte Methode zum Installieren von 32-Bit-Programmen, auf die alle Benutzer zugreifen können, ist die Installation im Ordner 32-Bit-Programmdateien. Die Anleitung ist, dass alle App-Daten in den CommonAppDataFolderOrdner geschrieben werden sollten .

Ihre Anforderungen widersprechen den offiziellen Richtlinien, und Sie sollten Ihre Anforderungen überdenken. Hier ist die offizielle Anleitung von Microsoft:

0
John T

Sie können es in diesem C:\Program FilesOrdner belassen. Ändern Sie einfach die Berechtigungen für den Ordner des Programms, um den anderen Benutzern die entsprechenden Zugriffsrechte in der ACL zu erteilen. Sie möchten die Vererbung im übergeordneten Ordner deaktivieren und den Benutzer "Everyone" mit den Berechtigungen, die jeder Benutzer haben soll, manuell hinzufügen.

Deaktivieren Sie die Vererbung aus dem übergeordneten Ordner und fügen Sie manuell den Benutzer "Everyone" hinzu. <- Welchen übergeordneten Ordner meinen Sie? bitbonk vor 14 Jahren 0
Wenn Sie die Berechtigungen für den Ordner Ihres Programms unter Programme bearbeiten, wird ein Kontrollkästchen zum Deaktivieren der Vererbung für diesen Ordner angezeigt, wie hier gezeigt: http://www.symantec.com/connect/sites/default/files/images/reg.GIF John T vor 14 Jahren 0
Ein großes Problem beim Ablegen von Programmen in c: \ Program Files \ ist, dass das Programm selbst nicht das Recht hat, in seinen eigenen Ordner zu schreiben. Es verwendet den Roaming-Ordner, der dazu führt, dass Anwendungsdaten auf der Festplatte verteilt werden. bitbonk vor 14 Jahren 0