3

私のアプリケーションでは、バッチ ファイルを機能させるために管理者として実行する必要があります。
これまでのところこれを使用していますが、管理者権限で実行できる runas 機能の使用方法を思い出せません。

process.start("filelocation.bat")

どんな助けでも感謝します。

4

3 に答える 3

3
Try
    Dim procInfo As New ProcessStartInfo()
    procInfo.UseShellExecute = True
    procInfo.FileName = (FileLocation)
    procInfo.WorkingDirectory = ""
    procInfo.Verb = "runas"
    Process.Start(procInfo)
Catch ex As Exception
    MessageBox.Show(ex.Message.ToString())
End Try
于 2012-07-16T14:05:29.683 に答える
1

このコードで試すことができます:

Dim proc as ProcessStartInfo  = new ProcessStartInfo()
proc.FileName = "runas"
proc.Arguments = "/env /user:Administrator filelocation.bat"
proc.WorkingDirectory = "your_working_dir"
Process.Start(proc)

このコードは、管理者パスワードを要求し、バッチ ファイルの実行を開始します。

編集:これは、cmd ウィンドウのない代替手段です。

Dim proc as ProcessStartInfo  = new ProcessStartInfo()
proc.FileName = "filelocation.bat"
proc.WorkingDirectory = "your_working_dir"  // <- Obbligatory
      proc.UseShellExecute = False
      proc.Domain = userDomain // Only in AD environments?
      proc.UserName = userName
      proc.Password = securePassword
Process.Start(proc)

このコードを使用する前に入力値 (userName、Password、domain) を取得する必要があり、パスワードは専用の方法で構築する必要があるSecureStringであるため、少し複雑です。

Dim securePassword as New Security.SecureString()
For Each c As Char In userPassword
    securePassword.AppendChar(c)
Next c
于 2012-07-16T10:59:43.043 に答える
0
    Imports System.Diagnostics
    Imports System.Security

「いい例。名前空間を追加するだけ

于 2015-06-12T10:04:39.090 に答える