Batch Script
Scripts written in old school batch (.bat/.cmd)
Batch Script Add-DNS-Forwarders.bat
Nov 2nd
Project Objective:
We have multiple Windows DNS servers that need a forwarder configured for a specific domain.
Problem to be solved:
This is normally a setting that needs to be configured by hand on each DNS server.
@echo off rem #*********************************************************************** rem # "Add-DNS-Forwarders.bat" rem # rem # Written by Aaron Wurthmann (aaron (AT) wurthmann (DOT) com) rem # If you edit please keep my name as an original author and rem # keep me apprised of the changes, see email address above. rem # This code may not be used for commercial purposes. rem # You the executor,runner,user accept all liability. rem # This code comes with ABSOLUTELY NO WARRANTY. rem # You may redistribute copies of the code under the terms of the GPL v2. rem # ----------------------------------------------------------------------- rem # 2010.11.02 ver FINAL rem # rem # Summary: rem # Creates conditional DNS forwards for domains. rem # Be sure to adjust your settings below as needed. rem #************************************************************************ rem DNS Servers to contact/run against set DNSserver1=192.168.1.100 set DNSserver2=192.168.1.101 rem Conditional Zone to Forward For set Zone=domain.ext rem DNS Forwards to contact for Conditional Zone seperated with a single space set Forwarders=192.168.2.100 192.168.2.101 rem Main FOR /F "usebackq tokens=2 delims==" %%i IN (`set DNSserver`) DO ( dnscmd %%i /zoneadd %Zone% /forwarder %Forwarders% )
Batch Script Configure-Outlook.bat
Mar 1st
Project Objective:
Lower TCO (total cost of ownership) on Outlook configurations while setting everyone’s Outlook/Exchange setup to the same uniform settings. (Use cache mode and use RPC over HTTPS)
Problem to be solved:
Lower TCO and IT man hours spent on configuring Outlook.
Suggestions:
Teach users how to configure Outlook/Exchange themselves – REJECTED. Users cannot be expected to read instructions that is what IT is for.
Accepted solution: Use Office Customization Wizard to create an Outlook Profile. Check at each logon if Outlook is configure, if it is not load the corresponding Outlook/Exchange profile.
Future Versions:
Future versions will use PowerShell as I am migrating to PowerShell. Using PowerShell’s native syntax you can enumerate Outlook.exe’s location and call that versus static entries in the file or using reg.exe
rem #*********************************************************************** rem # "Configure-Outlook.bat" rem # rem # Written by Aaron Wurthmann (aaron <AT> wurthmann <DOT> com) rem # If you edit please keep my name as an original author and rem # keep me apprised of the changes, see email address above. rem # This code may not be used for commercial purposes. rem # You the executor,runner,user accept all liability. rem # This code comes with ABSOLUTELY NO WARRANTY. rem # You may redistribute copies of the code under the terms of the GPL v2. rem # ----------------------------------------------------------------------- rem # 2010.03.01 ver FINAL rem # rem # Summary: rem # Configures Outlook using referenced Outlook Profile, created by Office rem # Custom Install Wizard. rem # Future Versions: rem # Future versions will use PowerShell as I am migrating to PowerShell.
rem # Using PowerShell’s native syntax you can enumerate Outlook.exe’s
rem # location and call that versus static entries in the file or using reg.exe
rem #************************************************************************@echo off rem title Configure Outlook Module set errorlevel= set strProfileDir= set strOutlookDir= set ExchServer=EXCHANGE.DOMAIN.EXT set OWAServer=OWA.DOMAIN.EXT set MailProfile=Outlook set ExchProfile=exch_cach_ssl.PRF rem Check for Server OS, if server OS exit %logonserver%netlogontoolsREG.EXE query "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProductName" | findstr Server>nul && goto :EoF rem Determine Outlook version, 2003 or 2007 if exist "%ProgramFiles(x86)%Microsoft OfficeOFFICE11OUTLOOK.EXE" set strOutlookDir=%ProgramFiles(x86)%Microsoft OfficeOFFICE11 if exist "%ProgramFiles(x86)%Microsoft OfficeOFFICE12OUTLOOK.EXE" set strOutlookDir=%ProgramFiles(x86)%Microsoft OfficeOFFICE12 if exist "%ProgramFiles%Microsoft OfficeOFFICE11OUTLOOK.EXE" set strOutlookDir=%ProgramFiles%Microsoft OfficeOFFICE11 if exist "%ProgramFiles%Microsoft OfficeOFFICE12OUTLOOK.EXE" set strOutlookDir=%ProgramFiles%Microsoft OfficeOFFICE12 if not exist "%strOutlookDir%" goto :EoF rem Determine XP, Vista or Later ver | findstr /c:"Version 6.">nul && set strProfileDir=%USERPROFILE%AppDataRoamingMicrosoftOutlook ver | findstr /c:"Version 5.">nul && set strProfileDir=%USERPROFILE%Local SettingsApplication DataMicrosoftOutlook rem If Profile Exist Exit if exist "%strProfileDir%*.*" goto :EoF rem Check for Account Exclusions, If Excluded Exit FOR /F "usebackq delims== " %%a IN (%logonserver%netlogonmodulesexclusionsexchange.log) DO if /i '%%a'=='%username%' goto :EoF :import rem Import Profle start "" "%strOutlookDir%OUTLOOK.EXE" /importprf %logonserver%netlogonmodulesexchange-profiles%ExchProfile%
Example Outlook Profile – exch_cach_ssl.PRF
; ************************************************************** ; Section 1 - Profile Defaults ; ************************************************************** [General] Custom=1 ProfileName=Exchange with SSL Profile DefaultProfile=Yes OverwriteProfile=Yes ModifyDefaultProfileIfPresent=TRUE ; ************************************************************** ; Section 2 - Services in Profile ; ************************************************************** [Service List] ServiceX=Microsoft Outlook Client ServiceEGS=Exchange Global Section Service1=Microsoft Exchange Server ServiceEGS=Exchange Global Section ;*************************************************************** ; Section 3 - List of internet accounts ;*************************************************************** [Internet Account List] ;*************************************************************** ; Section 4 - Default values for each service. ;*************************************************************** [ServiceX] CachedExchangeMode=0x00000002 CachedExchangeSlowDetect=TRUE [ServiceEGS] CachedExchangeConfigFlags=0x00000100 MailboxName=%UserName% HomeServer=%ExchServer% RPCoverHTTPflags=0x002b RPCProxyServer=%OWAServer% RPCProxyPrincipalName= RPCProxyAuthScheme=0x0001 [Service1] OverwriteExistingService=Yes UniqueService=Yes MailboxName=%UserName% HomeServer=%ExchServer% OfflineAddressBookPath=%USERPROFILE%local settingsapplication datamicrosoftoutlook OfflineFolderPath=%USERPROFILE%local settingsapplication datamicrosoftoutlookoutlook.ost AccountName=Microsoft Exchange Server ;*************************************************************** ; Section 5 - Values for each internet account. ;*************************************************************** ;*************************************************************** ; Section 6 - Mapping for profile properties ;*************************************************************** [Microsoft Exchange Server] ServiceName=MSEMS MDBGUID=5494A1C0297F101BA58708002B2A2517 MailboxName=PT_STRING8,0x6607 HomeServer=PT_STRING8,0x6608 OfflineAddressBookPath=PT_STRING8,0x660E OfflineFolderPath=PT_STRING8,0x6610 [Exchange Global Section] SectionGUID=13dbb0c8aa05101a9bb000aa002fc45a MailboxName=PT_STRING8,0x6607 HomeServer=PT_STRING8,0x6608 RPCoverHTTPflags=PT_LONG,0x6623 RPCProxyServer=PT_UNICODE,0x6622 RPCProxyPrincipalName=PT_UNICODE,0x6625 RPCProxyAuthScheme=PT_LONG,0x6627 CachedExchangeConfigFlags=PT_LONG,0x6629 [Microsoft Mail] ServiceName=MSFS ServerPath=PT_STRING8,0x6600 Mailbox=PT_STRING8,0x6601 Password=PT_STRING8,0x67f0 RememberPassword=PT_BOOLEAN,0x6606 ConnectionType=PT_LONG,0x6603 UseSessionLog=PT_BOOLEAN,0x6604 SessionLogPath=PT_STRING8,0x6605 EnableUpload=PT_BOOLEAN,0x6620 EnableDownload=PT_BOOLEAN,0x6621 UploadMask=PT_LONG,0x6622 NetBiosNotification=PT_BOOLEAN,0x6623 NewMailPollInterval=PT_STRING8,0x6624 DisplayGalOnly=PT_BOOLEAN,0x6625 UseHeadersOnLAN=PT_BOOLEAN,0x6630 UseLocalAdressBookOnLAN=PT_BOOLEAN,0x6631 UseExternalToHelpDeliverOnLAN=PT_BOOLEAN,0x6632 UseHeadersOnRAS=PT_BOOLEAN,0x6640 UseLocalAdressBookOnRAS=PT_BOOLEAN,0x6641 UseExternalToHelpDeliverOnRAS=PT_BOOLEAN,0x6639 ConnectOnStartup=PT_BOOLEAN,0x6642 DisconnectAfterRetrieveHeaders=PT_BOOLEAN,0x6643 DisconnectAfterRetrieveMail=PT_BOOLEAN,0x6644 DisconnectOnExit=PT_BOOLEAN,0x6645 DefaultDialupConnectionName=PT_STRING8,0x6646 DialupRetryCount=PT_STRING8,0x6648 DialupRetryDelay=PT_STRING8,0x6649 [Personal Folders] ServiceName=MSPST MS Name=PT_STRING8,0x3001 PathToPersonalFolders=PT_STRING8,0x6700 RememberPassword=PT_BOOLEAN,0x6701 EncryptionType=PT_LONG,0x6702 Password=PT_STRING8,0x6703 [Unicode Personal Folders] ServiceName=MSUPST MS Name=PT_UNICODE,0x3001 PathToPersonalFolders=PT_STRING8,0x6700 RememberPassword=PT_BOOLEAN,0x6701 EncryptionType=PT_LONG,0x6702 Password=PT_STRING8,0x6703 [Outlook Address Book] ServiceName=CONTAB [LDAP Directory] ServiceName=EMABLT ServerName=PT_STRING8,0x6600 UserName=PT_STRING8,0x6602 UseSSL=PT_BOOLEAN,0x6613 UseSPA=PT_BOOLEAN,0x6615 DisableVLV=PT_LONG,0x6616 DisplayName=PT_STRING8,0x3001 ConnectionPort=PT_STRING8,0x6601 SearchTimeout=PT_STRING8,0x6607 MaxEntriesReturned=PT_STRING8,0x6608 SearchBase=PT_STRING8,0x6603 [Microsoft Outlook Client] SectionGUID=0a0d020000000000c000000000000046 FormDirectoryPage=PT_STRING8,0x0270 WebServicesLocation=PT_STRING8,0x0271 ComposeWithWebServices=PT_BOOLEAN,0x0272 PromptWhenUsingWebServices=PT_BOOLEAN,0x0273 OpenWithWebServices=PT_BOOLEAN,0x0274 CachedExchangeMode=PT_LONG,0x041f CachedExchangeSlowDetect=PT_BOOLEAN,0x0420 [Personal Address Book] ServiceName=MSPST AB NameOfPAB=PT_STRING8,0x001e3001 Path=PT_STRING8,0x001e6600 ShowNamesBy=PT_LONG,0x00036601 ; ************************************************************************ ; Section 7 - Mapping for internet account properties. DO NOT MODIFY. ; ************************************************************************ [I_Mail] AccountType=POP3 ;--- POP3 Account Settings --- AccountName=PT_UNICODE,0x0002 DisplayName=PT_UNICODE,0x000B EmailAddress=PT_UNICODE,0x000C ;--- POP3 Account Settings --- POP3Server=PT_UNICODE,0x0100 POP3UserName=PT_UNICODE,0x0101 POP3UseSPA=PT_LONG,0x0108 Organization=PT_UNICODE,0x0107 ReplyEmailAddress=PT_UNICODE,0x0103 POP3Port=PT_LONG,0x0104 POP3UseSSL=PT_LONG,0x0105 ; --- SMTP Account Settings --- SMTPServer=PT_UNICODE,0x0200 SMTPUseAuth=PT_LONG,0x0203 SMTPAuthMethod=PT_LONG,0x0208 SMTPUserName=PT_UNICODE,0x0204 SMTPUseSPA=PT_LONG,0x0207 ConnectionType=PT_LONG,0x000F ConnectionOID=PT_UNICODE,0x0010 SMTPPort=PT_LONG,0x0201 SMTPUseSSL=PT_LONG,0x0202 ServerTimeOut=PT_LONG,0x0209 LeaveOnServer=PT_LONG,0x1000 [IMAP_I_Mail] AccountType=IMAP ;--- IMAP Account Settings --- AccountName=PT_UNICODE,0x0002 DisplayName=PT_UNICODE,0x000B EmailAddress=PT_UNICODE,0x000C ;--- IMAP Account Settings --- IMAPServer=PT_UNICODE,0x0100 IMAPUserName=PT_UNICODE,0x0101 IMAPUseSPA=PT_LONG,0x0108 Organization=PT_UNICODE,0x0107 ReplyEmailAddress=PT_UNICODE,0x0103 IMAPPort=PT_LONG,0x0104 IMAPUseSSL=PT_LONG,0x0105 ; --- SMTP Account Settings --- SMTPServer=PT_UNICODE,0x0200 SMTPUseAuth=PT_LONG,0x0203 SMTPAuthMethod=PT_LONG,0x0208 SMTPUserName=PT_UNICODE,0x0204 SMTPUseSPA=PT_LONG,0x0207 ConnectionType=PT_LONG,0x000F ConnectionOID=PT_UNICODE,0x0010 SMTPPort=PT_LONG,0x0201 SMTPUseSSL=PT_LONG,0x0202 ServerTimeOut=PT_LONG,0x0209 CheckNewImap=PT_LONG,0x1100 RootFolder=PT_UNICODE,0x1101 [INET_HTTP] AccountType=HOTMAIL Account=PT_UNICODE,0x0002 HttpServer=PT_UNICODE,0x0100 UserName=PT_UNICODE,0x0101 Organization=PT_UNICODE,0x0107 UseSPA=PT_LONG,0x0108 TimeOut=PT_LONG,0x0209 Reply=PT_UNICODE,0x0103 EmailAddress=PT_UNICODE,0x000C FullName=PT_UNICODE,0x000B Connection Type=PT_LONG,0x000F ConnectOID=PT_UNICODE,0x0010