1

我是使用 Windows 注册表的新手。

这是我的问题和背景:

我需要编写一个 powershell 脚本,该脚本将自动更改 Outlook 2007 中新帐户的以下设置,您只需按照步骤 2 中的说明输入 LogonDomain\UserName 和 Password:

步骤 1:工具 -> 帐户设置... -> 双击电子邮件帐户 -> 更多设置... -> 连接 -> 勾选“使用 HTTP 连接到 Microsoft Exchange” -> Exchange 代理设置... - >输入代理服务器(例如 exmail.example.com) -> 选中“在快速网络上...”和“在慢速网络上...”框 -> 在下拉栏中设置“基本身份验证” -> 确定 - > 好的 -> 下一步 -> 完成

第 2 步:重新启动 Outlook -> 输入登录域和用户名 -> 输入密码 -> 重复第 1 步,但这次取消选中“在快速网络上...”框

注意:步骤 2 中的一些设置在您执行步骤 2 时已经设置,例如用于交换的代理服务器的名称。

为了查找对注册表所做的更改,我使用了应用程序 RegFromApp,它记录了由特定进程(在本例中为 Outlook)所做的每个注册表更改。在新帐户上手动执行步骤 1 和 2 后,我编写了两个脚本来使 RegFromApp 记录的更改。

当我尝试在新帐户上执行步骤 1 时,无法进行更改。但是,如果我手动执行步骤 1,然后执行步骤 2,则会进行适当的更改。然后,如果我执行第 1 步,设置会相应更改!不幸的是,只有第 2 步自动化是不够的。我认为问题出在步骤 1 的“输入代理服务器”部分。我的脚本中没有字符串“exmail.example.com”。有很多十六进制值发生了变化,“exmail.example.com”可能被编码成其中之一,但我不知道。

问:有谁知道如何使用注册表设置代理服务器以进行交换,如果可以这样做,或者是否有此设置的 reg 键?

谢谢

帕特里克

4

1 回答 1

0

以下是我为公司中希望做类似事情的任何人制作的 READ_ME.txt


任务:在 Outlook 2007 中为 Exchange 设置代理服务器

要求:-RegFromApp (\nas\it\MS\ExchangeSetup) -PowerShell

方法: - 打开 Outlook 和 RegFromApp。- 选择 Outlook 作为在 RegFromApp 中监视的过程 - 对 Outlook 设置进行适当的更改。- 对注册表的更改将记录在 RegFromApp 中。- 编写一个 Powershell 脚本来对注册表进行这些更改。- 要自动执行 Powershell 脚本,您需要制作一个 .BAT 文件,将 PowerShell 的执行策略临时更改为 RemoteSigned 并出于安全原因将其恢复为受限。

注意:-RegFromApp 将为您提供对注册表所做的每项更改。实际上只需要其中几个就可以对 Outlook 中的设置进行适当的更改。-此方法应该能够更改在 Window XP 或更高版本上运行的任何程序的任何设置,并且由 stackoverflow 上的用户推荐,该用户必须对 10000 台计算机的网络进行类似的更改。- 要运行此脚本,请执行位于 \nas\it\MS\ExchangeSetup 的 exchange_setup.BAT

PowerShell 脚本:

Stop-Process -processname outlook
$regkey1 = "HKCU:\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging     Subsystem\Profiles\Outlook\13dbb0c8aa05101a9bb000aa002fc45a"
$regkey2 = "HKCU:\Software\Microsoft\Exchange"
set-itemproperty -path $regkey1 -name 00036623 -value ([byte[]](0x2b,0x00,0x00,0x00))    #this value is used for binary regkeys
set-itemproperty -path $regkey1 -name 001f6622 -value ([byte[]](0x65,0x00,0x6D,0x00,0x61,0x00,0x69,0x00,0x6C,0x00,0x2E,0x00,0x6A,0x00,0x6F,0x00,0x6E,0x00,0x65,0x00,0x73,0x00,0x65,0x00,0x6E,0x00,0x67,0x00,0x2E,0x00,0x63,0x00,0x6F,0x00,0x6D,0x00,0x00,0x00)) 
set-itemproperty -path $regkey1 -name 001f6625 -value ([byte[]](0x00,0x00))
set-itemproperty -path $regkey1 -name 00036627 -value ([byte[]](0x01,0x00,0x00,0x00))
set-itemproperty -path $regkey1 -name 00036601 -value ([byte[]](0x84,0x19,0x00,0x00))
set-itemproperty -path $regkey2 -name LogonDomain -value jonesgroup         #this value is used for string regkeys

[System.Diagnostics.Process]::Start("outlook").WaitForExit()

set-itemproperty -path $regkey1 -name 00036623 -value ([byte[]](0x23,0x00,0x00,0x00))

[System.Diagnostics.Process]::Start("outlook")

.BAT 文件:

powershell.exe -executionpolicy remotesigned -file     \\nas\it\MS\ExchangeSetup\exchange_setup.ps1
set-executionpolicy restricted
于 2013-08-07T09:40:49.327 回答