web-dev-qa-db-ja.com

Outlook2010メールプロファイルを再作成するためのスクリプト

Outlook 2010で大量のユーザーのメールプロファイルを再作成する必要があります(長い話です!)

「ユーザーエラー」を減らすために、これをスクリプト化して、ユーザーのメールプロファイルを削除し、置換を再作成します。

これは可能ですか? Outlook2003のカスタマーメンテナンスWizardを見ましたが、2010に相当するものが見つかりません。

3
Ben

適切なDNSレコードを設定できる場合、Outlook2010は自動構成を使用します。これはプロセスを完全に自動化するわけではありませんが、プロセスをおそらく2〜3ステップに減らし、必要な構成作業の90%を排除します。彼らが(理論的に)知る必要があるのは、名前、電子メールアドレス、およびパスワードだけです。

4
Coding Gorilla

ここでは、Exchangeを含まないOutlookクライアントを備えた単一のマシンを想定しています。

ホームマシンをXP/Office 2003-> Win 7/Office 2010からアップグレードしたとき、残念ながら、Outlookの設定と構成の多くがPSTファイルに含まれていないことに気づきました。抽出しました。 XPで使用され、Win7レジストリにインポートされたユーザーレジストリからのこの情報。私の設定は基本的に戻ってきました。

Outlookクライアントを使用して、さまざまなマシン上のさまざまなメールボックスにアクセスするため、特に懸念が集中しました。しかし、これでうまくいき、手動で追加する必要はありませんでした(以前に行ったことを覚えていることはほとんどありません)。

あなたの場合、ユーザーのレジストリで特定の領域を見つけて保存し、更新を行います。

ところで、私は最近、職場で2003 ---> 2010からインプレースにアップグレードしましたが、すべての設定が存続し、適切に変換されました。

3
mdpc

私はこのスクリプトをお気に入りとして持っているので、Outlookプロファイルで問題が発生したときはいつでも、自分でこれを実行できます。

  • ユーザーがスクリプトを実行するかどうかを確認します。
  • Outlookを閉じます。
  • ユーザーのレジストリで構成されたプロファイルをクリアします。
  • 新しいプロファイルを作成します(*必要に応じて、%username%で新しいプロファイル名を編集できます)。
  • ユーザーの新しいプロファイルでOutlookを開きます。

スクリプト:

'
' Use this script when user's emails get stuck in Outbox
' l0c0b0x/jb put this one together 9/13/2012
' Change log
' 1.0 initial release
' 1.1 Added registry string to specify a default profile on the account
' -----------------------------------------------------------

' Ask user if they wish to continue with re-creation of their ouotlook profile
intAnswer = _
    Msgbox("This script will remove and recreate your Outlook profile on this computer.  Would you like to continue?", _
        vbYesNo, "Reset Outlook Profile")

If intAnswer = vbYes Then

Else
    WScript.Quit
End If

' Close all instances of Outlook
Set objShell = CreateObject("WScript.Shell") 
Set objWmg = GetObject("winmgmts:") 
strWndprs = "select * from Win32_Process where name='Outlook.exe'" 
Set objQResult = objWmg.Execquery(strWndprs) 
For Each objProcess In objQResult
    intReturn = objProcess.Terminate(1) 
Next

' Remove registry keys for Outlook Profile
On Error Resume Next
const HKEY_CURRENT_USER = &H80000001
strComputer = "."

Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_ 
strComputer & "\root\default:StdRegProv")

strKeyPath = "Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles"
DeleteSubkeys HKEY_CURRENT_USER, strKeyPath

Sub DeleteSubkeys(reghive, KeyPath) 
    Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_ 
strComputer & "\root\default:StdRegProv")
    objReg.EnumKey reghive, KeyPath, arrrSubkeys 

    If IsArray(arrrSubkeys) Then 
        For Each strrSubkey In arrrSubkeys 
            DeleteSubkeys reghive, KeyPath & "\" & strrSubkey 
        Next 
    End If 

    objReg.DeleteKey reghive, KeyPath 

End Sub
' Add registry key for new profile
strKeyPath = "Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\newprofile"
oReg.CreateKey HKEY_CURRENT_USER,strKeyPath

' Add registry string to specify default profile
strKeyPath = "Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles"
strValueName = "DefaultProfile"
strValue = "newprofile"
oReg.SetStringValue HKEY_CURRENT_USER,strKeyPath,strValueName,strValue

' Launch Outlook
objShell.Run "Outlook.exe"
0
l0c0b0x