Tuesday, 13 December 2011

Citrix Receiver and Online plug-in running at the same time


** UPDATE 14/04/2012 *****


Citrix has resolved the issue in Receiver 3.2. Please see this article point 33


** UPDATE 23/03/2012 *****

The version of the Receiver that will fix the issues is Citrix Receiver 13.1.001.10. Citrix will release a knowledge base article ID CTX132171 in a couple of weeks. Unfortatnly I had to downgrade 100 clients as the solution came to late. I hope it helps you all.

** UPDATE 7/03/2012 CITRIX HAS A FIX **

Hi All, I have been working with Citrix and they now have a fix.

Apparently it's a timing issue. Sometimes receiver.exe does not successfully register with windows in time during the start-up process.  

The testing will likely be completed in 8 to 10 weeks so if you can't wait you may need to downgrade as I have.

** UPDATE 9/02/2012 THIS DOESN'T WORK FOR ME **

Apply this key to all of your citrix servers. Restart your client and problem resolved.

Registry Key: HKEY_LOCAL_MACHINE/System/CurrentControlSet/Control/Citrix/wfshell/TWI
Value Name: SeamlessFlags
Value Type: REG_DWORD
Values: Flags 0x20


The Citrix article can be found here, option number 5.
A thread on the issue was located here


** UPDATE  2/02/2012  THE BELOW SOLUTION DOES NOT WORK ***
Hi everyone, hopefully this will save you all days of troubleshooting as it created for me.
Before I give you the background, I will give you the solution.
Enable the following GPOs and make sure your workstations have more than 1 GB of RAM.

Computer Configuration => Administrative Templates => System => Scripts => Run logon scripts synchronously
Computer Configuration => Administrative Templates => System => Scripts => Run startup scripts asynchronously


I created a new GPO and applied a WMI filter for systems with 1 GB or less. This is so the newer systems do not get these settings.
SELECT TotalPhysicalMemory FROM Win32_ComputerSystem WHERE TotalPhysicalMemory <= 1050000000
Select * from Win32_OperatingSystem Where Not (Caption Like "%server%")
Background:

I upgraded all of our workstations from the Citrix online plug-in to the new Citrix receiver 3.0 and 13.0 enterprise client. I used SCCM and Citrix’s merchandising server to deploy the new versions.

Majority of our workstations didn’t have any issues however a few did. Workstations that had the issue displayed the XenApp plug-in and receiver in the system tray. When a user tried to open a published resource, it would create an endless loop of refreshing the citrix applications. 



I stumbled across this article and this article. I thought that they may be my solution too, but they were not.  I re-imaged the workstation with our SOE and deployed the receiver and client with the same result.  I deployed the same SOE to a VM box and the error did not occur. It didn’t make any sense. It had to be a software issue didn't it?
The solution came to me when I caught onto the following common traits:

  • Only occured on old workstations.
  • Only happened for the first user to logon to a powered off workstation

It occurred to me. I dropped the RAM of the VM SOE to 512mb of RAM and the error was reproduced. I increased the RAM to 1 GB and the error was gone.

Don’t ask me why but I assume the workstation needs time to process the new Citrix reciever and enterprise client, before the user logs on. When a workstation has less memory it takes longer so the above solution works for me. 

Please let me know your results. I tried everything under the sun to resolve this issue, I would love to know if the above works out to be your solution.

Regards,

Blair






Tuesday, 22 November 2011

Deploying Citrix Receiver 3.0 & Enterprise Client 13.0 From SCCM

Hi All,

I don't know about you, but I was planning to roll out the new Citrix on-line plugin. Recently, I was rolling out a new web interface and needed to change all of the citrix clients to point to the new location. The older clients can be changed via GPO's however, the receiver clients are a little harder. The only real way to change the receiver clients is by utilising the Citrix merchandising server.

Since I needed to implement the Citrix merchandising server I decided I was going to roll out the new Citrix receiver 3.0 & Enterprise client 13.0 from SCCM.

Below is the method I used.

