小编Jus*_*rce的帖子

在 PowerShell 脚本中调用其他 PowerShell 脚本

我正在尝试让一个主 PowerShell 脚本运行所有其他脚本,同时等待 30-60 秒以确保完成任务。我尝试过的所有其他操作都不会停止/等待第一个脚本及其进程完成,然后才能同时完成所有其他脚本,并且会导致自动重新启动。

主脚本,以管理员身份运行:

$LogStart = 'Log '

$LogDate = Get-Date -Format "dd-MM-yyy-hh-mm-ss"

$FileName = $LogStart + $LogDate + '.txt.'

$scriptList = @(
    'C:\Scripts\1-OneDriveUninstall.ps1'
    'C:\Scripts\2-ComputerRename.ps1'
);

Start-Transcript -Path "C:\Scripts\$FileName"

foreach ($script in $scriptList) {
    Start-Process -FilePath "$PSHOME\powershell.exe" -ArgumentList "-Command '& $script'" 
    Write-Output "The $script is running."
    Start-Sleep -Seconds 30
}

Write-Output "Scripts have completed. Computer will restart in 10 seconds."
Start-Sleep -Seconds 10

Stop-Transcript

C:\Scripts\3-Restart.ps1
Run Code Online (Sandbox Code Playgroud)

1-OneDriveUninstall.ps1

Set-ItemProperty -Path REGISTRY::HKEY_LOCAL_MACHINE\Software\Microsoft\windows\CurrentVersion\Policies\System -Name ConsentPromptBehaviorAdmin -Value 0

taskkill /f /im OneDrive.exe …
Run Code Online (Sandbox Code Playgroud)

powershell

6
推荐指数
1
解决办法
5786
查看次数

标签 统计

powershell ×1