【问题标题】:Install .net remotely via powershell通过 powershell 远程安装 .net
【发布时间】:2014-03-12 13:49:16
【问题描述】:

我正在尝试通过 PowerShell 在 Windows Server 2008 r2 机器上远程安装 .net 框架。阅读它似乎无法通过现有的 PowerShell 会话来实现,但需要显式传入凭据(知道为什么会这样吗?)。但是,我仍然遇到权限错误。

例如,如果我运行:

$cred = Get-Credential -Credential 10.20.0.13\administrator
$Session=New-PsSession -ComputerName 10.20.0.13 -Credential $cred
Invoke-command -ScriptBlock {Start-Process -FilePath c:\installers\dotNetFx40_Full_x86_x64.exe  -ArgumentList "/q /norestart /log c:\" -Wait} -Credential $cred -ComputerName 10.20.0.13

我可以在远程机器上看到安装程序运行(在任务管理器中),临时文件夹是在 c:\ 的根目录下创建的,提取的文件,然后我得到一个 700kb 的日志文件。在该日志文件的底部,我得到:

操作系统版本 = 6.1.7601,平台 2,Service Pack 1 操作系统说明 = Win2K8R2 - x64 标准版 Service Pack 1 命令行 = C:\b65da67b927bfb71c84adcecefc019\Setup.exe /q /norestart /log c:\ /x86 /x64 TimeZone = GMT 标准时间 初始 LCID = 2057 使用 同时下载和安装机制操作:安装 包名称 = Microsoft .NET Framework 4 安装包版本 = 4.0.30319 用户体验数据收集策略:已禁用 适用项目数:11 Exe (C:\b65da67b927bfb71c84adcecefc019\SetupUtility.exe) 成功。 EXE文件 日志文件:dd_SetupUtility.txt ServiceControl 操作成功! ServiceControl 操作成功! EXE文件 (C:\b65da67b927bfb71c84adcecefc019\Windows6.1-KB958488-v6001-x64.msu) 0x5 失败 - 访问被拒绝。 .最终结果:安装 失败,错误代码:(0x00000005),“访问被拒绝。”(已过 时间:0 00:01:12)。

因此访问被拒绝。但是,使用完全相同的凭据,我可以执行其他任务(在 Powershell 中添加服务器角色,通过 Powershell 添加 Windows 功能等),并且我可以使用相同的用户名/密码将 RDP 安装到盒子上并在那里运行安装程序(完成得很好)。

我在某个地方遗漏了一些东西,但似乎无法找出它是什么。我可以看到它适用于其他人 (http://social.technet.microsoft.com/Forums/windowsserver/ar-SA/3045eb24-7739-4695-ae94-5aa7052119fd/install-dotnet-framework-4-using-powershell?forum=winserverpowershell),所以不知道我为什么会得到这个。

非常感谢任何帮助。

谢谢

【问题讨论】:

标签: windows powershell


【解决方案1】:

您正在创建会话但从未使用它?

我之前没有在远程计算机上尝试过,但尝试使用 -Verb RunAs 以“管理员身份”运行该进程,如下所示:

$cred = Get-Credential -Credential 10.20.0.13\administrator
$Session=New-PsSession -ComputerName 10.20.0.13 -Credential $cred
Invoke-command -ScriptBlock {Start-Process -FilePath c:\installers\dotNetFx40_Full_x86_x64.exe  -ArgumentList "/q /norestart /log c:\" -Wait -Verb RunAs } -Session $Session

【讨论】:

    【解决方案2】:

    在安装 .NET Framework 4.0 时,它还会安装一些更新 (.msu) 文件。

    但是当我们远程安装 .NET 4.0 时,它会因为这些更新而失败。其背后的原因是,不允许远程安装这些更新。请查找知识库文章here。本文还提到了解决方法。

    【讨论】:

      【解决方案3】:

      您在文本文件中有服务器名称或基于 OU 的机器名称。创建具有 .exe 的 .bat 来运行 C:\temp\xxx.exe /S /qn

      $ou='OU=subou3,OU=subou2,OU=subou1,DC=domain,DC=com'
      $filter = @("machinename1", "machinename2")
      $compute= Get-ADComputer -Filter * -SearchBase $ou | where-object{$filter -contains $_.name} 
      $comp=$compute.name
      
      foreach ($Computer in $Comp) {
      
      Write-Host "Processing $Computer" 
         {
              Write-Host " Installing application on $Comp"
            
              psexec $Compter path\XXX.bat /S /qn
         }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-10-22
        • 1970-01-01
        • 2015-12-08
        • 1970-01-01
        • 1970-01-01
        • 2015-07-06
        • 2020-08-30
        • 2021-07-05
        相关资源
        最近更新 更多