Instructions for Merchandising Server
  • I used these instructions to deploy the merchandising server. I created one default rule to deploy the  enterprise client. 
    • I have included the plug-in for two reasons. 
      • When I need to change the server URL I can just change it in this deployment and the changes ripple down to all clients. 
      • If the client gets removed from the workstation it will automatically be re-installed.
  • Generate a new token within your merchandising server under configuration => authentication:  This will allow you to deploy the receiver with pass-thru authentication.
  • Download the Citrix Receiver 3.0 and On-line Plug-in (Enterprise)  from your merchandising server so it is ready for application deployment. If you have followed the above link to install the merchandising server then you will already know how to download the required clients. 
Instructions for Deploying from SCCM
  • Package the applications in SCCM
  • Use the following command line for the Citrix Receiver Enterprise 13.0 program, changing the server_location and token variables.
    CitrixReceiverEnterprise.exe /silent SERVER_LOCATION=https://ClientWebAddress AUTOUPDATE=true TOKEN=TokenYouCreated ENABLE_SSON=Yes
  • Use the following command line for the Citrix Receiver Updater 3.0 program, changing the server_location and token variables.
    CitrixReceiverUpdater.msi /quiet SERVER_LOCATION=https://MerchandisingWebAddress AUTOUPDATE=true TOKEN=TokenYouCreated ENABLE_SSON=Yes
  • Under the advanced tab for the package Citrix Receiver Updater 3.0 daisy chain the Citrix Receiver Enterprise 13.0 to always run before.
  • Setup you collection to deploy:
    • Membership: In my case I included all Windows XP and Windows 7 workstations that do not have the two clients already installed and computers that are not a member of a SG
      select SMS_R_System.ResourceId, SMS_R_System.ResourceType, SMS_R_System.Name, SMS_R_System.SMSUniqueIdentifier, SMS_R_System.ResourceDomainORWorkgroup, SMS_R_System.Client from  SMS_R_System where (SMS_R_System.OperatingSystemNameandVersion like "%Workstation 5.1%" or SMS_R_System.OperatingSystemNameandVersion like "%Workstation 6.1%") and SMS_R_System.Name like "LCHSPC%" and (not SMS_R_System.ResourceId in (select SMS_R_System.ResourceId from  SMS_R_System inner join SMS_G_System_ADD_REMOVE_PROGRAMS on SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceID = SMS_R_System.ResourceId where SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName = "Citrix Receiver (Enterprise)")) and (not SMS_R_System.ResourceId in (select SMS_R_System.ResourceId from  SMS_R_System inner join SMS_G_System_ADD_REMOVE_PROGRAMS on SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceID = SMS_R_System.ResourceId where SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName = "Citrix Receiver Updater ")) and not SMS_R_System.ResourceId in (SELECT SMS_R_SYSTEM.ResourceID  from SMS_R_System  WHERE SMS_R_System.SystemGroupName = "Domain\\SG")
    • Maintenance Windows: Outside of business hours


    • Name
  • Advertise you package to your collection and you’re done.

I have chosen to force the deployment outside of business hours. The install process will remove the current on-line plug-in. I have also given the user the option to install it during business hours.

Now all my systems are all running the same client and I can change the server URL from one location. I can also any new Citrix client just by adding it to the merchandising server.

I do hope this helps. If you have any questions please leave a comment


Thursday, 10 November 2011

CcmSetObjectSecurityInit Error when installing SCCM client on Server 2008

Hi All,

I recently had an issue with the SCCM client not installing on a 2008 server with IIS installed.

Within the client.msi.log I found the following error:

Error 25001. Setup failed due to unexpected circumstances
The error code is 80004005

Action ended 8:59:25: CcmSetObjectSecurityInit. Return value 3.




After days of searching I found this blog and changed the permissions on the Anonymous Authentication in IIS to the local administrator account. Installed the SCCM client and then changed it back.


I hope this saves you some time.

Blair




Tuesday, 20 September 2011

Allow Non-Administrators to Activate Microsoft Products

Hi All,

Office 2010 requires administrative rights to activate their products. 

If you are deploying an office product from SCCM, not using KMS and users do not have administrator rights you may want to use the following VB script at the end of your task sequence.

on error resume next
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.RegWrite "HKLM\SOFTWARE\Microsoft\OfficeSoftwareProtectionPlatform\UserOperations", 1 ,"REG_DWORD"
  • Create a package with the Vbscript

  • The program should call the Vbscript
  •  Add the package add the end of your task sequence to import the register setting. Ensure you disable 64-bit file system redirection. 

