IIPS Fall 2014 Deploying and Updating Windows Software: ‘A-Batchy-Way’ Steven Young Director of IT Blue Ridge Community College.

Slides:



Advertisements
Similar presentations
Auditing Microsoft Active Directory
Advertisements

Overview of local security issues in Campus Grid environments Bruce Beckles University of Cambridge Computing Service.
MODULE 3: OS & APP LAYERS. Agenda Preparing and importing a gold image Creating and understanding Install Machines Creating basic Application layers Understanding.
Module 5: Creating and Configuring Group Policy
System Center Configuration Manager Push Software By, Teresa Behm.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 9: Implementing and Using Group Policy.
11.1 © 2004 Pearson Education, Inc. Exam Planning, Implementing, and Maintaining a Microsoft Windows Server 2003 Active Directory Infrastructure.
Hands-On Microsoft Windows Server 2003 Administration Chapter 4 Managing Group Policy.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 1: Introduction to Windows Server 2003.
10.1 © 2004 Pearson Education, Inc. Exam Planning, Implementing, and Maintaining a Microsoft Windows Server 2003 Active Directory Infrastructure.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 12: Managing and Implementing Backups and Disaster Recovery.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 9: Implementing and Using Group Policy.
70-293: MCSE Guide to Planning a Microsoft Windows Server 2003 Network, Enhanced Chapter 7: Planning a DNS Strategy.
7.1 © 2004 Pearson Education, Inc. Exam Managing and Maintaining a Microsoft® Windows® Server 2003 Environment Lesson 7: Introducing Group Accounts.
Maintaining and Updating Windows Server 2008
A Tour of System Center Configuration Manager Adam Duffy Edina Public Schools.
MCTS Guide to Microsoft Windows Server 2008 Network Infrastructure Configuration Chapter 7 Configuring File Services in Windows Server 2008.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 1: Introduction to Windows Server 2003.
Module 8: Implementing Administrative Templates and Audit Policy.
11 MAINTAINING THE OPERATING SYSTEM Chapter 5. Chapter 5: MAINTAINING THE OPERATING SYSTEM2 CHAPTER OVERVIEW Understand the difference between service.
Group Policy in Microsoft Windows Active Directory.
11 MAINTAINING THE OPERATING SYSTEM Chapter 5. Chapter 5: MAINTAINING THE OPERATING SYSTEM2 CHAPTER OVERVIEW  Understand the difference between service.
Chapter 5 Roles and features. objectives Performing management tasks using the Server Manager console Understanding the Windows Server 2008 roles Understanding.
Introduction to Active Directory December 10th, pm Daniels 407.
9.1 © 2004 Pearson Education, Inc. Lesson 9: Implementing Group Policy in Windows 2000 Server Exam Microsoft® Windows® 2000 Directory Services Infrastructure.
9.1 © 2004 Pearson Education, Inc. Exam Planning, Implementing, and Maintaining a Microsoft Windows Server 2003 Active Directory Infrastructure.
MCTS Guide to Configuring Microsoft Windows Server 2008 Active Directory Chapter 3: Introducing Active Directory.
Module 9 Configuring Server Security Compliance. Module Overview Securing a Windows Infrastructure Overview of EFS Configuring an Audit Policy Overview.
Introduction to Group Policy
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 9: Implementing and Using Group Policy.
70-294: MCSE Guide to Microsoft Windows Server 2003 Active Directory Chapter 12: Deploying and Managing Software with Group Policy.
Software Distribution Overview Prepared By: Melvin Brewster Chaofeng Yan Sheng Shan Zhao Khanh Vu.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 12: Managing and Implementing Backups and Disaster Recovery.
Section 1: Introducing Group Policy What Is Group Policy? Group Policy Scenarios New Group Policy Features Introduced with Windows Server 2008 and Windows.
11 MANAGING AND DISTRIBUTING SOFTWARE BY USING GROUP POLICY Chapter 5.
Managing User Desktops with Group Policy
Step By Step Windows Server 2003 Installation Guide Step By Step Windows Server 2003 Installation Guide.
DIT314 ~ Client Operating System & Administration CHAPTER 5 MANAGING USER ACCOUNTS AND GROUPS Prepared By : Suraya Alias.
Active Directory Administration Lesson 5. Skills Matrix Technology SkillObjective DomainObjective # Creating Users, Computers, and Groups Automate creation.
1 Using Silent Install Scripts to Deploy Software to MS Windows PCs. Larry Carpenter, P.E. CAx Administrator / FE Analyst Siemens Healthcare Molecular.
Introduction to Microsoft Management Console (MMC) MMC is a common console framework for management applications. MMC provides a common environment for.
1 Chapter Overview Publishing Resources in Active Directory Service Redirecting Folders Using Group Policies Deploying Applications Using Group Policies.
30/10/2000 Software Installation and Maintenance at LAL - JLab 2000 Software Installation and Maintenance at LAL Michel Jouvin LAL, Orsay
1 Administering Shared Folders Understanding Shared Folders Planning Shared Folders Sharing Folders Combining Shared Folder Permissions and NTFS Permissions.
A Networked Machine Management System 16, 1999.
CN2140 Server II Kemtis Kunanuraksapong MSIS with Distinction MCT, MCITP, MCTS, MCDST, MCP, A+
Chapter 10 Chapter 10: Managing the Distributed File System, Disk Quotas, and Software Installation.
Section 4: Understanding the Architecture of Group Policy Processing Group Policy Components in AD DS Understanding the Group Policy Processing Sequence.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 14: Windows Server 2003 Security Features.
CN1276 Server Kemtis Kunanuraksapong MSIS with Distinction MCTS, MCDST, MCP, A+
Module 5: Creating and Configuring Group Policies.
Module 4 Planning for Group Policy. Module Overview Planning Group Policy Application Planning Group Policy Processing Planning the Management of Group.
Core 3: Communication Systems. Network software includes the Network Operating Software (NOS) and also network based applications such as those running.
Microsoft Management Seminar Series SMS 2003 Change Management.
Deploying Software with Group Policy Chapter Twelve.
Module 10: Implementing Administrative Templates and Audit Policy.
Implementing Server Security on Windows 2000 and Windows Server 2003 Fabrizio Grossi.
CHAPTER 5 MANAGING USER ACCOUNTS & GROUPS. User Accounts Windows 95, 98 & Me do not need a user account like Windows XP Professional to access computer.
Windows Server 2003 群組原則設定與管理 林寶森
How to Deploy Office XP and Windows XP With One Desktop Touch Liz Levitt Desktop Solution Specialist Microsoft Corporation.
Module 6 Creating and Configuring Group Policy. Module Overview Overview of Group Policy Configuring the Scope of Group Policy Objects Evaluating the.
Group Policy in Windows Vista. Group Policy Administration Group Policy with Windows Vista QoS Policies What Will We Cover?
GROUP POLICY. Group Policy is a hierarchical infrastructure which allows systems administrators to configure computer and user settings from a central.
Maintaining and Updating Windows Server 2008 Lesson 8.
Desktop Security Fred Wadlington - Milton Town School District –System Policies Jack Barnes - Shelburne School District –WinLock Glen Ward - Network Engineer,
Introduction to Group Policy Lesson 7. Group Policy Group Policy is a method of controlling settings across your network. – Group Policy consists of user.
Lesson 19: Configuring and Managing Updates
Microsoft Virtual Academy
Introduction to Group Policy
Presentation transcript:

