我是 PowerShell 新手,所以请原谅。我在运行专用 Outlook VBA 应用程序的 Win 2008 R2 服务器上有一个 Windows ID。我尝试过一些建议,让此用户 ID 在服务器重新启动时自动登录,但都没有成功。我今天早上的想法是,是否可以创建一个按时间表运行的 Cron 任务,检查用户 ID 是否已登录,如果没有,则强制登录。
提前感谢任何帮助。
答案1
如果您需要做的只是以该用户身份运行 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 的服务器,检查该用户是否有正在运行的进程,然后在需要时启动它。