You may also want to advertise this package to workstations that already have the application.

Thursday, 25 August 2011

Shadow Protect Versus Stand Alone Task Media from SCCM


Hi All,

Shadow Protect is one of the best products I have used to recover systems and migrate to new hardware. It’s also an absolutely fantastic product for imaging new PC’s.

In an IT business it’s an efficient way to deploy operating systems for clients with their SOE. The process looks something like the following:

Boot from Shadow Protect IT edition
Apply Images
Install Drivers
Sysprep
Activate Office & Windows 
Join to Domain

Each PC will take about one hour and it’s hard to do multiple systems at the same time because it does require a lot of user interaction. 

I’ve often had conversations with IT consultants as to why SCCM it a superior solution to deploy client images. I lacked the justification, until I found out about Stand Alone Task Media.

This is how the task looks when using SCCM

Boot from USB
Type in Password
Type in Computer Name

The benefits are:

The task sequence will take care of everything including applying updates and joining to the domain.
The process can take as little as 20 minutes
The process requires minimal user interaction and can be performed by a user.
You can do as many systems as you want 
You can have a task sequence for all of your clients
You do not need to setup SCCM at each of the client sites.

Investing in SCCM infrastructure is investing in a profit for your organisation. 


Sunday, 21 August 2011

A SCCM report showing all compliant systems

Hi All,

The other reports I've written provide you with the information you need to ensure all your systems are up to date however, I haven't got a report that shows all the systems that are compliant.

Here is the query that will give you this report.

SELECT     TOP (100) PERCENT dbo.v_R_System.Netbios_Name0 AS [Computer Name], MAX(DISTINCT dbo.v_UpdateAssignmentStatus.ComplianceTime) 
                      AS [Time Checked]
FROM         dbo.v_UpdateAssignmentStatus INNER JOIN
                      dbo.v_CIAssignment ON dbo.v_UpdateAssignmentStatus.AssignmentID = dbo.v_CIAssignment.AssignmentID LEFT OUTER JOIN
                      dbo.v_R_System ON dbo.v_UpdateAssignmentStatus.ResourceID = dbo.v_R_System.ResourceID
WHERE     (dbo.v_R_System.Obsolete0 = 0) AND (dbo.v_R_System.Client0 = 1) AND (dbo.v_UpdateAssignmentStatus.IsCompliant = 1)
GROUP BY dbo.v_R_System.Netbios_Name0
ORDER BY [Computer Name]

Regards,

Blair

Thursday, 18 August 2011

SCUP & SCCM & Vendor Updates


Hi Everyone,

One of the battles I have when installing SCCM for clients is convincing them to use SCCM instead of WSUS to manage updates.

I must admit, I have never used WSUS by itself. SCCM has many out of the box benefits that include centralised management, efficient remote distribution and customised reporting. However, it may require more administration then WSUS as you need to distribute the package to your Distribution points and manually clean deployment packages.

Well today I know another great reason why to use SCCM to manage updates. With the Integration of System Center Update Publisher 2011 (SCUP) you can now manage third party software updates.

For free, you can manage Adobe, HP, and Dell updates. If use the SCUPdates from shavlik you can manage many more third party vendor updates.

You can use Kent Agerlund’s blog to download and configure SCUP:
To get SCUPdates check out this link
To see a list of supported applications check this out
If you going to use the automatic updates feature this link is a must

Have fun. I’m glad I discovered this product.

Blair


Monday, 15 August 2011

A SCCM query showing a count of all active systems with their processor type and workstation model

I recently required a list of all active systems with their model number and processor type. Here is the query that will do it.


SELECT     TOP (100) PERCENT COUNT(SYS.Netbios_Name0) AS Count, Processor.Name0 AS Processor, dbo.v_GS_COMPUTER_SYSTEM.Model0 AS [Computer Model]
FROM         dbo.v_R_System AS SYS INNER JOIN
                      dbo.v_GS_PROCESSOR AS Processor ON SYS.ResourceID = Processor.ResourceID INNER JOIN
                      dbo.v_GS_COMPUTER_SYSTEM ON SYS.ResourceID = dbo.v_GS_COMPUTER_SYSTEM.ResourceID
