从PowerShell关闭脚本运行安装程序

时间:2015-10-27 18:32:26

标签: java .net powershell active-directory gpo

目标:

  • 使用PowerShell脚本在关机时在所有域计算机上运行安装程序(.exe)。

鉴于:

  • 我成功使用了GPO分配的其他关闭脚本
  • 脚本实际上正在运行 - 通过编写自定义日志文件进行验证
  • 安装程序存储在网络共享

问题:

  • 从关机脚本调用时,安装程​​序无法启动(下面)
  • Java和.NET安装程序(均为.exe)的相同问题

已经尝试

  • 手动运行时脚本正常工作
  • 安装程序文件共享可由" Everyone"," Anonymous"," Domain Computers"
  • 访问
$registry = Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -recurse |
Get-ItemProperty -name Version,Release -EA 0 |
Where { $_.PSChildName -match '^(?!S)\p{L}'} |
Select Version

$flag = $false

foreach ($version in $registry){
    if ($version.Version -like "4.5*"){
        "Found Version " + $version.Version
        $flag = $true
        break
    } else {

    }
}
if($flag){
    # .NET 4.5* is installed
} else {
    # install .NET 4.5.2
    & "\\ad1dc01\deployment$\Microsoft\DotNet\452\NDP452-KB2901907-x86-x64-AllOS-ENU.exe" /q /norestart
}

1 个答案:

答案 0 :(得分:0)

在系统完成关闭之前,安装程序可能尚未完成。尝试使用-Wait参数的Start-Process cmdlet?

Start-Process -FilePath "\\ad1dc01\deployment$\Microsoft\DotNet\452\NDP452-KB2901907-x86-x64-AllOS-ENU.exe" -ArgumentList "/q /norestart" -Wait