buongiorno a tutti..
ho un piccolo problema nell'eseguire comandi dos tramite processo CMD in Vb.Net windowsform ..
in alcuni comandi inviati al processo CMD risponde che non si hanno i privilegi amministratore, eppure ho impostato nelle proprietà del processo l'utente con privilegi amministratore ma nonostante ciò non và.
ecco la route dove dichiaro il processo con userprofile:
codice:
Private Sub CMD_Form_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
psi = New ProcessStartInfo("cmd.exe")
Dim systemencoding As System.Text.Encoding = _
System.Text.Encoding.GetEncoding(Globalization.CultureInfo.CurrentUICulture.TextInfo.OEMCodePage)
With psi
.UseShellExecute = False
.RedirectStandardError = True
.RedirectStandardOutput = True
.RedirectStandardInput = True
.CreateNoWindow = True
.StandardOutputEncoding = systemencoding
.StandardErrorEncoding = systemencoding
.LoadUserProfile = True
.UserName = "*******" ' contiene il nome utente come amministratore, che è quello per accedere a windows 8
.Password = securePwd ' dichiarata altrove contiene la password amministratore
End With
cmd = New Process With {.StartInfo = psi, .EnableRaisingEvents = True}
' reindirizza l'output (nella textbox)
AddHandler cmd.ErrorDataReceived, AddressOf Async_Data_Received
AddHandler cmd.OutputDataReceived, AddressOf Async_Data_Received
AddHandler cmd.Exited, AddressOf CMD_Exited
cmd.Start()
cmd.BeginOutputReadLine()
cmd.BeginErrorReadLine()
Me.txtConsoleIn.Select()
End Sub
il programma funziona bene. solo quando ci sono comandi che richiedono l'avvio di CMD come amministratore, non vengono eseguiti...
secondo voi, come posso fare?