WHERE     (SYS.Obsolete0 = 0) AND (SYS.Client0 = 1)
GROUP BY Processor.Name0, dbo.v_GS_COMPUTER_SYSTEM.Model0
ORDER BY Count DESC

Monday, 25 July 2011

Administrative and Maintenance Tasks for your Exchange 2010 Server

If you are like me, you like a nice clean Exchange environment. I recently migrated an environment from Exchange 2003 to Exchange 2010 and found the following tasks great to ensure a consistent and clean environment. Just add them to your exchange task scheduler and you can automate these reports to your mailbox.

Power Shell Commands (Actions)
  • Active Sync: Enabled by default, the below script disables it for all users. It only allows this feature to be enabled for members of the security group active sync users.
#Adding Exchange Snap In to execute Exchange CmdLets in this script
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin
# Disable ActiveSync for ALL accounts because Microsoft hates you
get-Mailbox -ResultSize:unlimited | set-CASMailbox -ActiveSyncEnabled:$False -ErrorAction SilentlyContinue -WarningAction SilentlyContinue
# Assign all members of the group to a dynamic array
$allUsers = Get-DistributionGroupMember -Identity 'Active Sync Users'
# Loop through the array
foreach ($member in $allUsers) {
       # Set ActiveSync for each member of the array
       $member | Set-CASMailbox –ActiveSyncEnabled $true
  }
  • Outlook Anywhere: When enabled on Exchange 2010, this feature is enabled for all users. The below script disables it for all users. It only allows this feature to be enabled for members of the security group outlook anywhere users.
get-Mailbox -ResultSize:unlimited | Set-CASMailbox -MAPIBlockOutlookRpcHttp:$True -ErrorAction SilentlyContinue -WarningAction SilentlyContinue
# Assign all members of the group to a dynamic array
$allUsers = Get-DistributionGroupMember -Identity 'Outlook Anywhere Users'
# Loop through the array
foreach ($member in $allUsers) {
       # Set ActiveSync for each member of the array
       $member | Set-CASMailbox -MAPIBlockOutlookRpcHttp:$False
  }

PowerShell Commands (Reports)
  • Report on mailboxes so I can identify any anomalies. The report will show mailboxes over their limit, that don't empty their deleted items, and the database they belong too. We don't want mailboxes for casual staf on databases the reside on high performance drives.
Get-Mailbox -Server SERVERNAME -ResultSize Unlimited | Get-MailboxStatistics | Select DisplayName,StorageLimitStatus,@{name="TotalItemSize (MB)";expression={$_.TotalItemSize.Value.ToMB()}},@{name="TotalDeletedItemSize (MB)";expression={$_.TotalDeletedItemSize.Value.ToMB()}},ItemCount,DeletedItemCount,@{label="Database";expression={$_.database}} | Sort "TotalItemSize (MB)" -Descending | Export-Csv " EXPORT FILE LOCATION .CSV" –NoTypeInformation
  • Report on any mailboxes that do not have a quota set. If they don’t have a quota set then I want to know what their Send and Receive Quotas are.
Get-Mailbox -Server SERVERNAME -ResultSize Unlimited | Get-Mailbox -Filter { (UseDatabaseQuotaDefaults -eq $false) }  | SELECT DisplayName, ProhibitSendReceiveQuota,IssueWarningQuota,UseDatabaseQuotaDefaults | Export-Csv "D:\ExchangeScripts\AllMailboxeswithoutDatabaseQuota.csv" -NoTypeInformation
  • Report on all mailboxes that are disabled. This is wasting storage space and keeping AD untidy, it also keeps HR and our support team on top of user accounts.
Get-Mailbox -Filter 'UserAccountControl -eq "AccountDisabled, NormalAccount"' -Server SERVERNAME -RecipientTypeDetails UserMailbox | Get-MailboxStatistics | ft DisplayName, database, TotalItemSize, ItemCount | Out-File " EXPORT FILE LOCATION .TXT"
  • Report on all archive mailboxes so I can identify any anomalies. The report will show archive mailboxes over their limit, that don't empty their deleted items, and the database they belong too. We don't want archive mailboxes for casual staff on databases the reside on high performance drives.