IIPS Fall 2014 Deploying and Updating Windows Software: ‘A-Batchy-Way’ Steven Young Director of IT Blue Ridge Community College

Common Software Deployment Issues Different installation methods, configuration Different installation programs depending on OS (32-bit, 64-bit, XP/7/8) Different methods and time lines for updates Require Administrator privileges and sometimes affirmative user action (i.e. UAC prompt)

3 rd Party Tools 3 rd Party tools such as Microsoft SMS, Symantec Altiris can ease deployments and also provide a wide variety of other functions such as inventory control They often also rely on specific package formats (e.g. MSI) or underling customized scripting as well Can be costly and cumbersome

Benefits of ‘A Batchy Way’ Benefits: – No additional software is required: All versions of Windows are able to execute (properly written) batch files – Generalized skill set: Most IT professionals will have at least some familiarity with the Windows command line thereby avoiding the need for additional training on a 3 rd party deployment software – Strengthens core IT Skills: Reinforces core IT skills such as the command line as well as understanding and maintaining short procedural programs – Highly Customizable: Batch scripts can (often must) be customized to install a particular program – Zero additional cost: If you already paid for Windows, you already ‘own’ the ability to use batch files to automate software deployment

Drawbacks to ‘A Bachy Way’ Skill Set: Requires knowledge of Windows command line and basic procedural programming Customization: Each batch script requires some level of customization for the given software to be deployed Obsolescence: Future versions of Windows or a given program might not support command line / batch. In addition there is an industry perception that such methods of installing software is outdated and should be done with new, state-of-the-art tools Lack of Automatic Auditing: Many commercial deployment tools build in methods to audit software installation activates. Such audit trails would need to be incorporated into each script and/or augmented with more generalized system configuration / inventory techniques

