Powsershell脚本运行2 exe-具有管理员特权和当前登录的用户

时间:2019-07-08 10:08:45

标签: powershell deployment process

我想为以下内容编写Powershell脚本:

  • 1以管理员权限运行exe来安装软件
  • 2以当前登录的用户权限运行另一个exe,而没有凭据提示。

这是我的Powershell脚本:

# This Powershell script is used to deploy an application on user desktop who don't have Administrative rights
# This script is run as Administrator


# Get current user logged
$user = Get-WmiObject -Class win32_computersystem | % Username
write-host "User: " $user


#Start the process with the Administrative privilege
(Start-Process -FilePath "setup.exe").WaitForExit()

#Start the process agent as current user logged
Start-Process -FilePath "agent.exe" -Credential $User

谢谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我通过以下方法解决了我的问题:

    #Start the setup with the Administrative privilege
    Write-Host "Start setup"
    Start-Process -FilePath $LocalSetupFilePath -ArgumentList "/VERYSILENT /SUPPRESSMSGBOXES /NORESTART -Encryption=Auto" -NoNewWindow -Wait
    Write-Host "Installation completed"

    #Create scheduled task for start agent
    $agentTaskName = "RunAgent"
    $taskPath = "\"
    $OSArch = (Get-WmiObject -class Win32_OperatingSystem).OSArchitecture

    Write-Host "OSArchitecture= $OSArch"
    If ($OSArch -like '64*') {
        $ProgFilePath=$env:ProgramW6432
    } else
    { 
        $ProgFilePath=$env:ProgramFiles
    }
    $agentFilePath = [IO.Path]::Combine($ProgFilePath, "agent.exe")
    Write-Host "Run $agentFilePath"

    $time = (Get-Date).AddHours(1).ToShortTimestring();

    # Create & Run scheduled task to start agent
    schtasks /create /s $ComputerName /tn $agentTaskName /sc once /tr "cmd /c start '' '$agentFilePath'" /st $time /ru $UserName
    schtasks /run /tn $agentTaskName

    Start-Sleep -Seconds 5

    Write-Host "Stop & delete $agentTaskName"
    #Stop scheduled task
    schtasks /end /tn $agentTaskName
    #Remove scheduled task
    schtasks /delete /tn $agentTaskName /f

    Write-Host "Success"