Fragen Sie nach bestimmten Anmeldeinformationen, wenn Sie versuchen, eine Datei unter Windows zu öffnen

428
Tak

Ich habe eine Datei unter Windows 7 und ich möchte, wenn jemand versucht, diese Datei zu öffnen. Ich möchte, dass ein Fenster erscheint, in dem nach dem Benutzernamen und dem Kennwort gefragt wird (was sich nicht auf die Windows-Anmeldeinformationen bezieht. Diese Anmeldeinformationen werden irgendwo gespeichert.) andere Datei) und je nach Benutzername und Passwort wird eine Datei von einem Ort an einen anderen kopiert. Wenn zum Beispiel BenutzerA mit passUserA angemeldet ist, wird fileA in einen Zielordner kopiert. Wenn BenutzerB mit passUserB angemeldet ist, wird DateiB in einen Zielordner kopiert. Irgendwelche Gedanken, wie das geht?

1
Kannst du mehr Details dazu geben, * warum * du dieses Verhalten wollen oder brauchst? Jerome Indefenzo vor 7 Jahren 0
@ JeromeIndefenzo, weil ich abhängig von den Benutzeranmeldeinformationen eine Datei an einen bestimmten Speicherort kopieren möchte, bevor die Anwendung ausgeführt wird. Tak vor 7 Jahren 0
Ich meine, was sind das für Dateien, in die Sie sie kopieren? Wer verwendet die Anmeldeinformationen des Benutzers und auf welche Benutzer wird er zugreifen? Welche Datei soll die Anmeldeaufforderung auslösen? Jerome Indefenzo vor 7 Jahren 0
Das Verhalten, das du fragst, ist ziemlich hackig. Es muss einen besseren Weg geben, um die gewünschte Funktionalität zu erhalten, ohne alle möglichen Dinge manuell durchgehen zu müssen (auf das Öffnen von Dateien achten, Benutzeranmeldeinformationen verwalten, Dateien kopieren usw.). Jerome Indefenzo vor 7 Jahren 0
@JeromeIndefenzo also habe ich eine Verknüpfung einer .exe einer Anwendung. Wenn diese .exe-Datei ausgeführt wird, lädt sie eine Startdatei, die an einem bestimmten Ort gespeichert ist und in der Anwendung geladen wird. Ich habe also zwei Startdateien und abhängig von den Anmeldeinformationen des Benutzers wird eine dieser Startdateien an den Speicherort der Startdatei kopiert. Wenn ich also auf die Verknüpfung oder das Exe doppelklicke, möchte ich diesen Benutzernamen und Passworteingabe und abhängig davon wird die richtige Startdatei geladen und die Anwendung geöffnet. Tak vor 7 Jahren 0
muss es auf crednetials angewiesen sein? können Sie nicht für $ env: username oder $ env: computername gehen? SimonS vor 7 Jahren 0
@SimonS Ja, es muss abhängig von den Anmeldeinformationen sein, die statisch in eine bestimmte Datei geschrieben werden. Tak vor 7 Jahren 0
Lassen Sie die Verknüpfung auf ein PowerShell-Skript oder ähnliches verweisen, das das Setup ausführt und nach den Anmeldeinformationen fragt. Es ist leicht zu umgehen und mit diesem Setup wird es immer so sein. Es wäre wahrscheinlich sauberer, zwei Verknüpfungen (eine für jede "Version") einzurichten und nur die Benutzer mit den benötigten zu versorgen. Immer noch leicht zu umgehen, aber leichter zu warten (wahrscheinlich). Seth vor 7 Jahren 0
@Seth danke für deinen Kommentar, könntest du mir erklären oder mir einen Link schicken, wie das geht? Tak vor 7 Jahren 0

1 Antwort auf die Frage

1
Seth

Erstellen Sie ein Skript, das das erforderliche Setup ausführt, und rufen Sie das Skript mit der Verknüpfung anstelle der tatsächlichen ausführbaren Datei auf. Das Skript startet die ausführbare Datei. Dies ist leicht zu manipulieren und bietet daher keine Sicherheit. Sie müssen verwenden Set-ExecutionPolicy, um die Ausführung von PowerShell-Skripts zuzulassen.

Das Skript selbst (als .ps1Datei gespeichert) könnte folgendermaßen aussehen:

$credentials = Get-Credential  if ($credentials.Username -eq 'DOMAIN\User') { Copy-Item fromhere\startup1 tothere } elseif { Copy-Item fromhere\startup2 tothere }  MyProgram.exe 

Dieses Skript würde die Anmeldeinformationen NICHT verifizieren, nur dass der richtige Benutzername ausgewählt wurde. Sie können auf diese Weise eine beliebige Anzahl von Aktionen ausführen, und der Benutzer kann die ausführbare Datei trotzdem direkt starten, wenn er / sie dies wünscht.

Ist es möglich, dieses Skript so zu schützen, dass niemand es bearbeiten oder den Benutzernamen und das Kennwort sehen kann? Tak vor 7 Jahren 0
Sie können den Benutzernamen nicht als Kennwort ausblenden, wenn Sie ihn in dieser Datei speichern. Sie könnten stattdessen einen Hash verwenden. Das würde es etwas schwieriger machen. Zum Schutz können Sie die Schreib- / Änderungsberechtigungen für normale Benutzer aus dem Skript entfernen. Seth vor 7 Jahren 0