Common ‘Template’ Variables / editable items – File names, server addresses, paths, etc. Flag File Check – Check for presence of flag file to quickly skip further processing if already installed Log install starting Deployment code – Where all the fun actually happens Log install finished and error codes if available

Example 1: Silverlight – Basic OFF setlocal REM ************************************************************************* REM Purpose: install or upgrade Silverlight client to select systems REM ************************************************************************* REM REM Set install location to SYSVOL. This will automatically route users to their REM local login server. REM set DeployServer=\\blueridge.edu\sysvol\blueridge.edu\install\silverlight REM Set InstallerName to the name of your copy of the Silverlight installer set InstallerName=Silverlight51.exe REM Set LogLocation to a central directory to collect log files. Set LogLocation=\\logserver.blueridge.edu\gp_install_logs$ Set FLAGFILE=C:\silverlight51inst.txt REM ************************************************************************* REM Deployment code below… REM ************************************************************************* if not exist %FLAGFILE% (goto DeploySilverlight) else (goto End) REM If 1 returned, the product was not found. Run setup here. :DeploySilverlight echo %0 Starting at %date% %time% >> %LogLocation%\%computername%.txt start /wait %DeployServer%\%InstallerName% /q echo %0 %date% > %FLAGFILE% echo %0 Ended at %date% %time% with error code %errorlevel%. >> %LogLocation%\%computername%.txt :End Endlocal

Example 2: Java – Arguments and 64-bit OFF setlocal REM ************************************************************************* REM Purpose: install or upgrade Java JRE v7u67 REM ************************************************************************* set DeployServer=\\blueridge.edu\sysvol\blueridge.edu\install\Java_JRE_7 REM Set InstallerName to the name of your copy of the JRE installer set InstallerName32=jre-7u67-windows-i586.exe set InstallerName64=jre-7u67-windows-x64.exe REM Set LogLocation to a central directory to collect log files. Set LogLocation=\\logserver.blueridge.edu\gp_install_logs$ Set FLAGFILE=C:\jre7u67inst.txt if not exist %FLAGFILE% (goto DeployJava) else (goto End) :DeployJava echo %0 Starting at %date% %time% >> %LogLocation%\%computername%.txt echo %date% > %FLAGFILE% REM REM Always install the 32-bit version (Default is Patch in Place) REM start /wait %DeployServer%\%InstallerName32% /s WEB_JAVA=1 WEB_JAVA_SECURITY_LEVEL=VH echo %0 %InstallerName32% ended at %date% %time% Setup ended with return %errorlevel%. >> %LogLocation%\%computername%.txt REM If 64-bit OS, install 64-bit JRE in addition to 32-bit (Default is Patch in Place) REM IF DEFINED PROGRAMFILES(x86) (goto DeployJava64) else (goto End) :DeployJava64 start /wait %DeployServer%\%InstallerName64% /s WEB_JAVA=1 WEB_JAVA_SECURITY_LEVEL=VH /L %LogLocation%\%computername%-Java.log :End Endlocal

Example 3: MS Office OFF setlocal REM ************************************************************************* REM Purpose: Install Microsoft Office 2013 using MSP file and keeping 2010 if installed REM ************************************************************************* set RootInstallLocation=\\fileserver.blueridge.edu\zInstall$ set MSPFileName=Office_2013_32_bit.MSP REM Set LogLocation to a central directory to collect log files. Set LogLocation=\\logserver.blueridge.edu\gp_install_logs$ Set FLAGFILE=C:\Office_2013_32_bit.txt REM ************************************************************************* REM Deployment code begins here. Do not modify anything below this line. REM ************************************************************************* if not exist %FLAGFILE% (goto DeployOffice2013) else (goto End) REM If 1 returned, the product was not found. Run setup here. :DeployOffice2013 echo %0 starting at %date% %time% >> %LogLocation%\%computername%_office2013.txt echo %date% > %FLAGFILE% REM Fix to ensure 2010 and 2013 don’t ‘compete’ for office registration. This doesn’t block start %RootInstallLocation%\word2010norereg.reg REM A cheap timed pause statement to make sure the reg injection completed ping -n %RootInstallLocation%\Office2013_32bit\setup.exe /adminfile %RootInstallLocation%\%MSPFileName% echo %0 completed at %date% %time% with error code %errorlevel%. >> %LogLocation%\%computername%_office2013.txt REM If 0 or other was returned, the product was found or another error occurred. Do nothing. :End Endlocal

