Application Management

Slipstream an MSP into an MSI

Commandline:

MSIEXEC.EXE /p PATCHFILE.MSP /a ORIGINALMSI.MSI SHORTFILENAMES=TRUE /qb

Active Directory

Creating the Home and Profile shares correctly

http://blogs.technet.com/b/askds/archive/2008/06/30/automatic-creation-of-user-folders-for-home-roaming-profile-and-redirected-folders.aspx

How-To SQL

Search through an SQL database for a text string

Use the following stored procedure to find a text string in a database. This is a VERY expensive procedure.

Credit: http://stackoverflow.com/questions/15757263/find-a-string-by-searching-all-tables-in-sql-server-management-studio-2008


(
@SearchStr nvarchar(100)
)
AS
BEGIN

CREATE TABLE #Results (ColumnName nvarchar(370), ColumnValue nvarchar(3630))

SET NOCOUNT ON

DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128), @SearchStr2 nvarchar(110)
SET @TableName = ”
SET @SearchStr2 = QUOTENAME(‘%’ + @SearchStr + ‘%’,””)

WHILE @TableName IS NOT NULL

BEGIN
SET @ColumnName = ”
SET @TableName =
(
SELECT MIN(QUOTENAME(TABLE_SCHEMA) + ‘.’ + QUOTENAME(TABLE_NAME))
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = ‘BASE TABLE’
AND QUOTENAME(TABLE_SCHEMA) + ‘.’ + QUOTENAME(TABLE_NAME) > @TableName
AND OBJECTPROPERTY(
OBJECT_ID(
QUOTENAME(TABLE_SCHEMA) + ‘.’ + QUOTENAME(TABLE_NAME)
), ‘IsMSShipped’
) = 0
)

WHILE (@TableName IS NOT NULL) AND (@ColumnName IS NOT NULL)

BEGIN
SET @ColumnName =
(
SELECT MIN(QUOTENAME(COLUMN_NAME))
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = PARSENAME(@TableName, 2)
AND TABLE_NAME = PARSENAME(@TableName, 1)
AND DATA_TYPE IN (‘char’, ‘varchar’, ‘nchar’, ‘nvarchar’, ‘int’, ‘decimal’)
AND QUOTENAME(COLUMN_NAME) > @ColumnName
)

IF @ColumnName IS NOT NULL

BEGIN
INSERT INTO #Results
EXEC
(
‘SELECT ”’ + @TableName + ‘.’ + @ColumnName + ”’, LEFT(‘ + @ColumnName + ‘, 3630)
FROM ‘ + @TableName + ‘ (NOLOCK) ‘ +
‘ WHERE ‘ + @ColumnName + ‘ LIKE ‘ + @SearchStr2
)
END
END
END

SELECT ColumnName, ColumnValue FROM #Results
END

Uncategorized

Grant rights for Standard User to install local printers

Computer Configuration\Policies\Administrative Templates\System\Driver Installation

The setting is called “Allow non-administrators to install drivers for these devices setup classes”.

You will need to add the device class GUID of printers. The GUIDs can be found here: http://msdn.microsoft.com/en-us/library/ff553426(v=vs.85).aspx

A few more steps are required for domain infrastructures where you add non-local printers:

  1. Configure Group Policy settings for “Point and Print” on BOTH computer and user settings (Vista previously only had user settings). The Location of the settings can be found here in GPOs: Computer Configuration\Policies\Administrative Templates\Printers\Point and Print Restrictions User Configuration\Policies\Administrative Templates\Control Panel\Printers\Point and Print Restrictions
  2. Point and Print settings will vary on what kind of restrictions you want, but if you want users to be able to install ANY printer, with ANY driver, from ANY server, set the Point and Print settings to “Disabled”.
  3. There are also other Group Policy settings that are related to print services, but I won’t list them here. They may or may not relate to your planned print infrastructure, so read through them properly and try them out in testlabs if the above steps does not work for you.
Software Deployment

OSD Software Deployment – Office 2013

