ClickOnce Anwendung immer mit Admin Rechten ausführen
Hallo !
Ich hänge bei einem Problem mit einem Programm, welches als ClickOnce Anwendung erstellt wird fest.
Das Programm MUSS mit Administratorrechten ausgeführt werden, da ich Zugriff auf diverse Verzeichnisse (C:\Windows\Tasks z.B.) haben muss.
Gibt es eine Möglichkeit, dass die Anwendung immer mit Admin Rechten ausführen kann? Beim Update wird ja jedes Mal eine neue Exe in das Apps Verzeichnis des Benutzers "installiert", wodurch die alte zwar noch da ist, aber eben veraltet ist.
Ich kann mir vorstellen, dass ich nicht der einzige bin, der damit Probleme hat ...
Freundliche Grüße!
Ich hänge bei einem Problem mit einem Programm, welches als ClickOnce Anwendung erstellt wird fest.
Das Programm MUSS mit Administratorrechten ausgeführt werden, da ich Zugriff auf diverse Verzeichnisse (C:\Windows\Tasks z.B.) haben muss.
Gibt es eine Möglichkeit, dass die Anwendung immer mit Admin Rechten ausführen kann? Beim Update wird ja jedes Mal eine neue Exe in das Apps Verzeichnis des Benutzers "installiert", wodurch die alte zwar noch da ist, aber eben veraltet ist.
Ich kann mir vorstellen, dass ich nicht der einzige bin, der damit Probleme hat ...
Freundliche Grüße!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 218880
Url: https://administrator.de/contentid/218880
Ausgedruckt am: 11.12.2024 um 21:12 Uhr
6 Kommentare
Neuester Kommentar
Hallo ForgottenRealm,
für sowas gibt es normalerweise das Application Manifest deiner Applikation in dem du festlegen kannst welche minimalen Berechtigungen dein Programm haben muss das es startet.
Im Manifest musst du dann an der richtigen Stelle folgendes einfügen:
Das Problem ist aber das die ClickOnce-Publish-Methode die Policy("requireAdministrator") aus Sicherheitsgründen nicht zulässt. Hier wäre eine andere Art des Deployments angesagt. Eine Lösung für dein Problem wäre folgendes: http://www.codeproject.com/Tips/627850/ClickOnce-deployment-vs-requeste ...
Ein Workaround-Beispiel mit VB.Net:
Grüße Uwe
für sowas gibt es normalerweise das Application Manifest deiner Applikation in dem du festlegen kannst welche minimalen Berechtigungen dein Programm haben muss das es startet.
Im Manifest musst du dann an der richtigen Stelle folgendes einfügen:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
Ein Workaround-Beispiel mit VB.Net:
Imports System
Imports System.Diagnostics
Imports System.Reflection
Imports System.Security.Principal
Public Class Form1
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim wi = WindowsIdentity.GetCurrent()
Dim wp = New WindowsPrincipal(wi)
Dim runasAdmin As Boolean = wp.IsInRole(WindowsBuiltInRole.Administrator)
'Wenn Anwendung nicht mit Admin-Rechten gestartet wurde ...
If Not runasAdmin Then
Dim processInfo = New ProcessStartInfo(Assembly.GetExecutingAssembly().CodeBase)
'hier wird festgelegt das die Anwendung als Admin gestartet werden soll
processInfo.UseShellExecute = True
processInfo.Verb = "runas"
Try
'starte Anwendung als Admin (UAC-Dialog erscheint)
Process.Start(processInfo)
Catch ex As Exception
MsgBox("Der Benutzer hat nicht erlaubt das die Applikation Administratorrechte erhält")
End Try
'schließe die alte Anwendung ohne Admin-Rechte
Application.Exit()
End If
End Sub
End Class
Zitat von @ForgottenRealm:
Kannst du hellsehen, das du gerade in dem Moment in dem ich antworte, ein Beispiel in vb.net postest?
dachte mir schon das du das in VB.net haben willst, wer mit ClickOnce hantiert programmiert meistens VB.net Kannst du hellsehen, das du gerade in dem Moment in dem ich antworte, ein Beispiel in vb.net postest?
Grüße Uwe
Zitat von @ForgottenRealm:
Ich hätte jetzt allerdings noch eine frage zur Aktualisierung von ClickOnce Anwendungen. Sobald das Programm gestartet wird,
soll ein Update durchgeführt werden, funktioniert prächtig. Was ich allerdings noch viel lieber hätte, wäre
eine Möglichkeit, dass sich die Anwendungen automatisch aktualisieren ohne Nachfrage bzw. Eingreifen des Anwenders. Gibt es
dafür auch eine Möglichkeit?
Hi,Ich hätte jetzt allerdings noch eine frage zur Aktualisierung von ClickOnce Anwendungen. Sobald das Programm gestartet wird,
soll ein Update durchgeführt werden, funktioniert prächtig. Was ich allerdings noch viel lieber hätte, wäre
eine Möglichkeit, dass sich die Anwendungen automatisch aktualisieren ohne Nachfrage bzw. Eingreifen des Anwenders. Gibt es
dafür auch eine Möglichkeit?
klar ... kannst du in den Start deiner Anwendung implementieren:
http://msdn.microsoft.com/de-de/library/vstudio/ms404263.aspx?cs-save-l ...
Zusätzlich solltest du dann aber auch im ClickOnce Deployment das automatische Checken auf Updates deaktivieren. Mehr dazu steht hier:
http://msdn.microsoft.com/de-de/library/vstudio/1zyc39fb.aspx
Grüße Uwe