Powershell安装Office脚本未知错误和RemoteRegistry无法打开

时间:2016-10-03 18:46:45

标签: powershell

我正在尝试使用PowerShell安装Microsoft Office。不幸的是我遇到了两个错误,我无法弄清楚如何修复。请有人指导我走向正确的方向吗?

脚本

Function Get-FileName{
[CmdletBinding()]
Param(
    [String]$Filter = "|*.*",
    [String]$InitialDirectory = "C:\")

    [void][System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms")
    $OpenFileDialog = New-Object System.Windows.Forms.OpenFileDialog
    $OpenFileDialog.initialDirectory = $InitialDirectory
    $OpenFileDialog.filter = $Filter
    [void]$OpenFileDialog.ShowDialog()
    $OpenFileDialog.filename
}

$file = Get-FileName -InitialDirectory $env:USERPROFILE\Desktop -Filter "Text files (*.txt)|*.txt|All files (*.*)|*.*"
ForEach ($item in (Get-Content $file)) {
    $sitem = $item.Split("|")
    $computer = $sitem[0].Trim()
    $user = $sitem[1].Trim()

    $filepath = Test-Path -Path "\\$computer\c$\Program Files (x86)\Microsoft Office\"
    If ($filepath -eq $false) {
    Get-Service remoteregistry -ComputerName $computer | Start-Service

    Copy-Item -Path "\\server\Install\Office2010" -Destination "\\$computer\c$\windows\temp\" -Container -Recurse -Force

    $InstallString = '"C:\windows\temp\Office2010\setup.exe"'
    ([WMICLASS]"\\$computer\ROOT\CIMV2:Win32_Process").Create($InstallString)

    "$computer" + "-" + "$(Get-Date)" | Out-File -FilePath "\\server\Install\Office2010\RemoteInstallfile.txt" -Append

    } Else {
        "$computer" + "_Already_Had_Software_" + "$(Get-Date)" | Out-File -FilePath "\\server\Install\Office2010\RemoteInstallfile.txt" -Append
    }
}

错误

Start-Service : Service 'Remote Registry (remoteregistry)' cannot be started due to the following error: Cannot open remoteregistry service on computer 'IT-Tech'.
At line:23 char:58
+     Get-Service remoteregistry -ComputerName $computer | Start-Service
+                                                          ~~~~~~~~~~~~~
    + CategoryInfo          : OpenError: (System.ServiceProcess.ServiceController:ServiceController) [Start-Service], ServiceCommandException
    + FullyQualifiedErrorId : CouldNotStartService,Microsoft.PowerShell.Commands.StartServiceCommand



__GENUS          : 2
__CLASS          : __PARAMETERS
__SUPERCLASS     : 
__DYNASTY        : __PARAMETERS
__RELPATH        : 
__PROPERTY_COUNT : 2
__DERIVATION     : {}
__SERVER         : 
__NAMESPACE      : 
__PATH           : 
ProcessId        : 
ReturnValue      : 8
PSComputerName   : 

请有人帮我解决这个问题,我这几天一直在努力奋斗!?

1 个答案:

答案 0 :(得分:1)

首先确保打开PowerShell(或运行ps1文件。无论您的应用程序是什么),然后右键单击它并单击以管理员身份运行。

至于您的安装脚本,您是否尝试将其作为服务运行?如果您这样做,则不必启用远程注册表服务:

Copy-item "\\servershare\Office 2010" -conatiner -recurse \\computer\c$\windows\temp\
Invoke-Command -Computername computer -ScriptBlock {
    Start-process "C:\windows\temp\office 2010\setup.exe"}

以下是对script的引用。 看看是否会给你不同的结果。如果没有,那么你的管理员权限就会出现问题。您运行脚本的帐户不是目标计算机上本地管理员组的成员,也不是您运行该帐户的计算机上的本地管理员。

如果您希望安装在没有任何用户交互的情况下以静默方式运行,那么使用.msp文件从脚本配置和安装office也是明智之举。如果您尚未创建msp文件,Microsoft的网站会逐步说明它。