Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

ClickOnce Anwendung immer mit Admin Rechten ausführen

Frage Entwicklung Visual Studio

Mitglied: ForgottenRealm

ForgottenRealm (Level 1) - Jetzt verbinden

09.10.2013 um 12:32 Uhr, 5764 Aufrufe, 6 Kommentare

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!
Mitglied: colinardo
09.10.2013, aktualisiert um 14:22 Uhr
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:
<requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
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:
01.
Imports System 
02.
Imports System.Diagnostics 
03.
Imports System.Reflection 
04.
Imports System.Security.Principal 
05.
Public Class Form1 
06.
 
07.
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load 
08.
        Dim wi = WindowsIdentity.GetCurrent() 
09.
        Dim wp = New WindowsPrincipal(wi) 
10.
        Dim runasAdmin As Boolean = wp.IsInRole(WindowsBuiltInRole.Administrator) 
11.
        
12.
        'Wenn Anwendung nicht mit Admin-Rechten gestartet wurde ... 
13.
        If Not runasAdmin Then                
14.
            Dim processInfo = New ProcessStartInfo(Assembly.GetExecutingAssembly().CodeBase) 
15.
            'hier wird festgelegt das die Anwendung als Admin gestartet werden soll 
16.
            processInfo.UseShellExecute = True 
17.
            processInfo.Verb = "runas" 
18.
            Try 
19.
                'starte Anwendung als Admin (UAC-Dialog erscheint) 
20.
                Process.Start(processInfo)                      
21.
            Catch ex As Exception 
22.
                MsgBox("Der Benutzer hat nicht erlaubt das die Applikation Administratorrechte erhält") 
23.
            End Try 
24.
            'schließe die alte Anwendung ohne Admin-Rechte 
25.
            Application.Exit()                                      
26.
        End If 
27.
    End Sub 
28.
End Class
Grüße Uwe
Bitte warten ..
Mitglied: ForgottenRealm
09.10.2013, aktualisiert um 14:28 Uhr
Hallo Uwe

Vielen Dank für die schnelle Antwort.

Soweit wie ich den Code verstanden habe (ich sehe was der Code macht), startet das Script das Programm als Administrator?

Wie bekomm ich das in VB.net zum Laufen? Das sieht mir nach etwas anderem aus, was ich so leider nicht ganz zuordnen kann, da ich mich bisher nur mit VB.net und VBA/VBS auseinander gesetzt habe.

Edit

Kannst du hellsehen, das du gerade in dem Moment in dem ich antworte, ein Beispiel in vb.net postest?
Bitte warten ..
Mitglied: colinardo
09.10.2013, aktualisiert um 14:48 Uhr
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
Grüße Uwe
Bitte warten ..
Mitglied: ForgottenRealm
11.10.2013 um 13:42 Uhr
Hallo Uwe

Nochmal vielen Dank für die Antwort, hat alles wunderbar funktioniert

Ich denke mal, das werde ich in Zukunft öfter brauchen wenn Microsoft die Rechteverwaltung in zukünftigen Windows Versionen so belasst wie sie es in Windows 8 eingeführt haben.

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?

Grüße !
Bitte warten ..
Mitglied: colinardo
11.10.2013, aktualisiert um 13:56 Uhr
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,
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
Bitte warten ..
Mitglied: ForgottenRealm
14.10.2013 um 09:02 Uhr
Hallo

Vielen Dank für die Antwort, ich werds mir mal anschauen

Grüße !
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Windows 10
gelöst RDP Datei bzw. mstsc .exe unter Windows 10 immer mit erhöhten Rechten ausführen (4)

Frage von zeroblue2005 zum Thema Windows 10 ...

Batch & Shell
gelöst Powershell-Script als Admin über CMD ausführen (2)

Frage von Tobiased zum Thema Batch & Shell ...

Sonstige Systeme
gelöst FreeBSD - Grafische Anwendung (X Window System) ohne Desktop Umgebung ausführen (3)

Frage von pelzfrucht zum Thema Sonstige Systeme ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...