Gag*_*n93 18 windows powershell startup
为了简化我的一些工作,我创建了一个PowerShell脚本,需要:
我使用powershell创建了启动服务,如下所示:
function MakeStartupService
{
Write-Host "Adding script as a startup service"
$trigger = New-JobTrigger -AtStartup -RandomDelay 00:00:15
Try
{
Register-ScheduledJob -Trigger $trigger -FilePath "absolute_path" -Name "Job-name" -EA Stop
}
Catch [system.exception]
{
Write-Host "Looks like an existing startup service exists for the same. Overwriting existing job"
Unregister-ScheduledJob "Job-name"
Register-ScheduledJob -Trigger $trigger -FilePath "absolute_path" -Name "Job-name"
}
}
Run Code Online (Sandbox Code Playgroud)
作业已成功注册为启动服务,并在任务计划程序中可见.如果我使用Start-Job -DefinitionName Job-name或通过右键单击任务计划程序启动它,它工作正常但它不会启动Windows启动时.
目前我正在我的个人Windows 10系统上测试这个,并检查了另一个Windows 10系统,但行为仍然是名称.我正在为此作业添加任务调度程序窗口的屏幕截图.

对不起,如果这个问题听起来重复或愚蠢(我是powershell的初学者),但请相信我,我在网上找到的解决方案都没有为此工作.
提前致谢 !!
Kor*_*ill 13
这是我正在使用的生产代码.如果它不适合您,您必须在系统上进行其他操作.
function Invoke-PrepareScheduledTask
{
$taskName = "UCM_MSSQL"
$task = Get-ScheduledTask -TaskName $taskName -ErrorAction SilentlyContinue
if ($task -ne $null)
{
Unregister-ScheduledTask -TaskName $taskName -Confirm:$false
}
# TODO: EDIT THIS STUFF AS NEEDED...
$action = New-ScheduledTaskAction -Execute 'powershell.exe' -Argument '-File "C:\Invoke-MYSCRIPT.ps1"'
$trigger = New-ScheduledTaskTrigger -AtStartup -RandomDelay 00:00:30
$settings = New-ScheduledTaskSettingsSet -Compatibility Win8
$principal = New-ScheduledTaskPrincipal -UserId SYSTEM -LogonType ServiceAccount -RunLevel Highest
$definition = New-ScheduledTask -Action $action -Principal $principal -Trigger $trigger -Settings $settings -Description "Run $($taskName) at startup"
Register-ScheduledTask -TaskName $taskName -InputObject $definition
$task = Get-ScheduledTask -TaskName $taskName -ErrorAction SilentlyContinue
# TODO: LOG AS NEEDED...
if ($task -ne $null)
{
Write-Output "Created scheduled task: '$($task.ToString())'."
}
else
{
Write-Output "Created scheduled task: FAILED."
}
}
Run Code Online (Sandbox Code Playgroud)