Я новичок в PowerShell, поэтому, пожалуйста, простите. У меня есть идентификатор Windows на сервере Win 2008 R2, на котором запущено специальное приложение Outlook VBA. Я пробовал предложения о том, как заставить этот идентификатор пользователя автоматически входить в систему при перезапуске сервера, но они не увенчались успехом. Сегодня утром я подумал, можно ли создать задачу Cron, которая запускается по расписанию, чтобы проверить, вошел ли идентификатор пользователя в систему, и если не заставить ее войти.
Заранее благодарим за любую помощь.
Если все, что вам нужно сделать, это запустить Outlook от имени этого пользователя, я думаю, что предложение TheCleaner, вероятно, является лучшим вариантом. Вы можете сделать это из командной строки, а затем изменить пользователя, от имени которого работает служба, из консоли служб. Перейдите по ссылке ниже, если вы хотите сделать это без стороннего приложения.
https://stackoverflow.com/questions/3582108/create-windows-service-from-executable
В ответ на комментарии я предлагаю вам начать работу с PowerShell. Если это требует корректировки, предоставьте более подробный контекст.
$hostname = "serverName"
$username = "CKnutson"
$processName = "outlook"
$session = New-PSSession $hostname
Enter-PSSession $session
$processes = @()
$processes += Get-Process -IncludeUserName | Where-Object {$_.UserName -like "*$username" -and $_.Name -like "$processName"}
if ($processes.Count -eq 0) {
Start-Process -FilePath "C:\proc.exe" -ArgumentList "-Silent" -LoadUserProfile
}
Это должно открыть удаленную консоль для сервера, на котором вы хотите запустить Outlook, проверить, есть ли запущенный процесс для этого пользователя, а затем запустить его при необходимости.