Methodology

  • setup.exe /admin
  • Configure LICENSING AND USER INTERFACE
  • Accept Terms
  • Display Level NONE
  • Check SUPRESS MODAL, NO CANCEL
  • Configure MODIFY SETUP PROPERTIES
  • Create Property: SETUP_REBOOT = Never
  • Configure MODIFY USER SETTINGS
  • Microsoft Office 2013 -> Privacy -> Trust Center -> Disable Opt-In Wizard = Enabled
  • Microsoft Office 2013 -> Subscription Activation -> Automatically activate Office with… = Enabled
  • Microsoft Office 2013 -> First Run -> Disable First Run Movie = Enabled
  • Microsoft Office 2013 -> First Run -> Disable Office First Run on Application Boot = Enabled
  • Save to UPDATES folder
  • Create an Application in SCCM referencing the .MSI in the WW folder
  • Replace all the command lines with setup.exe
  • Correct the content location path
  • Replace uninstall with setup.exe /uninstall <Version> (either ProPlusr or Standard)
Software Deployment

OSD Software Deployment – Internet Explorer 10

Methodology:

  • Use the IEAK10
  • Configure Completely Silent option
  • Configure the Reboot Settings to:
  • Create a package in SCCM for the IE10 prerequisites:

KB2533623

KB2670838

KB2729094

KB2731771

KB2786081

  • Put the installmsu.vbs file in the directory and use “cscript.exe installmsu.vbs” to call it
  • Create an Application in SCCM which references the newly created .MSI
Client Deployment Microsoft Deployment Toolkit System Center 2012 Configuration Manager

Deploy Multiple OS WIMs during a UDI Task Sequence in SCCM

UDI provides the ability to select a WIM file from a GUI for deployment. The issue is that the APPLY OPERATING SYSTEM step in SCCM performs two functions:

  1. Assign the Image and Index to Apply
  2. Apply the Image

If these steps were separated, this would function fine and the UDI wizard could assign the Image and Index and the APPLY OPERATING SYSTEM step would then apply the assigned Image and Index. Since they are combined, SCCM will automatically overwrite whatever the UDI wizard has assigned with the information in the APPLY OPERATING SYSTEM step.

To workaround this issue:

  1. Create an APPLY OPERATING SYSTEM step for each Image and Index combination you have
  2. Make each APPLY OPERATING SYSTEM step conditional on the OSDImageName and OSDImageIndex variable matching the applicable step

How this works, the UDI Wizard will assign the value to OSDImageName and OSDImageIndex, and the TS will check that value, and apply the appropriate APPLY OPERATING SYSTEM step.

How-To Microsoft Deployment Toolkit System Center 2012 Configuration Manager

Domain Join with UDI on SCCM 2012 SP1 with MDT 2012 Update 1

To set the Domain Name and Password for the UDI Wizard, you can set the following variables BEFORE the UDI Wizard is initialized and the values will be prepopulated:

OSDJoinAccount = DOMAIN\Username

OSDJoinPassword = Password

The other option is to use the Apply Network Settings step and set the credentials there, however you will need to capture the OSDDomainName and OSDDomainOUName variables as those will be overwritten by SCCM and replace them after the step is run.

Be sure to remove the value validation and validation of the AD credentials if you setting this using the Apply Network Settings step and lock the fields in the UDI Wizard.

 

Issues System Center 2012 Configuration Manager

WSUS on Windows Server 2012 fails at Post Installation Tasks

Resolution

wsusutil postinstall SQL_INSTANCE_NAME=<SERVERNAME>\<INSTANCENAME> CONTENT_DIR=<DIR>

How-To Issues SQL

How to change the Max Degree of Parallelism (DOP) on SQL Server

Create a query with a following Syntax:

sp_configure 'show advanced options', 1;
GO
RECONFIGURE WITH OVERRIDE;
GO
sp_configure 'max degree of parallelism', 2;
GO
RECONFIGURE WITH OVERRIDE;
GO

References

https://connect.microsoft.com/SQLServer/feedback/details/740234/poor-performance-with-parallelism-and-top