0

次のキーが存在する各アプリケーションのレジストリを反復処理する必要があります。

HKCU\Software\Microsoft\Office\15.0\【出願名】\Resiliency\DisabledItems

ここに保存されている値を削除できるようにします。

私は以下のスクリプトを書きましたが、これは に到達するまでキーを繰り返し処理しているように見えますOutlook.

'***********************************************'
'------------------------------------Add-In Keys'
'***********************************************'
Sub AddInKeys()
    On Error Resume Next

    strOfficePath = "Software\Microsoft\Office\15.0\"
    objReg.EnumKey conHKEY_CURRENT_USER, strOfficePath, arrOfficeSubKeys

    for Each key in arrOfficeSubKeys        
        ' Check if our DisabledItems key exists
        If regExists("HKCU\Software\Microsoft\Office\15.0\" & key & "\Resiliency\DisabledItems\") Then          
            ' If it does - enumerate the values under this key ...
            objReg.EnumValues conHKEY_CURRENT_USER, strOfficePath & key & "\Resiliency\DisabledItems\", arrKeyValues
            For Each value in arrKeyValues              
                ' Delete key VALUE, but only IF it is not blank (this will be the default value)
                If value <> "" Then
                    objShell.RegDelete "HKCU\Software\Microsoft\Office\15.0\" & key & "\Resiliency\DisabledItems\" & value
                End If
            Next
        End If
    Next    

    If Err <> 0 Then
        strMessage = "ERROR: Sub - Add-In Keys"
    End If
End Sub

'***********************************************'
'---Function to check existence of registry keys'
'***********************************************'
Function regExists(sKey)    
    ON ERROR RESUME NEXT

    regExists = objShell.RegRead(sKey)
    If Err.Number = 0 Then
        regExists = True
    Else
        regExists = False
        Err.Number = 0
    End If

    If Err <> 0 Then
        strMessage = "ERROR: Sub - regExists"
    End If
End Function

いくつかの背景: 開発マシンでスクリプトを実行すると、スクリプトは完全に機能するようです。すべてのキーとすべての値を列挙し、削除する必要があるものを削除します。ただし、これをシン クライアント (スクリプトがデプロイされる場所 - ログオン スクリプト内) から実行すると、上記の動作が発生します。

テスト ユーザー (シン クライアントにログインしているユーザー) からレジストリ ハイブをロードすると、チェックされているキー以外にも多くのキーがあることがわかりますが、何らかの理由で Outlook の後にチェックが停止します。

なんらかのエラーを見落としているのでしょうか、それともレジストリの仕組みを誤解していますか?

4

1 に答える 1

0

これは、Citrix と Windows 環境のセットアップ方法が原因でした。

ログオン スクリプトは、Active Directory 経由でサーバーから呼び出されます。User -> Properties -> Profile

私が問題を抱えていた上記のスクリプトはマシン上でローカルに実行されていたため、これらのアプリケーションはサーバーにインストールされているため、アプリケーションのレジストリ キーは存在しませんでした。

サーバーがホストするログオン スクリプトにコードを追加すると、必要なすべてのキー値を検出して削除することができました。

于 2016-02-17T16:34:20.163 に答える