Мне нужно запустить dnscrypt-proxy:
1. запускаться автоматически при запуске или при входе в систему
2. безоконный (не прикреплен к cmd.exe)
3. как другой пользователь (не как мое имя пользователя)
Если я использую cmd.exe runas
, то dnscrypt-proxy.exe также закроется, когда я закрою cmd.exe. Он не отключается от cmd.exe:
runas /savecred /user:anotheruser "path-to\dnscrypt-proxy.exe"
Запуск dnscrypt-proxy.exe в качестве службы запустит его отдельно, но как я могу заставить его также работать как другой пользователь?
Я хотел бы использовать любые программы, которые уже поставляются с Windows 10 Home, а не полагаться на стороннее программное обеспечение.
Я пробовал использовать cmd.exe
с start
и runas
но безрезультатно.
Я пробовал использовать services.msc
и taskschd.msc
но безрезультатно.
Единственное, что сработало, - это сценарий PowerShell. Поместите эти строки в .ps1
файл в C:\Users\yourusername\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\filename.ps1
и будет работать по назначению. (Наверное C#
тоже будет работать, но я не исследовал это.)
$username = "otherusername"
$password = "password"
$credentials = New-Object System.Management.Automation.PSCredential -ArgumentList @($username,(ConvertTo-SecureString -String $password -AsPlainText -Force))
Set-Location "C:\Program Files\dnscrypt-proxy-win64"
Start-Process -FilePath ".\dnscrypt-proxy.exe" -Credential ($credentials) -ArgumentList "--resolver-name=dnscrypt.eu-dk
--resolvers-list=dnscrypt-resolvers.csv" -WindowStyle Hidden
Start-Sleep -Seconds 5
if (Get-Process | Where-Object {$_.path -eq "C:\Program Files\dnscrypt-proxy-win64\dnscrypt-proxy.exe"})
{
# program is running
} else {
# program is NOT running
New-Item -ItemType file -Path C:\Users\yourusername\Desktop\dnscrypt-proxy-failed-to-start.txt
}
Вы можете попробовать использовать start
команда для запуска команды runas detached.
C:\start runas /savecred /user:anotheruser "path-to\dnscrypt-proxy.exe"
(здесь вы можете найти дополнительную информацию о команде запуска http://www.robvanderwoude.com/ntstart.php)