Combreal icon

continueAdmScriptAfterReboot.ps1

Combreal | PRO | 06/16/24 08:39:57 AM UTC | 0 ⭐ | 7723 👁️ | Never ⏰ | []
PowerShell |

1.43 KB

|

None

|

0 👍

/

0 👎

Function Test-Admin {
    $currentUser = New-Object Security.Principal.WindowsPrincipal $([Security.Principal.WindowsIdentity]::GetCurrent())
    $currentUser.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
}
 
If((Test-Admin) -eq $false)  {
    Start-Process powershell.exe -Verb RunAs -ArgumentList ('-noprofile -noexit -file "{0}" -elevated' -f ($myinvocation.MyCommand.Definition))
    Exit
}
 
$PSScriptName = Split-Path -Path $MyInvocation.MyCommand.Definition -Leaf
$PSScriptFullPath = $MyInvocation.MyCommand.Definition
$Scriptpath = Split-Path $MyInvocation.MyCommand.Path -Parent
$ScriptName = $([io.path]::GetFileNameWithoutExtension($PSScriptName))
 
$TaskName = $ScriptName
$TaskExists = Get-ScheduledTask -TaskName $TaskName -ErrorAction "SilentlyContinue"
 
If(-Not $TaskExists) {
    $Trigger = New-ScheduledTaskTrigger -AtLogOn
    $User = "NT AUTHORITY\SYSTEM"
    $Action = New-ScheduledTaskAction -Execute "Powershell.exe" -Argument "-Executionpolicy bypass -Noninteractive -File `"$PSScriptFullPath`""
    Register-ScheduledTask -TaskName $TaskName -Trigger $Trigger -User $User -Action $Action -RunLevel "Highest" –Force | Out-Null
    Add-Content -Path "C:\Temp\whoami" -Value "$(whoami)"
    Restart-Computer -Force
}
Else {
    Add-Content -Path "C:\Temp\whoami" -Value "$(whoami)"
    Unregister-ScheduledTask -TaskName $TaskName -Confirm:$false
    Remove-Item -Path $PSScriptFullPath -Force
}
 

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