Monday, November 17, 2014

ConfigMgr: Install Fonts as an Application without Local Admin

ConfigMgr: Install Fonts as an Application without Local Admin

Purpose

To document a process on how to utilize a software delivery system like ConfigMgr to install Fonts so users do not need local admin rights.

Table of Contents

Purpose. 1

Scope. 1

Summary. 1

Prerequisites. 1

Script Modification before ConfigMgr Setup. 1

ConfigMgr Application Setup. 2

 

Scope

To help other Admins limit user rights on machines deployed

Summary

Download DetectionMethod.zip and FontsInstall.zip from the Prerequisite area and follow the steps below. These scripts are written in PowerShell so PowerShell is a requirement.  After the application is run you can check your results by looking at the log file that is created at c:\temp\fontinstall.log.  The DetectionMethod.ps1 can be modified to have a different timespan which is how it determines if it can run again.  It is currently set to 5 minutes.

 

Prerequisites

DetectionMethod.zip

FontsInstall.zip

PowerShell

Script Modification before ConfigMgr Setup

1.       Create a new source folder for the scripts in the prerequisites section, download and extract the scripts

2.       Edit FontsInstall.ps1

a.       $FromPath needs to be updated in FontInstall.ps1 script to be the path your users will save the fonts to.  The script will pick the fonts up in this location and install them into c:\windows\fonts.  By default I have $FromPath set to c:\Fonts

Detection Method script needs to be updated to the directory you specify the log file to be written in the FontInstall.ps1 script

ConfigMgr Application Setup

1.       Open ConfigMgr Console and navigate to \ à Software Library àOverview à Application Management àApplications

a.       Right Click Applications and select Create Application

                                                               i.      General

1.       Manually specify the application information

2.       Click Next

                                                             ii.      General Information

1.       Fill out as necessary

2.       Click Next

                                                            iii.      Application Catalog

1.       Fill out as necessary

2.       Click Next

                                                           iv.      Deployment Types

1.       Click Add

a.       General

                                                                                                                                       i.      Type: Script Installer

                                                                                                                                     ii.      Manually specify the deployent type information

                                                                                                                                    iii.      Click Next

b.      General Information

                                                                                                                                       i.      Fill out as necessary

                                                                                                                                     ii.      Click Next

c.       Content

                                                                                                                                       i.      Content Location: <UNC PATH> of the FontsInstall.ps1 file

                                                                                                                                     ii.      Installation Program: Powershell.exe -executionpolicy bypass -file FontsInstall.ps1

                                                                                                                                    iii.      Click Next

d.      Detection Method

                                                                                                                                       i.      Click Use a custom script to detect…

                                                                                                                                     ii.      Click Edit

1.       Script Editor

a.       Script Type: PowerShell

b.      Click Open

                                                                                                                                                                                                               i.      Browse to where you saved DetectionMethod.ps1

                                                                                                                                                                                                             ii.      Click Open

c.       Click OK

                                                                                                                                    iii.      Click Next

e.      User Experience

                                                                                                                                       i.      Install for System

                                                                                                                                     ii.      Whether or not a user is logged in

                                                                                                                                    iii.      Click Next

f.        Requirements

                                                                                                                                       i.      Click Next

g.       Dependencies

                                                                                                                                       i.      Click Next

h.      Summary

                                                                                                                                       i.      Click Next

i.         Completion

                                                                                                                                       i.      Click Close

2.       Click Next

                                                             v.      Summary

1.       Click Next

                                                           vi.      Completion

1.       Click Close

b.      Distribute the Content

c.       Deploy the Application

 

Thursday, April 10, 2014

Software Updates Deployment Package Distribution Error

Software Updates Deployment Package Distribution Error.

Problem

I have had a few instances where after I change my automatic deployment rule for software updates the deployment package will not distribute to the distribution points as it thinks it downloaded the updates but cannot find the directory it is looking for.  The error in the distmgr.log is “The source directory \\<ServerName>\<FolderPath>\<UpdateGUID> doesn't exist or the SMS service cannot access it, Win32 last error = 2”.  Another place to find the error is in the Content Status of the Package by going into the Configuration Manager Console\Monitoring\Distribution Status\Content Status\ Find your Package\ Click View Status\Click the Error Tab\ Under Asset Details \Click an Errored Distribution Point\click More Details. It will say something similar to “The source directory “\\<ServerName>\<FolderPath>\<UpdateGUID> “ for package “<PACKAGE ID> does not exist...”

Solution

I pulled this information from a couple of sources http://www.verboon.info/2013/08/configmgr-2012-troubleshooting-a-software-update-package/ and http://blogs.technet.com/b/ken_brumfield/archive/2013/01/10/troubleshooting-sccm-software-update-deployment-package-distribution-due-to-missing-directories.aspx

Had to give credit where it was due J

Steps to Resolve

1.       Open SQL Server Management Studio and create a new query pointed to your SCCM database (Not Master)

a.       Copy and paste this query