Get-Mailbox -Archive -ResultSize Unlimited | Get-MailboxStatistics -Archive | Select DisplayName,StorageLimitStatus,@{name="TotalItemSize (MB)";expression={$_.TotalItemSize.Value.ToMB()}},@{name="TotalDeletedItemSize (MB)";expression={$_.TotalDeletedItemSize.Value.ToMB()}},ItemCount,DeletedItemCount,@{label="Database";expression={$_.database}} | Sort "TotalItemSize (MB)" -Descending | Export-Csv "D:\ExchangeScripts\AllArchiveMailboxes.csv" -NoTypeInformation
  • Report on all archive database quotas. We have a standard and want to ensure this is consistent for all archive mailboxes.
Get-Mailbox -Archive  | SELECT DisplayName,  @{name="ArchiveQuota (MB)";expression={$_.ArchiveQuota.Value.ToMB()}}, @{name="ArchiveWarningQuota (MB)";expression={$_.ArchiveWarningQuota.Value.ToMB()}} | Sort "ArchiveQuota (MB)" -Descending | Export-Csv " EXPORT FILE LOCATION .CSV" " -NoTypeInformation
  • Report on user’s retention policies. This ensures data is moving from their main mailbox to their archive. 
Get-Mailbox -Archive -ResultSize Unlimited | SELECT Name,RetentionPolicy | Export-Csv "EXPORT FILE LOCATION" -NoTypeInformation

If you use these scripts you will have to change the following:
  1. SERVERNAME: Your Exchange Server
  2. EXPORT FILE LOCATION.CSV: The location you wish to export this data too (CSV)
  3. EXPORT FILE LOCATION.TXT: The location you wish to export this data too (txt)

Creating a PS1 Script that can be run from Windows 2008 Task Scheduler
Here is an example of a ps1 script that can be run from the task scheduler. It collects the data and sends me an email.

Get-Mailbox -Filter 'UserAccountControl -eq "AccountDisabled, NormalAccount"' -Server ExchangeServer -RecipientTypeDetails UserMailbox | Get-MailboxStatistics | ft DisplayName, database, TotalItemSize, ItemCount | Out-File "D:\ExchangeScripts\AllDisabledMailboxes.txt"
$smtpServer = “ExchangeServer”
$msg = new-object Net.Mail.MailMessage
$att = new-object Net.Mail.Attachment("D:\ExchangeScripts\AllDisabledMailboxes.txt")
$smtp = new-object Net.Mail.SmtpClient($smtpServer)
$msg.From = “ExchangeServer@xyz.domain.com”
$msg.To.Add(“me@xyz.domain.com”)
$msg.Subject = “List of all Disabled Mailboxes & Databases”
$msg.Attachments.Add($att)
$smtp.Send($msg)


The Action for the Task

Program: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

Add arguments: -command ". 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto; SCRIPTFILELOCATION"


I hope this helps you manage your exchange environment. Don't hesitate to leave a comment or question.

If you want to disable ActiveSync, OWA, POP, IMAP and Outlook Anywhere by default follow the guide from here and change the follwoing line

set-casmailbox $newmailbox -ImapEnabled $false

With

Set-CASMailbox $user -ActiveSyncEnabled $false -owaenabled $false -IMAPEnabled $False -popenabled $False -MAPIBlockOutlookRpcHttp $true

Thursday, 21 July 2011

Office 2010 Service Pack 1 Stuck at Downloading

Hi people,

There is a probably a million reasons why Office 2010 will fail to install. In this case it was because the update required the language packs for German, Spanish and French.

Re-download the update and select these lanaguges including English and it should resolve your issues.


Windows Service Pack 1 Failed with Error Code 0x80070643

Hi people,

There is a probably a million reasons why Windows 7 SP1 will fail to install. Below is my tail. An Error occurred and in the event log it shows:

Installation Failure: Windows failed to install the following update with error 0x80070643: Security Update for Windows 7 for x64-based Systems (KB2510531).

You should find more details in c:\Windows\Logs\CBS\CBS.log and in this case I found.

SPI: (PerformSPInstallation:812)Insufficient disk space hr=0x800f0828

Once you increase the desk space Sp1 will install

Monday, 18 July 2011

How To Link The Two Reports Together

On the sub report query click on the prompts button: 


Create a new prompt:


Create the SQL query from the prompt:

