Windows 通过任务添加内容、启动转录本和删除启动时不工作的项

Windows 通过任务添加内容、启动转录本和删除启动时不工作的项,windows,powershell,Windows,Powershell,我以为我已经完全解决了这个问题,但还没有解决。再深入一点,学到了更多的东西 目标 在启动时使用UNC路径创建文件共享的日志文件。使用添加内容 使用Start Transcript创建正在运行的PS脚本的本地日志 使用Remove Item完成后删除文件 问题仅在部分时间。有时候一切都很完美 未创建日志,也未删除文件 如果其中一项不起作用,那么它们都失败了。在我的测试中,我没有看到只有一个操作是完整的 我没有任何错误来显示或帮助我识别问题。脚本由任务通过任务计划程序使用系统帐户运行 不确定

我以为我已经完全解决了这个问题,但还没有解决。再深入一点,学到了更多的东西

目标

  • 在启动时使用UNC路径创建文件共享的日志文件。使用
    添加内容
  • 使用
    Start Transcript
    创建正在运行的PS脚本的本地日志
  • 使用
    Remove Item
    完成后删除文件
问题仅在部分时间。有时候一切都很完美

  • 未创建日志,也未删除文件
  • 如果其中一项不起作用,那么它们都失败了。在我的测试中,我没有看到只有一个操作是完整的
  • 我没有任何错误来显示或帮助我识别问题。脚本由任务通过任务计划程序使用系统帐户运行
不确定在没有错误或什么的情况下转向何处

这就是创建任务的方式

$Task_Action = New-ScheduledTaskAction -Execute 'PowerShell.exe' -Argument '-File C:\Script.ps1'
$Task_Principal = New-ScheduledTaskPrincipal -UserId SYSTEM -RunLevel Highest
$Task_Settings = New-ScheduledTaskSettingsSet -Hidden
$Task_Trigger = New-ScheduledTaskTrigger -AtStartup

Register-ScheduledTask `
    -TaskName "This is Task" `
    -Action $Task_Action `
    -Principal $Task_Principal `
    -Trigger $Task_Trigger `
    -Settings $Task_Settings `
    -Force
Start-Transcript -Path "C:\Logs\Transcript.txt"
Function WriteTo-LogFile($Text_For_Log) {
    $Log_DateTime = (Get-Date).ToFileTimeUtc()
    Add-Content -Path $Log_File -Value ($Log_DateTime + ",$Text_For_Log")
}

WriteTo-LogFile ("Adding Stuff to Log.")
这是如何创建成绩单的

$Task_Action = New-ScheduledTaskAction -Execute 'PowerShell.exe' -Argument '-File C:\Script.ps1'
$Task_Principal = New-ScheduledTaskPrincipal -UserId SYSTEM -RunLevel Highest
$Task_Settings = New-ScheduledTaskSettingsSet -Hidden
$Task_Trigger = New-ScheduledTaskTrigger -AtStartup

Register-ScheduledTask `
    -TaskName "This is Task" `
    -Action $Task_Action `
    -Principal $Task_Principal `
    -Trigger $Task_Trigger `
    -Settings $Task_Settings `
    -Force
Start-Transcript -Path "C:\Logs\Transcript.txt"
Function WriteTo-LogFile($Text_For_Log) {
    $Log_DateTime = (Get-Date).ToFileTimeUtc()
    Add-Content -Path $Log_File -Value ($Log_DateTime + ",$Text_For_Log")
}

WriteTo-LogFile ("Adding Stuff to Log.")
这是通过UNC路径添加日志的方式

$Task_Action = New-ScheduledTaskAction -Execute 'PowerShell.exe' -Argument '-File C:\Script.ps1'
$Task_Principal = New-ScheduledTaskPrincipal -UserId SYSTEM -RunLevel Highest
$Task_Settings = New-ScheduledTaskSettingsSet -Hidden
$Task_Trigger = New-ScheduledTaskTrigger -AtStartup

Register-ScheduledTask `
    -TaskName "This is Task" `
    -Action $Task_Action `
    -Principal $Task_Principal `
    -Trigger $Task_Trigger `
    -Settings $Task_Settings `
    -Force
Start-Transcript -Path "C:\Logs\Transcript.txt"
Function WriteTo-LogFile($Text_For_Log) {
    $Log_DateTime = (Get-Date).ToFileTimeUtc()
    Add-Content -Path $Log_File -Value ($Log_DateTime + ",$Text_For_Log")
}

WriteTo-LogFile ("Adding Stuff to Log.")

嗯,我不能详细告诉您具体情况,但我怀疑您的问题源于系统帐户没有共享权限。这不能解释无法使用
Start Transcript
写入C驱动器或无法使用
Remove Item
这两个都是机器本地的。机器上的系统帐户之间可能有什么不同?@Backin没有看到您的脚本,我们不知道您调用的顺序,以及哪一个可能是实际问题。