Example 4: Lynx Guide OFF set DeployLocation=\\blueridge.edu\SYSVOL\blueridge.edu\Install\Lynx Set FLAGFILE=C:\lynxinstallv2_ txt Set DONOTINSTALLFLAG=C:\lynx_no_install.txt set InstallerFileName=LynxClient_v msi set dotNetInstallerScript=\\blueridge.edu\NETLOGON\install_dotnet.bat REM By default the Lynx client will install the computer into the HCC profile. REM set LYNXPROFILE="HCC" Set LogLocation=\\logserver.blueridge.edu\gp_install_logs$ if exist %DONOTINSTALLFLAG% goto End if not exist %FLAGFILE% (goto DeployLynx) else (goto End) :DeployLynx echo %date% > %FLAGFILE% echo %0 started at %date% %time% >> %LogLocation%\%computername%-Lynx.txt call \\blueridge.edu\NETLOGON\lynx_panic_icon_v2_install.cmd REM Fancy code stolen from technet to detect whether at least.Net 3.0 is already installed REM Added SDY 11/25/13 REM reg query "HKLM\Software\Microsoft\NET Framework Setup\NDP" /s /v version | findstr /i version | sort /+26 /r | findstr 3.0. if ERRORLEVEL 1 start /wait %dotNetInstallerScript% REM Look for TCC strings in computer name and adjust default Lynx clinet profile if REM the computername contains the name of TCC buildings. REM echo %COMPUTERNAME% | findstr /i "TCS" > nul if ERRORLEVEL 0 Set LYNXPROFILE="TCC" echo %COMPUTERNAME% | findstr /i "TCT" > nul if ERRORLEVEL 0 Set LYNXPROFILE="TCC" echo %COMPUTERNAME% | findstr /i "TCC" > nul if ERRORLEVEL 0 Set LYNXPROFILE="TCC" msiexec /I %DeployLocation%\%InstallerFileName% LYNXSERVERHOSTNAME="lynx.blueridge.edu" PROFILE=%LYNXPROFILE% /quiet /forcerestart echo %0 using %InstallerFileName% ended at %date% %time% with error code %errorlevel%. >> %LogLocation%\%computername%-Lynx.txt :End

Deployment Logistics Script Location – We use the Active Directory NETLOGON share to store most scripts + Automatically readable by all domain users and domain member computer accounts + Automatically a trusted location via default domain policies (usually) + Replicated among all domain controllers -/+ Only domain admins can modify – shouldn’t change permissions but makes delegating maintenance more difficult

Deployment Logistics Installation File Location – SYSVOL SYSVOl great location for small install files for unlicensed programs + Automatically replicated among domain controllers + Computers are automatically directed to the ‘nearest’ available domain controller – (controlled by AD Sites + Services) – Reduce WAN traffic – Automatic (but random) ‘load balancing’ - All files stored under SYSVOL share(s) are stored on the C: drive of all domain controllers – Distributed File System Shared Folder A DFS shared folder is an even better location to store installation files. All of the benefits of SYSVOL but with more control and flexibility: – + DFS allows for additional control over replication of data among member servers as well as directing clients which server to use – + Control security as with any other shared network folder – Specific Designated Server(s) If a DFS infrastructure isn’t available, you could dynamically determine install server location in installation script: – e.g. “IF %LOGONSERVER% == WESTCAMPUSDC

Using Group Policy to Automate Deployment Set the scripts as Computer Start up Scripts via Group PolicyComputer Start up Scripts – Scripts run as Computer Local System Account: + bypass UAC prompts in Windows 7,8 Remember to set network share permissions to allow computer account access Why start up scripts vs directly deploying MSI via GP? Deployment scripts can also be manually run by a user (with admin rights) or set as a ‘job’ or task in a 3 rd party deployment tool such as Altiris

Example of Group Policy Settings

GP Deployment Tips Use Multiple Groups – Reduce risk that an error will affect a large number of computers – Allows for testing and customization GPO Settings: – Wait for Network – Run synchronously (one at a time)synchronously

Discussion Other methods? Drawbacks? Is batch just too old fashioned and boring? … … ya know, there is a beach nearby…

Thanks and Enjoy Atlantic Beach!