0

我有这个脚本,我从http://poshcode.org/1811获得并为我自己的目的稍作修改。我遇到的问题是请求我部署加载项的用户告诉我,只有最初登录使用加载项的人才能看到它已安装。这是一个 Active Directory 环境,脚本设置为在用户登录时运行。

这是脚本,稍后我还将从相关人员那里获取加载项本身的代码。

$Addinfilepath = '\\network\path\to\Excel Add-ins\'
$Addinfilename = Get-ChildItem $Addinfilepath -Name

ForEach ($CustomAddin in $Addinfilename) {
    $Excel = New-Object -ComObject excel.application
    $ExcelWorkbook = $excel.Workbooks.Add()
        if (($ExcelWorkbook.Application.AddIns | Where-Object {$_.name -eq  $CustomAddin}) -eq $null) {
            $ExcelAddin = $ExcelWorkbook.Application.AddIns.Add("$Addinfilepath$CustomAddin", $True)
            $ExcelAddin.Installed = "True"
            Write-Host "$CustomAddin added"}
#else{}
#{Write-Host "$Addinfilename already added"}
                                $Excel.Quit()
}

我不太确定脚本有什么问题,但我相信它正在安装到 PC 上第一个人的个人资料中,但可能脚本将其视为已安装期间,然后不再安装到下一个登录的用户。

感谢您提供的建议或帮助。

4

1 回答 1

1

不确定您是否注意到它,但是当您尝试匹配名称时,您在 CustomAddin 前面缺少 $ 符号。

Where-Object {$_.name -eq  CustomAddin})

应该

Where-Object {$_.name -eq  $CustomAddin})
于 2013-11-13T15:53:57.587 回答