Jag vill skapa en exefil som skall dras vid uppstart av maskinen. Det hörs ut som jobb for en service! Tack Gunnar! Det e fullt mulig å få till med srvany, men en scheduled task funkar också: Tack! Du kan använda CreateProcessWithLogonW API:et. Eller också så borde också fungera fast jag inte har testat denne varianten:Runas inne i en applikation.
I detta program vill jag göra följande.
1. Kopiera en annan programfil som ligger på nätverket till den lokala datorn.
2. Köra det kopierade programmet med RunAS som Administratör.
Det är det enda programmet skall göra...
Användaren skall heller inte skriva in namn och lösen det ska mitt lilla program själv göra.
Frågan är bara hur? :)Sv: Runas inne i en applikation.
Det fins en utility som heter srvany.exe som gjör at du kan lage en service ut av vilken som helst .exe fil. Se her:
Q137890Sv: Runas inne i en applikation.
Det är inte riktigt det jag är ute efter (om jag inte missuppfattat användandet av srvany.exe helt och hållet)
I princip vill jag att koden ser ut som detta:
<code>
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "runas /noprofile /user:Domän\Användare COMMAND /C Min_DOS_applikation"
</code>
Problemet med dessa rader är ju att man blir tillfrågad att ange lösenord.
Detta vill jag göra inne i applikationen utan att användaren behöver göra något.Sv: Runas inne i en applikation.
i Control Panel, legg till en scheduled task. I wizard kan du angi under fil vilket user context du vill at den ska kjöra och at den ska kjöra vid varje start av maskinen.
Du kan jo då velge å starte .exe filen direkte utan å gå omvägen rundt et vbskript.
(i princip er Scheduled tasks = at.exe kommandoet)Sv: Runas inne i en applikation.
Jag får labba lite och se om jag grejjar det!
Annars om man tar detta som exempel om man strutar i att det ska ligga i uppstarten.
Vi kan ta notepad
Man ställer in så att Notepad endast får exekveras av Admin.
Sedan så gör man en liten VB-applikation som heter "Starta Notepad"
I princip
<code>
Private Sub Form_Load()
Shell "Notepad"
End Sub
</code>
Detta funkar ju om man är Admin men kommer kracha om man inte är det.
Det skulle ju vara möjligt att via API köra Impersonate Logon user, men då måste ju användaren ha privilegiet "Act as part of operating system" och det vill jag ju inte.
Här skulle det ju vara ypperligt att köra runas
<code>
Private Sub Form_Load()
Shell "cmd /c runas /noprofile /user:domän\användare notepad"
End Sub
</code>
Denna kod öppnar ju kommandotolken och säger "Ange lösenord för domän\användare:"
Man skriver in lösen och så startas Notepad
Men är det möjligt att slippa kommandofönstret och låta VB skriva in lösen själv?
Det jag är ute efter är något i stil med:
<code>
Private Sub Form_Load()
Shell "cmd /c runas /noprofile /user:domän\användare:lösenord notepad"
End Sub
</code>
Tycker att det verkar så krångligt med srvany bara för detta, men det kanske är den enda utvägen...Sv: Runas inne i en applikation.
Till exempel om du gjör shell till "net use \\DatamaskinNavn\ipc$ /user:administrator <password>".
Sen gjör du en ny shell till det programmet du vill starta. Möjligt du måste då starte programmet som \\DatamaskinNavn\path\Notepad.exe
Hoppas det funkar nu! :)