我在本主题中进行了很多次搜索,但没有走运,我在WPF上有一个应用程序,该应用程序使用Click Click来发布,因此无法使用Admin Privilege,因此我需要在安装过程中执行一些操作,例如重新启动以SQL Server为例,为此,我需要管理员权限,并且由于必须立即删除管理员权限才能开始使用click进行发布,因此我尝试使用以下代码重新启动我的应用程序以强制使用管理员权限,但此方法不起作用
Public Function IsRunAsAdmin() As Boolean
Try
Dim id As WindowsIdentity = WindowsIdentity.GetCurrent()
Dim principal As WindowsPrincipal = New WindowsPrincipal(id)
Return principal.IsInRole(WindowsBuiltInRole.Administrator)
Catch __unusedException1__ As Exception
Return False
End Try
End Function
Public Sub AdminRelauncher()
If Not IsRunAsAdmin() Then
Dim proc As ProcessStartInfo = New ProcessStartInfo()
Dim procExecuting As New Process
proc.UseShellExecute = True
proc.WorkingDirectory = Environment.CurrentDirectory
proc.FileName = Assembly.GetEntryAssembly().CodeBase
proc.Verb = "runas"
Try
procExecuting = Process.Start(proc)
Application.ExitThread()
Application.Exit()
Catch ex As Exception
Console.WriteLine("This program must be run as an administrator! " & vbLf & vbLf & ex.ToString())
End Try
End If
End Sub
我搜索后当然仍然发现错误消息“无法在计算机上打开MSSQL $ ******”,我发现原因是需要管理员权限。所以现在我正在研究代码签名证书,因为有人建议我这对我有用。但是我是个人,我的申请价格还不够高,无法购买付费证书,因此我想知道我是否可以制作一个自我代码签名证书并单击一下即可使用。谢谢。
我终于设法弄清楚我自己的问题,这是管理员权限。问题是代码只需要大约2-3英里秒即可执行,因此当我跟踪代码时,我发现我的代码确实确实停止了该服务,但由于没有花费时间而无法再次启动它使服务完全停止。