begin
 if (@__filterwildcard = '')
  select distinct Name0 from v_R_System WHERE isnull(Obsolete0,0)<>1 order by Name0
 else
  select distinct Name0 from v_R_System
  WHERE Name0 like @__filterwildcard
 and isnull(Obsolete0,0)<>1 order by Name0
end



Create a link on the main report linking it to the sub report.



Tuesday, 19 April 2011

Transparent Install Of Office 2010 x86 Or x64

Hi All,

If you’re like me, you want to make the task as easy and transparent as possible to install Office 2010 into your network, for your users and support staff. You also want to install the x64 version on 64 bit platforms and x86 on 32 bit platforms.

Following from my previous post create two task sequences for you packages if not already created
  • Microsoft Office Professional 2010 x64
  • Microsoft Office Professional 2010 x86
Only allow the x64 bit to run on 64 bit O/S’s and x86 on 32 Bit O/S’s.


Advertise both task sequences to the same collection. The computers within that collection will only get their version of  Office 2010

Monday, 11 April 2011

How To Deploy Office 2010 from System Center Configuration Manager

Hi Everyone,

I'm confident you will be considering the roll out of Office 2010 soon. If your like me, I need to roll out Office 2010 to over a 1000 workstations. I thought I would give you my real world experience on a simply approach:

The are five steps in this process the include:
  • Customising Office 2010
  • Creating the Package and Program
  • Copying the Package to your Distribution Points
  • Creating an Active Directory Security Group and Collection
  • Creating an Advertisement and Assigning it to the Collection 

In your testing environment you may want to speed the process up. I'll show you how to force a client to get the package straight away and get a report on the outcome of the advertisement.

How To Customise Office 2010

  1. Download your Office 2010 install files and place it in your package source directory.


  2. Run setup.exe /admin from the command prompt. This will allow us to create a MSP file which we will save into the updates folder.


    It is important to note you can only run setup.exe /admin for Office 2010 64 Bit version from a 64 bit platform. 

  3. Select your product. In this case it is Microsoft Office Professional Plus 2010 (64bit)



  4. Complete your desired customisation. In this example, I will be completing the following: Setting the organisation name, setting licensing and user interaction (suppress all notifications to allow for a silent install) and removing previous installations.


    License information
    Removing previous installations

  5. Go to File => Save As and save it in the Updates folder as Setup.MSP.
    Office looks at this location for updates and customisation files automatically. You can put Service Packs in this location too and they will be automatically installed during the Office install process.
Your customised Office 2010 package is now ready for SCCM.

Creating Package & Program
  1. Create a New Package



  2. Fill out the General Details



  3. Set the Data Source Details and Options



  4. All other options leave as default

  5. Create a New Program



  6. File out the details as below.



  7. You can set program dependencies. In this example I will only install Office 2010 on Windows 7 x64 machines and the install process will timeout after 120 minutes.



  8. You can set the environment. Since it is a silent install I will install it whether or not a user is logged on, run with administrative rights and allow users to interact with the program.



  9. You can set some advanced features like running a program first. In this example I have left it as default.



  10. Leave the other options as default. Once completed you should see the new program

This completes creating the package and program

Copying the Package to your Distribution Points
  1. Add a New Distribution Point



  2. Click next at the Welcome Screen

  3. Select your Distribution Points and click Next



  4. Under Package Status => <SiteCode> you can see the state of your package on each Distribution Point. It will state Installed once the package has completed copying.


    Package Snap in

    List of DP's for this Package

This completes coping your package to your Distribution Point

Creating an Active Directory Security Group and Collection
  1. Within Active Directory create a security group. Call it SCCM - Deploy Microsoft Office 2010 Professional Plus x64.



  2. Add the computers you wish to deploy Office 2010 too. In this example I will deploy it to MULLER-TEST



  3. Within SCCM create a new collection, call it Deploy Microsoft Office 2010 Professional Plus x64



  4. Fill out the General Details and click the Next button



  5. Create a new membership rule by clicking on the SQL button.



  6. Limit the Collection by your Active Systems Collection Group, give the query rule a name and click on Edit Query Statement.



  7. Click on Show Query Language


  8. Add the following SQL statement. Change the domain to your domain
  9. SELECT 
  10. SMS_R_SYSTEM.ResourceID
  11. ,SMS_R_SYSTEM.ResourceType
  12. ,SMS_R_SYSTEM.Name
  13. ,SMS_R_SYSTEM.SMSUniqueIdentifier
  14. ,SMS_R_SYSTEM.ResourceDomainORWorkgroup
  15. ,SMS_R_SYSTEM.Client 
  16. FROM 
  17. SMS_R_System 
  18. WHERE SMS_R_System.SystemGroupName = "CHANGE ME\\SCCM  - Deploy Microsoft Office 2010 Professional Plus x64"

  19. Click on OK twice and next three times and your collection is created.

  20. Depending on your discovery methods will depend on how long it will take to display in the new collection. You can force it by doing an Active Director Security and System Group Discovery. Once SCCM has discovered update the collection and you will see the computer in that collection

