Tuesday, October 30, 2012

Migrate Printers from Server 2003 x32 to Server 2008 R2 x64 using Print Migrator 3.1

This article is the step-by-step process from migrating printers from Windows Server 2003 to Windows Server 2008 R2 x64 using the Printer Migration Wizard. If you are migrating Windows 2000 Server to Windows Server 2003, you must use Print Migrator 3.1. Print Migrator 3.1 will not work with Windows Server 2008. To migrate between Windows Server 2003 systems and Windows Server 2008 R2 x64 you must use the Print Migration Wizard.


Notes
* You cannot migrate directly from older operating systems (Windows NT Server 4.0, Windows 2000 Server) to Windows Server 2008 R2 x64.
* For an in-place upgrade of print servers, use the Print Migration Wizard to back up and restore the print server configuration. A standard system migration will not preserve print server information, and can result in print configuration data loss if the data has not been properly backed up before installing the new operating system.
* Windows 32-bit printer drivers don’t migrate to Windows 64-bit editions due to the changes in the way the kernel interacts with printers. For each printer on the x32 server, you must install a Windows 2008 R2 x64 compatible driver.
    Prereqs:
    • Use the Microsoft Print Migrator 3.1รข€ tool to backup the existing printers and drivers on the source 2003 server (optional but I recommend)
    • Install x64 drivers for each printer on the 2003 server. Windows Server 2008 R2 requires a native 64 bit driver. If the 64 bit driver is missing the Printer Migration Wizard will fail.
    • Install the Print and Document Services Tools via Features > Add Features Wizard > Remote Server Administration Tools > Role Administration Tools > Print and Document Services Tools
    Migration
    Launch Server Manager > Roles > Print and Document Services > Right-click Print Management and select Migrate Printers
    Chose Export printer queues and printer drivers to a file and click Next
    Click Browse or type in the source server name. Click Next.
    Review the objects that will be exported. Click Next.
    Click Browse and select location for the export file. Click Next.
    The export process begins.
    Export is complete. Click Next.
    Right-click on the print server name and select Import printers from a file
    Click Browse and select the export file to import. Click Next.
    Review the objects that will be imported Click Next.
    Select Keep existing printers and List all printers. Click Next.

    Import mode: Specifies what to do if a specific print queue already exists on the destination computer. (Keep or Overwrite)
    List in the directory: Specifies whether to publish the imported print queues in the Active Directory Domain Services.
    Convert LPR Ports to Standard Port Monitors: Specifies whether to convert Line Printer Remote (LPR) printer ports in the printer settings file to the faster Standard Port Monitor when importing printers.
    The import process begins.
    Verify that printers are active and shared.
    Post Migration Tasks
    • Verify each printer has a x32 and x 64 printer driver installed Properties > Sharing > Additional Drivers
    • If applicable, verify security settings on data sensitive printers (HR, Execs, Etc)
    • Review application events (using the custom-built View) with the Printbrm.exe source to determine whether further action is needed.
    • Connect to each printer and submit test page.
    Command line option
    You can also use the following command-line options to migrate print servers to Windows Server 2008 R2 x64
    To perform a remote backup:
    1. CD %WINDIR%\System32\Spool\Tools
    2. Printbrm -s \\ -b -f .printerExport
    To perform a remote restore:
    1. Printbrm -s \\ -r -f .printerExport

    Office 2007 and Windows 7 Slow saving file to the network

    In Windows 7, when saving MS Word document or MS Excel file to the shared folder in Windows 2008 R2 File Server it is very slow, like it hung up

    I research the solution and it works fine.


    You will need to disable SMB2 on the  server that holds the share folder.

    Add a REG_DWORD entry named Smb2 with a value of 0 to
    HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters



    Then reboot the server.


    Tuesday, October 2, 2012

    Enable Single Item Recovery for a Mailbox


    Applies to: Exchange Server 2010 SP2
    Topic Last Modified: 2011-03-19
    You can use the Exchange Management Shell to enable single item recovery on a mailbox.
    Looking for other management tasks related to recovery items? Check out Managing Recoverable Items.
    You need to be assigned permissions before you can perform this procedure. To see what permissions you need, see the "Retention and legal holds" entry in the Mailbox Permissions topic.
    Ee633460.note(en-us,EXCHG.141).gifNote:
    You can't use the EMC to enable recoverable items.
    This example uses the Set-Mailbox command to enable single item recovery and sets the number of days that deleted items are retained.
    Set-Mailbox -Identity MBX01 -SingleItemRecoveryEnabled $True -RetainDeletedItemsFor 30
    
    Ee633460.note(en-us,EXCHG.141).gifNote:
    By default, the mailbox uses the deleted item retention settings of the mailbox database,
    but you can override the default can be overridden by setting it at the mailbox level for
    specific mailboxes.
    For detailed syntax and parameter information, see Set-Mailbox.

    Perform Single Item Recovery


    Applies to: Exchange Server 2010 SP2
    Topic Last Modified: 2012-07-23
    Single item recovery provides an additional layer of protection so that you can recover items accidentally deleted by a user or by automated processes such as the Managed Folder Assistant. Single item recovery simplifies recovery and reduces recovery time because you can recover items without recovering an entire mailbox or mailbox database from backup media.
    Ff660637.note(en-us,EXCHG.141).gifNote:
    In addition to using this procedure to search for and recover deleted items (which are moved to the Recoverable Items\Purges folder if either single item recovery or litigation hold is enabled), you can also use this procedure to search for items residing in other folders in the mailbox and to delete items from the source mailbox (also known assearch and destroy). For details, see Use Mailbox Search to Delete Messages.
    The method you use to search for and recover missing items depends on the client access license (CAL) for the mailbox you're searching. If the mailbox has an enterprise CAL, you can use the Multi-Mailbox Search feature in the Exchange Control Panel (ECP) or the New-MailboxSearch cmdlet in the Shell. These features also allow you to search multiple mailboxes simultaneously.
    You can also use the Search-Mailbox cmdlet in the Shell to search for and recover missing items. If the mailbox has a standard CAL, this is the only method you can use. If you use this cmdlet, you can search only one mailbox at a time.
    The following flowchart illustrates the different methods available for performing single item recovery.
    Performing single item recoveryTo search for and recover items, you must have the following information:
    • Source mailbox   This is the mailbox being searched.
    • Target mailbox   This is the discovery mailbox in which messages will be recovered. Exchange Setup creates a default discovery mailbox. If required, you can create additional discovery mailboxes. For details, see Create a Discovery Mailbox.
      Ff660637.note(en-us,EXCHG.141).gifNote:
      When using the Search-Mailbox cmdlet, you can also specify a target mailbox that isn't a discovery
      mailbox. However, you can't specify the same mailbox as the source and target mailbox.
    • Search criteria   Criteria include sender or recipient, or keywords (words or phrases) in the message.
    The process consists of two steps:
    1. Search   Searching for the missing items and recovering them to a discovery mailbox. 
    2. Restore   Restoring the items to the user's mailbox or a .pst file.
    Looking for other management tasks related to recoverable items? Check out Managing Recoverable Items.
    Before the item you want to recover is deleted, single item recovery must be enabled for a mailbox. For details, see Enable Single Item Recovery for a Mailbox.
    You need to be assigned permissions before you can perform this procedure. To see what permissions you need, see the "Multi-Mailbox Search" entry in the Messaging Policy and Compliance Permissions topic.
    Ff660637.note(en-us,EXCHG.141).gifNote:
    You can't use the EMC to search for and recover missing items.
    The first step in the recovery process is to search for messages in the source mailbox. Use one of the following methods to search a user mailbox and copy messages to a discovery mailbox.
    This example searches for messages in April Stewart's mailbox that meet the following criteria:
    • Sender: Ken Kwok
    • Keyword: Seattle
    Search-Mailbox "April Stewart" -SearchQuery "from:'Ken Kwok' AND seattle" -TargetMailbox "Discovery Search Mailbox" -TargetFolder "April Stewart Recovery" -LogLevel Full
    
    Ff660637.note(en-us,EXCHG.141).gifNote:
    When using the Search-Mailbox cmdlet, you can scope the search by using the SearchQuery
    parameter to specify a query formatted using Advanced Query Syntax (AQS). You can also use the
     SearchDumpsterOnly switch to search only items in the dumpster.
    For detailed syntax and parameter information, see Search-Mailbox.
    For details about how to perform a Multi-Mailbox Search in the ECP, see Multi-Mailbox Searches.
    You need to be assigned permissions before you can perform this procedure. To see what permissions you need, see the "Multi-Mailbox Search" entry in the Messaging Policy and Compliance Permissions topic.
    Ff660637.note(en-us,EXCHG.141).gifNote:
    You can't use the EMC to restore recovered items.
    After messages have been recovered to a discovery mailbox, you can restore them to the user's mailbox by using the Search-Mailbox cmdlet. You can also use the New-MailboxExportRequest and New-MailboxImportRequest cmdlets to export the messages to or import the messages from a .pst file.
    This example restores messages to April Stewart's mailbox and deletes them from the Discovery Search Mailbox.
    Search-Mailbox "Discovery Search Mailbox" -SearchQuery "from:'Ken Kwok' AND seattle" -TargetMailbox "April Stewart" -TargetFolder "Recovered Messages" -LogLevel Full -DeleteContent
    
    For detailed syntax and parameter information, see Search-Mailbox.
    In Microsoft Exchange Server 2010 Service Pack 1 (SP1), you can export messages from and import messages to .pst files without requiring the installation of Microsoft Outlook. To learn more about mailbox import and export, see Understanding Mailbox Import and Export Requests.
    This example uses the following settings to export messages from the folder April Stewart Recovery in the Discovery Search Mailbox to a .pst file:
    • Mailbox   Discovery Search Mailbox
    • Source folder   April Stewart Recovery
    • ContentFilter   april travel plans
    • PST file path   \\MYSERVER\HelpDeskPst\AprilStewartRecovery.pst
    New-MailboxExportRequest -Mailbox "Discovery Search Mailbox" -SourceRootFolder "April Stewart Recovery" -ContentFilter {Subject -eq "april travel plans"} -FilePath \\MYSERVER\HelpDeskPst\AprilStewartRecovery.pst
    
    For detailed syntax and parameter information, see New-MailboxExportRequest.
    This example uses the following settings to import messages from a .pst file to the folder Recovered By Helpdesk in April Stewart's mailbox:
    • Mailbox   April Stewart
    • Target folder   Recovered By Helpdesk
    • PST file path   \\MYSERVER\HelpDeskPst\AprilStewartRecovery.pst
    New-MailboxImportRequest -Mailbox "April Stewart" -TargetRootFolder "Recovered By Helpdesk" -FilePath \\MYSERVER\HelpDeskPst\AprilStewartRecovery.pst 
    

    Exchange 2010 Hub Transport - building an automated signature

    Monday, September 24, 2012

    Setting up a Corporate Signature

    Exchange 2007
    Exchange 2007 has the Transport Rules feature which you can use to set up a default disclaimer for each outgoing email message.
    1. Open the Exchange Management Console.
    2. In Organization Configuration select Hub Transport and then select the Transport Rules tab.
    3. In the Actions Pane click New Transport Rule…
    4. Name your rule and optionally add a Comment. For instance;
      Name: Corporate disclaimer
      Comment: This transport rule adds a standardized disclaimer text to all outgoing emails.
    5. Press Next.
    6. On the Conditions screen select the following 2 conditions;
      • from users inside or outside the organization
      • sent to users inside or outside the organization
    7. In the bottom pane, modify the conditions so that they read;
      • from users Inside the organization
      • and sent to users Outside the organization
    8. Press Next.
    9. In the Actions screen select the action;
      • append disclaimer text using font, size, color with separator and fall back to action if unable to apply.
    10. In the bottom pane you can modify the conditions to your preference.
      • Click on disclaimer text to set your default text.
        Note that the disclaimer text is Plain Text only so you can't type HTML code. If you want to add a link, you'll have to type it in full.
    11. Once done, press Next.
    12. You can set any exception as you see fit. You can continue without any exceptions as well.
    13. Press Next.
    14. On the Create Rule screen you'll see the PowerShell command that will be executed when clicking the New button.
    15. After pressing the New button the wizard has been completed and a summary is shown. Assuming it completed successfully, your Transport Rule has been created and is active now. Clicking Finish will close the New Transport Rule dialog.
    Disclaimer options in Exchange 2007
    Disclaimer options in Exchange 2007

    Exchange 2010

    Exchange 2010 also has the Transport Rules feature just as Exchange 2007 but has support for some additional customization as well. The most notable regarding signatures is that HTML code is now supported and that you can also use user information that has been stored in Active Directory to construct the signature dynamically.
    1. Open the Exchange Management Console.
    2. In  Organization Configuration select Hub Transport and then select the Transport Rules tab.
    3. In the Actions Pane click New Transport Rule…
    4. Name your rule and optionally add a Comment. For instance;
      Name: Corporate signature
      Comment: This transport rule adds a standardized signature and disclaimer text to all outgoing emails.
    5. Press Next.
    6. On the Conditions screen select the following 2 conditions;
      • from users that are inside or outside the organization
      • sent to users that are inside or outside the organization, or partners
    7. In the bottom pane, modify the conditions so that they read;
      • from users that are Inside the organization
      • and sent to users that are Outside the organization
    8. Press Next.
    9. In the Actions screen select the action;
      • append disclaimer text and fall back to action if unable to apply.
    10. In the bottom pane you can modify the conditions to your preference.
      • Click on disclaimer text to insert your default disclaimer text and add variables to include user information (see below for an overview of variables which you can use).
        Note that the disclaimer text allows you to use HTML code (including in-line CSS). This will allow you for instance to set different font size and colors for the signature and disclaimer part, add a horizontal line, hyperlink text or include a logo.
      • You can use up to 5000 characters
      • When a Plain Text message is sent, the HTML tags are automatically stripped off.
    11. Once done, press Next.
    12. You can set any exception as you see fit. You can continue without any exceptions as well.
    13. Press Next.
    14. On the Create Rule screen you'll see the PowerShell command that will be executed when clicking the New button.
    15. After pressing the New button the wizard has been completed and a summary is shown. Assuming it completed successfully, your Transport Rule has been created and is active now. Clicking Finish will close the New Transport Rule dialog.
    Supported variables
    You can use the following variables in your disclaimer text. When using them, place them between %% characters.
    Example: %%DisplayName%%
    UserLogonName
    DisplayName
    FirstName
    Initials
    LastName

    PhoneNumber
    OtherPhoneNumber
    HomePhoneNumber
    OtherHomePhoneNumber
    PagerNumber
    MobileNumber
    FaxNumber
    OtherFaxNumber
    Email
    Street
    POBox
    City
    State
    ZipCode
    Country

    Title
    Department
    Manager
    Office
    Company

    Notes
    CustomAttribute1 – CustomAttribute15

    Disclaimer template text in Exchange 2010
    Disclaimer template text with HTML and variables in Exchange 2010

    Outlook Signature deployment via script

    If you are not using Exchange or are looking for a client (Outlook) level solution to generate your signatures, you can do this via a script. There are various ways to do this of course but there are a couple of common things to keep in mind when going for a custom script;
    • The signature has to end up in the user's Signatures folder.
    • A single signature contains a Plain Text, HTML and Rich Text version of your template with their corresponding file formats;
      *.txt, *.htm and *.rtf
    • You'll need to query Active Directory via LDAP if you want to include user specific information.
    • Consider how you want to update the signature. For instance;
      Are you going to run the script each time at logon or only once and then users can run the script manually via a Start Menu shortcut?
    • Are you going to disable access to the Signature feature via Group Policies?
    • Note that you cannot set the deployed signature as the default via Group Policies; this requires an additional script that queries the mail profile registry and sets the appropriate registry keys (see below script example for further details).
    Below you'll find a sample script to help you on your way, it is not intended for use as-is.
    'Option Explicit
    On Error Resume Next

       Dim strSigName
       Dim strFullName, strTitle, strCompany, strTel, strFax, strEmail, strWeb, strCorpEmail
       Dim boolUpdateStyle

    '==========================================================================
    ' Some script variables
    '==========================================================================

    '  Name signature
       strSigName  = "Standard Signature"
    '  If signature exists, overwrite (true) or leave alone (false)?
       boolUpdateStyle = true

    '==========================================================================
    ' Set some static information
    '==========================================================================

    '  Company information
       strCompany  = "Your Company Name"
       strTel      = "+12 1234 567890"
       strFax      = "+12 9876 543210"
       strWeb      = "http://www.yourdomain.com"

    '  Fallback email address when no address is found
       strCorpEmail = "contact@yourdomain.com"

    '==========================================================================
    ' Read User's Active Directory information
    '==========================================================================
       Dim objSysInfo, objUser

       Set objSysInfo = CreateObject("ADSystemInfo")
       Set objUser    = GetObject("LDAP://" & objSysInfo.Username)

       strFullName = objUser.displayname
       strTitle    = objUser.title
       strEmail    = objuser.emailaddress

       If Trim(strTitle) = "" Then strTitle = "_"
       If Trim(strEmail) = "" Then strEmail = strCorpEmail

       Set objUser    = Nothing
       Set objSysInfo = Nothing


    '==========================================================================
    ' Get Signature Folder
    '==========================================================================
       Dim objShell
       Set objShell = CreateObject("WScript.Shell")
       strSigFolder = ObjShell.ExpandEnvironmentStrings("%appdata%") & "\Microsoft\Signatures\"
       Set objShell = Nothing


    '==========================================================================
    ' Get Signature Folder
    '==========================================================================
       Dim objFSO, objFile
       Set objFSO   = CreateObject("Scripting.FileSystemObject")

       If Not (objFSO.FolderExists(strSigFolder)) Then
          Call objFSO.CreateFolder(strSigFolder)
       End If

       strHTMFile = strSigFolder & strSigName & ".htm"
       strRTFFile = strSigFolder & strSigName & ".rtf"
       strTXTFile = strSigFolder & strSigName & ".txt"


    '==========================================================================
    ' Create HTM File
    '==========================================================================
    'chr(47) = /

       Err.Clear
       Set objFile = objFSO.CreateTextFile(strHTMFile, boolUpdateStyle, False)
       If Err.Number = 0 Then
          objFile.Write " <" & Chr(47) & "title> <" & Chr(47) & "head> <body>"&vbCrLf</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">      objFile.Write "<p> <span style=""FONT-SIZE: 10pt; COLOR:#1F497D; FONT-FAMILY: Calibri"">"&vbCrLf</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">      objFile.Write strFullName & "<br />"&vbCrLf</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">      objFile.Write strTitle & "<br />"&vbCrLf</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">      objFile.Write strCompany & "<br />"&vbCrLf</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">      objFile.Write "T: " & strTel & "   F: " & strFax & "<br />"&vbCrLf</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">      objFile.Write "E: <a href=""mailto:" & strEmail & """ style=""FONT-SIZE: 10pt; COLOR:#1F497D; </font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2"><br></font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">FONT-FAMILY: Calibri"""</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">      objFile.Write ">" & strEmail & "<" & Chr(47) & "a>"&vbCrLf</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">      objFile.Write "   <a href=""" &strWeb & """ style=""FONT-SIZE: 10pt; COLOR:#1F497D; FONT-FAMILY: </font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2"><br></font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">Calibri"""</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">      objFile.Write ">" & strWeb & "<" & Chr(47) & "a>"&vbCrLf</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">      objFile.Write "<" & Chr(47) & "p>"&vbCrLf</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">      objFile.Write "<span style=""FONT-SIZE: 10pt; COLOR: Green; FONT-FAMILY: Calibri"">"&vbCrLf</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">      objFile.Write "<span style=""FONT-SIZE: 18pt; COLOR: Green; FONT-FAMILY: Webdings"">P<" & Chr(47) & </font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2"><br></font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">"span>"&vbCrLf</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">      objFile.Write "Please consider the environment - do you really need to print this email?<br />"&vbCrLf</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">      objFile.Write "<" & Chr(47) & "span><" & Chr(47) & "p>"&vbCrLf</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">      objFile.Write "<" & Chr(47) & "body> <" & Chr(47) & "html> "&vbCrLf</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">      objFile.close</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">   End If</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2"><br></font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2"><br></font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">'==========================================================================</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">' Create TXT File</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">'==========================================================================</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">   Err.Clear</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">   Set objFile = objFSO.CreateTextFile(strTXTFile, boolUpdateStyle, False)</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">   If Err.Number = 0 Then</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">      objFile.Write strFullName & vbCrLf</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">      objFile.Write strTitle & vbCrLf</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">      objFile.Write strCompany & vbCrLf</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">      objFile.Write "T: " & strTel   & "   F: " & strFax & vbCrLf</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">      objFile.Write "E: " & strEmail & vbCrLf</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">      objFile.Write strWeb & vbCrLf & vbCrLf</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">      objFile.Write "Please consider the environment - do you really need to print this email?" & vbCrLf</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">      objFile.close</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">   End If</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2"><br></font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2"><br></font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">'==========================================================================</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">' Create RTF File</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">'==========================================================================</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">   Err.Clear</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">   Set objFile = objFSO.CreateTextFile(strRTFFile, boolUpdateStyle, False)</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">   If Err.Number = 0 Then</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">      objfile.write "{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fprq2\fcharset0 Calibri;}</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2"><br></font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">{\f1\froman\fprq2\fcharset2 Webdings;}}" & vbCrLF</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">      objfile.write "{\colortbl;\red031\green073\blue125;\red0\green0\blue255;\red0\green128\blue0;}" & </font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2"><br></font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">vbCrLF</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">      objfile.write "{\*\generator Msftedit 5.41.15.1507;}\viewkind4\uc1\pard</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2"><br></font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">\sb100\sa100\cf1\lang2057\f0\fs20 " & strFullName & "\line "</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">      objfile.write strTitle & "\line " & strCompany & "\line T: " & strTel & "   F: " & strFax & "\line E: "</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">      objfile.write "{\field{\*\fldinst{HYPERLINK ""mailto:" & strEmail & """}}{\fldrslt{\ul " & strEmail & </font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2"><br></font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">"}}}\ulnone\f0\fs20    "</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">      objfile.write "{\field{\*\fldinst{HYPERLINK """ & strWeb & """}}{\fldrslt{\ul " & strWeb & "}}}\ulnone</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2"><br></font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">\f0\fs20\par" & vbCrLF</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">      objfile.write "\cf3\f1\fs36 P\fs20  \f0 Please consider the environment - do you really need to print </font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2"><br></font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">this email?\par" & vbCrLF</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">      objfile.write "\pard\cf1\lang1033\par" & vbCrLF</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">      objfile.write "}" & vbCrLF</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">      objFile.close</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">   End If</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2"><br></font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2"><br></font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">'==========================================================================</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">' Tidy-up</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">'==========================================================================</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">   set objFile = Nothing</font></p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <font color="#031634" face="Arial, Helvetica, sans-serif" size="2">   set objFSO  = Nothing</font></p> <p style="font-style: normal; margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <br></p> <p> </p> <p style="color: rgb(3, 22, 52); font-family: inherit; font-size: 13px; font-style: normal; margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <br></p> <p style="color: rgb(3, 22, 52); font-family: inherit; font-size: 13px; font-style: normal; margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> <strong>Set generated signature as the default signature<br></strong>As mentioned before, you'll require an additional script if you want to set the generated signature directly as the default in Outlook without any additional user interaction. This additional script can be simplified if all your mail profiles are named the same in your organizations and have been created by a prf-script via the Office Resource Kit (ORT) or Office Customization Tool (OCT).</p> <p style="color: rgb(3, 22, 52); font-family: inherit; font-size: 13px; font-style: normal; margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> When you automated the mail profile creation process, then it could be that the mail profile registry is structured in the same way on all your clients. Setting the created signature as the default can then be done via an import of exported <a href="http://msoutlook.info/question/290" target="_blank" title="Editing the Registry" style="margin: 0px; padding: 0px; border: 0px; font-weight: bold; font-style: inherit; font-family: inherit; vertical-align: baseline; color: rgb(0, 130, 206); text-decoration: none; ">registry</a> keys. If not, you'll have to query the mail profile registry keys via a vbs-script and set the values accordingly. The registry keys involved are structured in the following way;</p> <p style="color: rgb(3, 22, 52); font-family: inherit; font-size: 13px; font-style: normal; margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> Key: <code style="margin: 0px; padding: 0px 3px; border: 0px; font-size: 12px; font-family: Consolas, Monaco, 'Courier New', monospace; vertical-align: baseline; line-height: 1.25; background-color: rgb(238, 238, 238); ">HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\<em style="margin: 0px; padding: 0px; border: 0px; font-family: inherit; vertical-align: baseline; "><profilename></em>\9375CFF0413111d3B88A00104B2A6676\<em style="margin: 0px; padding: 0px; border: 0px; font-family: inherit; vertical-align: baseline; "><########></em></code></p> <p style="color: rgb(3, 22, 52); font-family: inherit; font-size: 13px; font-style: normal; margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> In the key, replace <em style="margin: 0px; padding: 0px; border: 0px; font-family: inherit; vertical-align: baseline; "><profilename></em> with the default mail profile name for your company and<em style="margin: 0px; padding: 0px; border: 0px; font-family: inherit; vertical-align: baseline; "><########></em> with the number representing the mail account ID to be configured with the default signature.</p> <p style="color: rgb(3, 22, 52); font-family: inherit; font-size: 13px; font-style: normal; margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> In this key set the following value names and types;<br>Value name: New Signature<br>Value name: Reply-Forward Signature<br>Value type: REG_BINARY</p> <p style="color: rgb(3, 22, 52); font-family: inherit; font-size: 13px; font-style: normal; margin-bottom: 1em; padding: 0px; border: 0px; vertical-align: baseline; "> As for the value for this key, since these are binary keys, the easiest would be to export these 2 values from a correctly configured machine to determine their corresponding value.</p> <p> </p> <p style="margin-bottom: 1em; padding: 0px; border: 0px; font-size: 13px; font-family: Arial, Helvetica, sans-serif; vertical-align: baseline; color: rgb(3, 22, 52); background-color: rgb(255, 255, 255); "> <em style="margin: 0px; padding: 0px; border: 0px; font-family: inherit; vertical-align: baseline; "><br></em></p> </div> </DIV>