DECLARE @MissingSourceDirectory NVARCHAR(512)
DECLARE @PackageId NVARCHAR(8)
SET @MissingSourceDirectory = 'c34e2458-681f-4a8b-8941-a460c2de314a'
SET @PackageId = '0020000D'

SELECT CASE
        WHEN ci.BulletinID LIKE '' OR ci.BulletinID IS NULL THEN 'Non Security Update'
        ELSE ci.BulletinID
        END As BulletinID
    , ci.ArticleID
    , loc.DisplayName
    , loc.Description
    , ci.IsExpired
    , ci.DatePosted
    , ci.DateRevised
    , ci.Severity
    , ci.RevisionNumber
    , ci.CI_ID
FROM dbo.v_UpdateCIs AS ci
LEFT OUTER JOIN dbo.v_LocalizedCIProperties_SiteLoc AS loc ON loc.CI_ID = ci.CI_ID
WHERE ci.CI_ID IN
(
    SELECT [FromCI_ID]
    FROM [dbo].[CI_ConfigurationItemRelations] cir
    INNER JOIN [dbo].[CI_RelationTypes] rt ON cir.RelationType = rt.RelationType
    WHERE cir.ToCI_ID IN
    (
        SELECT CI_ID
        FROM [dbo].[CI_ContentPackages] cp
        INNER JOIN [dbo].[CI_ConfigurationItemContents] cic ON cp.Content_ID = cic.Content_ID
        WHERE cp.ContentSubFolder = @MissingSourceDirectory AND cp.PkgID = @PackageId
    )
)

b.      Replace the highlighted areas with the values from your error

                                                               i.      @missingSourceDirectory

                                                             ii.      @PackageId

c.       Execute the Query

                                                               i.      This should give you the KB Article

2.       Open the Configuration Manager Console

a.       Go to Software Library>Software Updates>Deployment Packages

                                                               i.      Open the problem Deployment package to where you can see all the updates listed

                                                             ii.      Search for the KB you found above and delete it from the deployment package

b.      Go to Software Library>Software Updates>Software Update Groups

                                                               i.      Look for the Update Groups with the Red X and open them up

                                                             ii.      Look for the Red X updates and right click on them and click Download

1.       If it is expired or superseded just delete it from the update group as you will be unable to download it.

3.       Watch the Distmgr.log file and see if it completes its checks and start distributing the package to your distribution points

4.       This should resolve the issue if it does not look at the logs again and repeat as it will be erroring on a new GUID now.

a.       If you find several you may wish to take a shotgun approach and open the Deployment package and put in a date range you think is the issue and then delete the updates from the deployment package and then go back to the Software Update Groups and tell all the Red Xs to download again.  This should resolve the issue as well.  After each successful download watch the DistMgr.log to validate a successful deployment

Monday, January 20, 2014

Dell Venue 11 Pro Battery Life

In the lack of posts that I was able to find about actual battery life for the new Dell Venue 11 Pro tablet I decided to post my own in hopes it will help someone out there. This will be just a quick post so forgive the lack of formatting.
Both the units below were reimaged to our corporate image so if there were special power savings options those would have been lost. Straight video on a loop test to achieve runtime.

Dell Venue 11 Pro 5130 (6 hrs to shutdown)
  • Windows 8.1 Enterprise x86
  • Atom z3770
  • 2GB Memory
  • 64GB SDD

Dell Venue 11 Pro 7139 (4.5 hrs to shutdown)
  • Windows 8.1 Enterprise x64
  • i5 4300Y
  • 8GB Memory
  • 256GB SDD

Thursday, September 5, 2013

Offline Servicing Failure Resolved

Offline Servicing Failure Resolved

Problem

I had an issue where any of my Offline Servicing jobs to my Operating System images kept failing.  In looking at the log OfflineServicingMgr.log I noticed several errors Failed to install update with error code -2146498512.  I hope this helps someone else as it took a couple days for me to find the information.

Solution

Found the solution buried in the TechNet forum article HERE.  Below is the meat that allowed me to resolve my issue.

Process

My configuration is as follows:

·         ConfigMgr SP1 can’t remember the CU running on Windows Server 2008 R2 and SQL Server 2008 R2 on a Hyper-V 2012 Host.

·         SCEP is on and real-time protection is enabled

·         Try to do an offline service of your operating system and see what drive letter the folder ConfigMgr_OfflineImageServicing is created on.

·         Create the folder ConfigMgr_OfflineImageServicing manually on the drive it was created on and reset the permissions to their defaults

·         Create a SCEP exclusion for the directory %windir%\temp\*.*

·         Create a SCEP exclusion for the directory <driveletter>\ConfigMgr_OfflineImageServicing\*.*

·         Create a SCEP exclusion for the process <driveletter>\Program Files (x86)\Windows Kits\8.0\Assessment and Deployment Kit\Deployment Tools\x86\DISM\DISM.exe

·         Create a SCEP exclusion for the process <driveletter>\Program Files (x86)\Windows Kits\8.0\Assessment and Deployment Kit\Deployment Tools\amd64\DISM\DISM.exe

·         Create a SCEP exclusion for dismhost.exe  ***I was unable to find the whole path for this so I just put it in without a path.