This completes creating an Active Directory Security Group and Collection

Creating an Advertisement and Assigning it to a Collection 
  1. Add a New Advertisement



  2. File out the General tab details. Select the Package you created, the Program will fill itself and select the collection you created



  3. Select the schedule options. In this example I have set a deadline, enabled wake on LAN (Requires Out of Band Management), Ignore maintenance windows, and not to rerun if the program fails



  4. Set the Distribution Point settings. In this example the client downloads the package to their cache.



  5. Set user Interaction. In this example, I allow users to interact with the application to run it when they want to. If they don't run it, the application will install at the deadline.



  6. Click Next twice and you advertisement is created.

  7. You will now see the new advertisement

This completes Creating an Advertisement and Assigning it to a Collection

Your computer will get the new advertisement when it reports pack to your SCCM Server. To force the process follow the below instructions.

Force A Client To Retrieve An Advertisement

  1. Open the Configuration Manager console located in the control panel on the client


  2. Click on the Actions tab, select Machine Policy Retrieval & Evaluation Cycle and select Initiate Action


  3. The SCCM agent will appear in the bottom right hand corner. Depending on how you advertised the application will depend on the icon. Below are the three possibilities that will appear. I set a deadline so the middle will appear, it will state an application will be installed in x amount of time.



  4. To see the progress on the advertisement run the report All Advertisements for a specific collection. It will list the current state of the advertisement. 

Moving From Office 32 Bit To Office 64 Bit

If you’re planning to move from 32 bit to 64 bit then you need to remove all versions of 32 bit first. In my case I needed to remove Microsoft Office 2007 Professional and a few other applications.

Follow these steps to complete this task:
  1. Create a file in Pro.WW called SilentUninstallConfig.xml.

  2. Add the following details to the file and update your Distribution Points

    <Configuration Product="Pro">

    <Display Level="none" CompletionNotice="no" SuppressModal="yes" AcceptEula="yes" />

    <Setting Id="SETUP_REBOOT" Value="Never" />
    </Configuration>

  3. Create a new program in your Office 2007 package with the following settings



    The command line is setup.exe /uninstall Pro /config  Pro.WW\SilentUninstallConfig.xml

  4. Change any requirements settings. In this example, it will only run on Windows 7 x64



  5. Change any environment settings. In this example, it will run whether or not a user is logged on and runs with administrative rights



  6. Change any advance settings. In this example, it will suppress program notifications.



  7. Hit next three times

  8. Create a Task Sequence that removes your applications and then installs Office 2010 Professional Plus x64.



  9. In Options for the task, check to see if the following register exists. This way it will only try an remove it if it is installed.
    Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{90120000-0014-0000-0000-0000000FF1CE}


  10. Advertise this instead to your collection and your set to go. Set the Advertisement to only download content if required. This way it will not download Office 2007 if it is not installed.
There is more then one way to skin a cat. In this example, I have set a deadline and advertised it to a collection that is a Security Group. This is the best fit for our current requirements because:

  • The Service Desk have an easy solution to install Office2010, just by adding the computer into a Security Group.
  • They do not need to know anything about the SCCM console.
  • They can tell the user they will get the application within two hours.
  • We don't need to install it on the 1000 workstations yet.

When management decide to deliver Office 2010 to all systems we could remove the deadline and advertise it to all active systems. If we remove new notifications it would be a self service. The user would see the application under programs and features and install it when they want.


Self Service


We could also set a deadline from one month of advertisement date and remind them every second day. This way they have a month to install before it installs itself.

I hope you have found this blog helpful, please leave a comment or question if you have.