tag:blogger.com,1999:blog-82106755881531203712024-03-05T00:45:46.764-06:00A Cup of ITTea, Technology and Beyond...ZeusABJhttp://www.blogger.com/profile/09421603730258946485noreply@blogger.comBlogger72125tag:blogger.com,1999:blog-8210675588153120371.post-17664580574171982542018-09-02T22:59:00.003-05:002018-09-02T23:07:41.886-05:00Victorian London Fog by Harney and Sons...<div>
As a huge fan of <a href="https://www.harney.com/">Harney & Sons Fine Teas</a> I'm always checking out their site for new and interesting variations of my beloved camellia sinensis. I tend to lean more towards British notions when it comes to my teas, so when I came across a fairly new tea blend on their site with the name "Victorian London Fog" I was immediately intrigued. My interest was further piqued when I read the details section:</div>
<div>
<br /></div>
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieGhZ1iK8jZ6tqo5OrtF5_J8bFL9-KprKgEbudEOH9lPDtCZyu7i9SgVMTpmECOVwH1_dYmX0MP19Id560A3oFPx296wbcRG7fKqUKnWXRgT9cZ7Wi_j0A38oDH85aC39oR4qOjVTEtc-9/s1600/Loose_4OZ_Victorian_London_Fog_2000x.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1000" data-original-width="760" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieGhZ1iK8jZ6tqo5OrtF5_J8bFL9-KprKgEbudEOH9lPDtCZyu7i9SgVMTpmECOVwH1_dYmX0MP19Id560A3oFPx296wbcRG7fKqUKnWXRgT9cZ7Wi_j0A38oDH85aC39oR4qOjVTEtc-9/s200/Loose_4OZ_Victorian_London_Fog_2000x.png" width="151" /></a></div>
<i>"This blend evokes the aroma of a London Fog, with hints of vanilla and lavender blended with bergamot"</i></div>
<div>
<br /></div>
<div>
So right off I'm thinking "this wil be a sweeter take on a traditional Earl Grey with a high probability of strong floral notes from the lavender". Conceptually that was something that really appealed to my personal tea palate. I picked up a 4 oz. tin (see below) and was not disappointed.</div>
<div>
<br /></div>
<div>
<b>This is a very good tea</b>. Flavor wise? When taken with some milk and a bit of raw sugar the taste is pretty similar to Earl Grey Macaroon cookies I've had in the past. If the idea of that appeals to you I recommend picking up a tin of this. Its very good!</div>
ZeusABJhttp://www.blogger.com/profile/09421603730258946485noreply@blogger.com0tag:blogger.com,1999:blog-8210675588153120371.post-84084313811125625202018-09-02T08:15:00.000-05:002018-09-02T22:38:58.562-05:00Some long overdue spring cleaning...All,
Sorry I've been silent on the blog front for a while. Been really busy with a lot of projects and such. I've gone through and cleaned up a few things, fixed some broken links and enabled full HTTPS support (update your links). Also I've got a ton of great ideas for a new series of posts (geared around a number of new MDT, SCCM and Windows 10 initiatives I've been involved with recently) that I hope to begin writing up shortly. So much to discuss!
More to come so stay tuned!ZeusABJhttp://www.blogger.com/profile/09421603730258946485noreply@blogger.com0tag:blogger.com,1999:blog-8210675588153120371.post-88246441736987674732017-02-06T20:44:00.003-06:002018-09-02T22:38:43.668-05:00SCCM Current Branch: SCCM status icon reference...Ever wonder what the status icons mean in SCCM? Boy I sure did, so I looked them up. Here you go:<br />
<br />
<b>Status icons for software updates:</b><br />
<a href="https://technet.microsoft.com/en-us/library/hh848254.aspx">https://technet.microsoft.com/en-us/library/hh848254.aspx</a><br />
<br />
<b>Status icons for client states:</b><br />
<a href="https://docs.microsoft.com/en-us/sccm/core/clients/manage/monitor-clients">https://docs.microsoft.com/en-us/sccm/core/clients/manage/monitor-clients</a><br />
<br />
Enjoy!<br />
<br />ZeusABJhttp://www.blogger.com/profile/09421603730258946485noreply@blogger.com0tag:blogger.com,1999:blog-8210675588153120371.post-26917528909998688572016-09-30T15:27:00.001-05:002016-09-30T15:27:07.991-05:00How to get all components of a Hyper-V VM under a single directory when creating a new VM...When creating a Hyper-V VM at the "Specify Name" stage make sure you check the box to "Store the virtual machine in a different location". Why? Well let's assume you are at this step, you have the box checked and you have entered the following for the "Name" and "Location" fields:<br />
<br />
Name: "My VM Name 001"<br />
Location: "C:\ClusterStorage\volume1\hyper-v\"<br />
<br />
In the example above Hyper-V will create a single folder named "My VM Name 001" at location "C:\ClusterStorage\volume1\hyper-v\" and all components of that VM will be contained under that folder (as opposed to having some components at the root of "C:\ClusterStorage\volume1\hyper-v\" and some under a subdirectory named "My VM Name 001" which is the default behavior). This will make your VM's more self-contained and (therefore) easier to administer.ZeusABJhttp://www.blogger.com/profile/09421603730258946485noreply@blogger.com0tag:blogger.com,1999:blog-8210675588153120371.post-36059836340986602202016-09-06T13:13:00.005-05:002016-09-06T13:15:29.272-05:00Using SysNative to redirect a SCCM Package to use 64-Bit stuff...Everywhere you go it seems like all the "experts" say to use the Package model (not the Application model) when you want to deploy a script using SCCM. The problem is Packages seem to only be be cable of executing in 32 bit mode (even on 64_bit OSes) because the SCCM client is 32-Bit. Obviously this presents a problem if you ever need to have your script reference anything 64-bit. I did some googling and found a number of solutions out there but (ultimately) found them a bit clunky. So I grabbed the best bits I could found out of all of them and combined them into my own script:<br />
<br />
<code>
@ECHO OFF & CLS
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: SysNative Redirect
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Purpose: SysNative is a virtual folder visible to 32-Bit applications but not
:: visible to 64-Bit applications. This script uses SysNative to redirect scripts
:: to use native executables on when run on a 64-Bit Operating System.
:: Version: 2.1
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
REM Set script filename:
SET "_MyScript=%~n0.ps1"
REM OS Run architecture check and redirect if needed:
If "%PROCESSOR_ARCHITEW6432%"=="" (GOTO :_STANDARD) ELSE (GOTO :_SYSNATIVE)
:_SYSNATIVE
%WINDIR%\sysnative\WindowsPowerShell\v1.0\powershell.exe -NoProfile -ExecutionPolicy bypass -file "%~dp0%_MyScript%"
REM %WINDIR%\sysnative\cscript.exe "%~dp0myscript.vbs"
REM %WINDIR%\sysnative\cmd.exe "%~dp0myscript.cmd"
GOTO :_END
:_STANDARD
powershell.exe -NoProfile -ExecutionPolicy bypass -File "%~dp0%_MyScript%"
REM cscript.exe "%~dp0myscript.vbs"
REM cmd.exe "%~dp0myscript.cmd"
GOTO :_END
:_END
REM Pause to view results:
REM ECHO.
REM ECHO Press any key to exit ...
REM PAUSE > NUL
</code>
<br />
<br />
To use it just uncomment your script language of choice (while commenting out the ones you don't want), save it as a .CMD file in the same folder with the same name as the script you want to execute and specify the .CMD file as your Command Line. It should handle the rest for you.ZeusABJhttp://www.blogger.com/profile/09421603730258946485noreply@blogger.com0tag:blogger.com,1999:blog-8210675588153120371.post-59307249026668647362016-08-19T09:30:00.000-05:002016-08-19T09:30:04.120-05:00Microsoft is changing how Windows Updates work...This is a very interesting development, not sure how this will affect me yet as an SCCM admin but (on the surface) the idea of them back-porting the Cumulative Update model for Windows 10 to Windows 7/8.1 sounds fantastic. Personally? This time next year I hope to have all Windows 10 clients in my infrastructure anyway but if that doesn't happen then at least this should make supporting older clients much easier:<br />
<br />
<a href="https://blogs.technet.microsoft.com/windowsitpro/2016/08/15/further-simplifying-servicing-model-for-windows-7-and-windows-8-1/">https://blogs.technet.microsoft.com/windowsitpro/2016/08/15/further-simplifying-servicing-model-for-windows-7-and-windows-8-1/</a><br />
<br />
Does this mean my SUGs will shrink down to a single update per OS?!!! Almost certainly not but we shall see....ZeusABJhttp://www.blogger.com/profile/09421603730258946485noreply@blogger.com3tag:blogger.com,1999:blog-8210675588153120371.post-15718090908162348132016-08-18T13:01:00.002-05:002016-08-18T13:01:08.113-05:00I'm still here!Apologies for the recent lack of updates. My company is currently undergoing a big reorganization and I'm finding I don't have a lot of free time for new posts. I'm still heavily involved with SCCM administration though and am currently working to roll out Windows 10 v1607 and spinning up a brand new SCCM server to support it. Lots of lessons learned and tons of potential new post ideas are springing from these efforts. Hopefully I can get some new content here soon. In the meantime I have been and am more than happy to answer questions in the comments sections of other posts. Keep those coming guys! Love helping out my fellow admins!ZeusABJhttp://www.blogger.com/profile/09421603730258946485noreply@blogger.com0tag:blogger.com,1999:blog-8210675588153120371.post-16876782257162896702015-02-16T10:25:00.003-06:002015-02-16T10:25:27.160-06:00SCCM: Logs to check when troubleshooting application deployment issuesWhenever you run into client side issues with application deployment in SCCM check the exemgr.log file on the client and the log generated by the application you are installing. I've found starting there is the best way to uncover issues with my deployments.ZeusABJhttp://www.blogger.com/profile/09421603730258946485noreply@blogger.com2tag:blogger.com,1999:blog-8210675588153120371.post-51657429913534046442014-09-10T10:38:00.002-05:002018-09-02T22:42:20.117-05:00The Best Teas I ever had: Kusmi Prince VladimirAlthough I haven't talked about tea much lately my love affair for water infused with <a href="http://en.wikipedia.org/wiki/Camellia_sinensis">camellia sinensis</a> has not diminished in the slightest. To that end I'm going to start a series of posts on "The Best Teas I ever had". I plan to drop a few of them here and there between other posts whenever I get the urge and each one will cover either a favorite tea of mine or a particularly memorable tea drinking experience. So to set the tone why not cover what is probably my current favorite tea of all time, Prince Vladimir by <a href="https://us-en.kusmitea.com/">Kusmi Tea</a>. Here's what they say about it on their website:<br />
<br />
<i> "Created in 1888 in honor of Vladimir the Great, ruler of Holy Russia, Prince Vladimir tea is a blend of Earl Grey, citrus, vanilla and spices. It is one of our most unforgettable teas. We suggest to enjoy this tea during the whole day. Main flavor: Smooth citrus and spice." </i><br />
<br />
Here's a picture of the 8.8 ounce tin (or the large size which is of course what I order every time):<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_DIxEiQGmir10agMyOuzQiWClavG_GDUrUUmpHA0Y_76YzSHv7IAlPm7zUsl_-VnHWV28b766WRewKixPZefHBtX0tR8Y4ZIH_mEqkz1PE9KSyk1ITZ7AD_TEnR1kt_MzXIxuOifN4wKG/s1600/prin_250_eng_hd.jpg" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_DIxEiQGmir10agMyOuzQiWClavG_GDUrUUmpHA0Y_76YzSHv7IAlPm7zUsl_-VnHWV28b766WRewKixPZefHBtX0tR8Y4ZIH_mEqkz1PE9KSyk1ITZ7AD_TEnR1kt_MzXIxuOifN4wKG/s320/prin_250_eng_hd.jpg" /></a><br />
<br />
I’m a big fan of Kusmi teas, but this remains my constant favorite. Given that this is listed on their site as one of their most popular teas I am not alone in that regard. I can honestly say in all my years of tea tasting I've never experienced a tea quite like Prince Vladimir. From the initial aroma to the final brew, it is a decidedly unique tea. In fact, the first time I opened the canister in the presence of one of my friends and he had a whiff, he asked me if the contents were legal!!! Like most Kusmi teas, the final brew is very smooth with virtually no bitterness and the spices are easily discernible on the palate with or without adding sugar or milk. In my opinion it is the unique nature of this tea that is its most endearing quality (as opposed to the taste alone, which is still quite good). Its always fun keep some on-hand to expose my “non-hot-tea drinking friends” to “something different”. This is just a fun tea, period.ZeusABJhttp://www.blogger.com/profile/09421603730258946485noreply@blogger.com0tag:blogger.com,1999:blog-8210675588153120371.post-13429240382234037952014-05-29T11:33:00.001-05:002014-05-29T11:36:00.896-05:00Adding 'Run as administrator' right-click menu items for VBScript and PowerShell filesOne of my post TechEd 2014 resolutions is to finally cast off my Batch script crutches and start running with with PowerShell and/or VBScript. To that end I assigned myself the task of converting a few of my Batch scripts over to these new languages last week. Right away I found myself annoyed. See, the great thing about Batch is you have this nifty "Run as administrator" context menu item that appears when you right-click on any .BAT or .CMD file. If I run a Batch script once with a simple double-click and it fails then I have the right-click option to provide me with a quick and easy way for me to run the script with elevated credentials. This allows me to quickly determine if some aspect of my code requires administrative permissions. I found out real quick that this menu item appears to be missing for .PS1 and .VBS files.<br />
<br />
Now I get why Microsoft did this. It’s probably a security measure to prevent you from accidentally hosing your system by running a bunch of scripts in the Administrator context. It’s certainly not a feature I’d want “Joe User” to have access to. Still us more “advanced” users might want to have this menu item present purely to speed up our script testing process. So to solve this little dilemma for myself I put together two Batch scripts (HA, Ha, yes I’m using Batch to ultimately eliminate Batch) to add the right-click options back in for .PS1 and .VBS files. The scripts I wrote are posted below. Note that with the .VBS script you have two options! One uses CSCRIPT.EXE and the other uses WSCRIPT.EXE. If you don’t know the difference then don’t use the scripts. They also come with no warranties! Use at your own risk!<br />
<br />
<br />
<b>Add Right-click “Run as administrator” for .PS1 files (PowerShell):</b><br />
<br />
<br />
<code>
@ECHO OFF & CLS
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
TITLE Enable right-click 'Run as Admin' for PowerShell for Windows 7 or Later
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Purpose: Add Windows context menu item.
:: Version: 2.1
:: Author: ZeusABJ
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Display status message:
ECHO.
ECHO Enabling right-click 'Run as Admin' for PowerShell for Windows 7 or Later...
ECHO.
:: Add value for UAC shield icon:
REG ADD "HKCR\Microsoft.PowerShellScript.1\Shell\runas" /v HasLUAShield /t REG_SZ /d "" /f
:: Add value to create context menu item:
REG ADD "HKCR\Microsoft.PowerShellScript.1\Shell\runas\command" /ve /t REG_EXPAND_SZ /d "\"%%SYSTEMROOT%%\System32\WindowsPowerShell\v1.0\powershell.exe\" -executionpolicy bypass -nologo -file \"%%1\"" /f
:: Display completion notice:
ECHO.
ECHO Done!
:: Delay for processing:
PING 127.0.0.1 -n 3 > NUL
:: Pause to view results:
:: ECHO.
:: PAUSE
EXIT
</code>
<br />
<br />
<b>Remove Right-click “Run as administrator” for .PS1 files (PowerShell):</b><br />
<br />
<br />
<code>
@ECHO OFF & CLS
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
TITLE Disable right-click 'Run as Admin' for PowerShell for Windows 7 or Later
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Purpose: Remove Windows context menu item.
:: Version: 2.1
:: Author: ZeusABJ
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Display status message:
ECHO.
ECHO Disabling right-click 'Run as Admin' for PowerShell for Windows 7 or Later...
ECHO.
:: Remove custom 'runas' registry entry:
REG DELETE "HKCR\Microsoft.PowerShellScript.1\Shell\runas" /f
:: Display completion notice:
ECHO.
ECHO Done!
:: Delay for processing:
PING 127.0.0.1 -n 3 > NUL
:: Pause to view results:
:: ECHO.
:: PAUSE
EXIT
</code>
<br />
<br />
<b>Add Right-click “Run as administrator” for .VBS files (VBScript - WSCRIPT.EXE):</b><br />
<br />
<br />
<code>
@ECHO OFF & CLS
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
TITLE Enable right-click 'Run as Admin' for VBS for Windows 7 or Later (WSCRIPT)
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Purpose: Add Windows context menu item.
:: Version: 2.0
:: Author: ZeusABJ
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Display status message:
ECHO Enabling right-click 'Run as Admin' for VBS for Windows 7 or Later (WSCRIPT)...
ECHO.
:: Add value for UAC shield icon:
REG ADD "HKCR\VBSFile\Shell\runas" /v HasLUAShield /t REG_SZ /d "" /f
:: Add value to create context menu item:
REG ADD "HKCR\VBSFile\Shell\runas\Command" /ve /t REG_EXPAND_SZ /d "\"%%SYSTEMROOT%%\System32\wscript.exe\" \"%%1\" %%*" /f
:: Display completion notice:
ECHO.
ECHO Done!
:: Delay for processing:
PING 127.0.0.1 -n 3 > NUL
:: Pause to view results:
:: ECHO.
:: PAUSE
EXIT
</code>
<br />
<br />
<b>Add Right-click “Run as administrator” for .VBS files (VBScript - CSCRIPT.EXE):</b><br />
<br />
<br />
<code>
@ECHO OFF & CLS
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
TITLE Enable right-click 'Run as Admin' for VBS for Windows 7 or Later (CSCRIPT)
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Purpose: Add Windows context menu item.
:: Version: 2.1
:: Author: ZeusABJ
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Display status message:
ECHO.
ECHO Enabling right-click 'Run as Admin' for VBS for Windows 7 or Later (CSCRIPT)...
ECHO.
:: Add value for UAC shield icon:
REG ADD "HKCR\VBSFile\Shell\runas" /v HasLUAShield /t REG_SZ /d "" /f
:: Add value to create context menu item:
REG ADD "HKCR\VBSFile\Shell\runas\Command" /ve /t REG_EXPAND_SZ /d "\"%%SYSTEMROOT%%\System32\cscript.exe\" \"%%1\" %%*" /f
:: Display completion notice:
ECHO.
ECHO Done!
:: Delay for processing:
PING 127.0.0.1 -n 3 > NUL
:: Pause to view results:
:: ECHO.
:: PAUSE
EXIT
</code>
<br />
<br />
<b>Remove Right-click “Run as administrator” for .VBS files (VBScript):</b><br />
<br />
<br />
<code>
@ECHO OFF & CLS
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
TITLE Disable right-click 'Run as Admin' for VBS for Windows 7 or Later
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Purpose: Remove Windows context menu item.
:: Version: 2.1
:: Author: ZeusABJ
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Display status message:
ECHO.
ECHO Disabling right-click 'Run as Administrator' for VBS for Windows 7 or Later...
ECHO.
:: Remove custom 'runas' registry entry:
REG DELETE "HKCR\VBSFile\Shell\runas" /f
:: Display completion notice:
ECHO.
ECHO Done!
:: Delay for processing:
PING 127.0.0.1 -n 3 > NUL
:: Pause to view results:
:: ECHO.
:: PAUSE
EXIT
</code>ZeusABJhttp://www.blogger.com/profile/09421603730258946485noreply@blogger.com2tag:blogger.com,1999:blog-8210675588153120371.post-7306593246863549972014-05-19T15:50:00.001-05:002017-09-22T09:30:28.109-05:00SCCM WQL Query: Dealing with X86 and X64 SystemsThis one actually comes by request in the comments section of a <a href="http://www.acupofit.com/2013/07/sccm-wql-query-windows-8-and-server.html">previous post</a>. I haven't bothered to post on this subject because I was of the opinion that plenty of other blogs had already covered this scenario. However, you asked so I suppose it doesn't hurt to go over how I address OS Architecture in my WQL queries. As with my WQL queries for Windows 8-2012 I just create a series of basic core queries that I then just "tweak" to fit my needs. Here they are:<br />
<br />
<b>Basic "OS Architecture" Queries (returns All Systems for specified architecture):</b><br />
<br />
<code>select distinct
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
inner join
SMS_G_System_COMPUTER_SYSTEM on
SMS_G_System_COMPUTER_SYSTEM.ResourceID = SMS_R_System.ResourceID
where
SMS_G_System_COMPUTER_SYSTEM.SystemType = "x86-based PC"</code><br />
<br />
<code>select distinct
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
inner join
SMS_G_System_COMPUTER_SYSTEM on
SMS_G_System_COMPUTER_SYSTEM.ResourceID = SMS_R_System.ResourceID
where
SMS_G_System_COMPUTER_SYSTEM.SystemType = "X64-based PC"</code><br />
<br />
<b>OS Architecture Queries filtered by OS Type (Client/Server):</b><br />
Note how we look for any systems that are NOT servers to get our list of clients.<br />
<br />
<code>select distinct
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
inner join
SMS_G_System_COMPUTER_SYSTEM on
SMS_G_System_COMPUTER_SYSTEM.ResourceID = SMS_R_System.ResourceID
inner join
SMS_G_System_OPERATING_SYSTEM on
SMS_G_System_OPERATING_SYSTEM.ResourceID = SMS_R_System.ResourceID
where
SMS_G_System_COMPUTER_SYSTEM.SystemType = "x86-based PC" and
SMS_G_System_OPERATING_SYSTEM.Caption not like "%Server%"</code><br />
<br />
<code>select distinct
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
inner join
SMS_G_System_COMPUTER_SYSTEM on
SMS_G_System_COMPUTER_SYSTEM.ResourceID = SMS_R_System.ResourceID
inner join
SMS_G_System_OPERATING_SYSTEM on
SMS_G_System_OPERATING_SYSTEM.ResourceID = SMS_R_System.ResourceID
where
SMS_G_System_COMPUTER_SYSTEM.SystemType = "x64-based PC" and
SMS_G_System_OPERATING_SYSTEM.Caption like "%Server%"</code><br />
<br />
<b>OS Architecture Queries filtered by OS Version:</b><br />
<br />
<code>select distinct
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
inner join
SMS_G_System_COMPUTER_SYSTEM on
SMS_G_System_COMPUTER_SYSTEM.ResourceID = SMS_R_System.ResourceID
inner join
SMS_G_System_OPERATING_SYSTEM on
SMS_G_System_OPERATING_SYSTEM.ResourceID = SMS_R_System.ResourceID
where
SMS_G_System_COMPUTER_SYSTEM.SystemType = "x86-based PC" and
SMS_G_System_OPERATING_SYSTEM.Caption like "%Windows 7%"</code><br />
<br />
In the above code just specify desired OS Architecture for "SMS_G_System_COMPUTER_SYSTEM.SystemType" and substitute desired OS version for "SMS_G_System_OPERATING_SYSTEM.Caption". For example:<br />
<br />
<ul>
<li>Use "%2000%" for Windows 2000</li>
<li>Use "%Windows XP%" for Windows XP</li>
<li>Use "%Server 2003%" for Windows 2003</li>
<li>Use "%Vista%" for Windows Vista</li>
<li>Use "%Serverr 2008%" for Windows 2008 Non-R2 (No, the extra "r" is not a typo)</li>
<li>Use "%Windows 7%" for Windows 7</li>
<li>Use "%Server 2008 R2%" for Windows Server 2008 R2</li>
<li>Use "%Windows 8%" for Windows 8</li>
<li>Use "%Server 2012%" for Windows 2012</li>
</ul>
<br />
Hope you guys find this useful, and if anyone knows a better method feedback is always welcome.
ZeusABJhttp://www.blogger.com/profile/09421603730258946485noreply@blogger.com8tag:blogger.com,1999:blog-8210675588153120371.post-80984088029983382272014-03-19T11:32:00.001-05:002014-03-19T11:32:11.724-05:00TechEd 2014 is almost upon us...Wow, amazing that another year has just flown by and we find ourselves on the cusp of another TechEd event. This year the conference is being held in Houston and (per usual) I plan to be there. One item of particular interest this year is the fact that Microsoft has chosen to combine TechEd with MMS (which was traditionally a stand-alone conference devoted to Systems Management). I've been mapping out my schedule and things are filling up fast (no room left in anything Wally Mead is doing, ha ha). It sort of amazes me that I've gone to 4 of these conferences and still not managed to do any meaningful networking. This year I hope to try a few different approaches to hopefully meet some people and make some real connections in the industry I've worked in since the mid-90's. Also (as a sign of the times) my supervisors want me to tune into some Azure sessions this go-round. Cloud cloud cloud right? Should be interesting! Here's the link to the TechEd North America website:<br />
<br />
<a href="http://northamerica.msteched.com/">http://northamerica.msteched.com/</a><br />
<br />
Maybe I'll see some of you there!ZeusABJhttp://www.blogger.com/profile/09421603730258946485noreply@blogger.com0tag:blogger.com,1999:blog-8210675588153120371.post-6961550349623890082014-03-19T11:21:00.000-05:002015-02-16T10:26:29.198-06:00SCCM: Another Log File ReferenceCan't take credit for this one. I found it as a blog posting on MSDN by a guy named Liuxiang Chen. I've actually stated using my blog as a personal reference for things I find online that I want to remember so I've copied it here for everyone else to see as well. Chen's original post was dated April of 2009, and (as of this posting) it appears to have been 5 years since he published anything there. Hope this doesn't count as plagiarism but I didn't want to take the chance that this excellent post might get wiped out at some point because his blog is no longer being updated. Also (since its a 2009 posting) some of the info may be a little out of date. I plan to pick through it later and update it as needed (thereby making it my own). For how here is a copy of Chen's post as it originally appeared on MSDN:<br />
<br />
<br />
The SCCM client logs are located at %WINDIR%\CCM\Logs.<br />
<br />
The SCCM server log files are located in the <INSTALL_PATH>\Logs or SMS_CCM\Logs folder. IIS logs can be found in %WINDIR%\System32\logfiles\W3SVC1 folder.<br />
<br />
<h3>
Client Log Files</h3>
<ul>
<li>CAS - Content Access Service. Maintains the local package cache. </li>
<li>Ccmexec.log - Records activities of the client and the SMS Agent Host service. </li>
<li>CertificateMaintenance.log - Maintains certificates for Active Directory directory service and management points. </li>
<li>ClientIDManagerStartup.log - Creates and maintains the client GUID. </li>
<li>ClientLocation.log - Site assignment tasks. </li>
<li>ContentTransferManager.log - Schedules the Background Intelligent Transfer Service (BITS) or the Server Message Block (SMB) to download or to access SMS packages. </li>
<li>DataTransferService.log - Records all BITS communication for policy or package access. </li>
<li>Execmgr.log - Records advertisements that run. </li>
<li>FileBITS.log - Records all SMB package access tasks. </li>
<li>Fsinvprovider.log (renamed to FileSystemFile.log in all SMS 2003 Service Packs) - Windows Management Instrumentation (WMI) provider for software inventory and file collection. </li>
<li>InventoryAgent.log - Creates discovery data records (DDRs) and hardware and software inventory records. </li>
<li>LocationServices.log - Finds management points and distribution points. </li>
<li>Mifprovider.log - The WMI provider for .MIF files. </li>
<li>Mtrmgr.log - Monitors all software metering processes. </li>
<li>PolicyAgent.log - Requests policies by using the Data Transfer service. </li>
<li>PolicyAgentProvider.log - Records policy changes. </li>
<li>PolicyEvaluator.log - Records new policy settings. </li>
<li>Remctrl.log - Logs when the remote control component (WUSER32) starts. </li>
<li>Scheduler.log - Records schedule tasks for all client operations. </li>
<li>Smscliui.log - Records usage of the Systems Management tool in Control Panel. </li>
<li>StatusAgent.log - Logs status messages that are created by the client components. </li>
<li>SWMTRReportGen.log - Generates a usage data report that is collected by the metering agent. (This data is logged in Mtrmgr.log.) </li>
</ul>
<h3>
Server Log Files</h3>
<ul>
<li>Ccm.log - Client Configuration Manager tasks. </li>
<li>Cidm.log - Records changes to the client settings by the Client Install Data Manager (CIDM). </li>
<li>Colleval.log - Logs when collections are created, changed, and deleted by the Collection Evaluator. </li>
<li>Compsumm.log - Records Component Status Summarizer tasks. </li>
<li>Cscnfsvc.log - Records Courier Sender confirmation service tasks. </li>
<li>Dataldr.log - Processes Management Information Format (MIF) files and hardware inventory in the Configuration Manager 2007 database. </li>
<li>Ddm.log - Saves DDR information to the Configuration Manager 2007 database by the Discovery Data Manager. </li>
<li>Despool.log - Records incoming site-to-site communication transfers. </li>
<li>Distmgr.log - Records package creation, compression, delta replication, and information updates. </li>
<li>Hman.log - Records site configuration changes, and publishes site information in Active Directory Domain Services. </li>
<li>Inboxast.log - Records files that are moved from the management point to the corresponding SMS\INBOXES folder. </li>
<li>Inboxmgr.log - Records file maintenance. </li>
<li>Invproc.log - Records the processing of delta MIF files for the Dataloader component from client inventory files. </li>
<li>Mpcontrol.log - Records the registration of the management point with WINS. Records the availability of the management point every 10 minutes. </li>
<li>Mpfdm.log - Management point component that moves client files to the corresponding SMS\INBOXES folder. </li>
<li>MPMSI.log - Management point .msi installation log. </li>
<li>MPSetup.log - Records the management point installation wrapper process. </li>
<li>Ntsvrdis.log - Configuration Manager 2007 server discovery. </li>
<li>Offermgr.log - Records advertisement updates. </li>
<li>Offersum.log - Records summarization of advertisement status messages. </li>
<li>Policypv.log - Records updates to the client policies to reflect changes to client settings or advertisements. </li>
<li>Replmgr.log - Records the replication of files between the site server components and the Scheduler component. </li>
<li>Rsetup.log - Reporting point setup log. </li>
<li>Sched.log - Records site-to-site job and package replication. </li>
<li>Sender.log - Records files that are sent to other child and parent sites. </li>
<li>Sinvproc.log - Records client software inventory data processing to the site database in Microsoft SQL Server. </li>
<li>Sitecomp.log - Records maintenance of the installed site components. </li>
<li>Sitectrl.log - Records site setting changes to the Sitectrl.ct0 file. </li>
<li>Sitestat.log - Records the monitoring process of all site systems. </li>
<li>Smsdbmon.log - Records database changes. </li>
<li>Smsexec.log - Records processing of all site server component threads. </li>
<li>Smsprov.log - Records WMI provider access to the site database. </li>
<li>SMSReportingInstall.log - Records the Reporting Point installation. This component starts the installation tasks and processes configuration changes. </li>
<li>SMSSHVSetup.log - Records the success or failure (with failure reason) of installing the System Health Validator point. </li>
<li>Srvacct.log - Records the maintenance of accounts when the site uses standard security. </li>
<li>Statmgr.log - Writes all status messages to the database. </li>
<li>Swmproc.log - Processes metering files and maintains settings. </li>
</ul>
<h3>
Admin Console Log Files</h3>
<ul>
<li>RepairWizard.log - Records errors, warnings, and information about the process of running the Repair Wizard. </li>
<li>ResourceExplorer.log - Records errors, warnings, and information about running the Resource Explorer. </li>
<li>SMSAdminUI.log - Records the local Configuration Manager 2007 console tasks when you connect to Configuration Manager 2007 sites. </li>
</ul>
<h3>
Management Point Log Files</h3>
<ul>
<li>MP_Ddr.log - Records the conversion of XML.ddr records from clients, and copies them to the site server. </li>
<li>MP_GetAuth.log - Records the status of the site management points. </li>
<li>MP_GetPolicy.log - Records policy information. </li>
<li>MP_Hinv.log - Converts XML hardware inventory records from clients and copies the files to the site server. </li>
<li>MP_Location.log - Records location manager tasks. </li>
<li>MP_Policy.log - Records policy communication. </li>
<li>MP_Relay.log - Copies files that are collected from the client. </li>
<li>MP_Retry.log - Records the hardware inventory retry processes. </li>
<li>MP_Sinv.log - Converts XML hardware inventory records from clients and copies them to the site server. </li>
<li>MP_Status.log - Converts XML.svf status message files from clients and copies them to the site server. </li>
</ul>
<h3>
Mobile Device Management Log Files</h3>
<ul>
<li>DmClientHealth.log - Records the GUIDs of all the mobile device clients that are communicating with the Device Management Point. </li>
<li>DmClientRegistration.log - Records registration requests from and responses to the mobile device client in Native mode. </li>
<li>DmpDatastore.log - Records all the site database connections and queries made by the Device Management Point. </li>
<li>DmpDiscovery.log - Records all the discovery data from the mobile device clients on the Device Management Point. </li>
<li>DmpFileCollection.log - Records mobile device file collection data from mobile device clients on the Device Management Point. </li>
<li>DmpHardware.log - Records hardware inventory data from mobile device clients on the Device Management Point. </li>
<li>DmpIsapi.log - Records mobile device communication data from device clients on the Device Management Point. </li>
<li>dmpMSI.log - Records the MSI data for Device Management Point setup. </li>
<li>DMPSetup.log - Records the mobile device management setup process. </li>
<li>DmpSoftware.log - Records mobile device software distribution data from mobile device clients on the Device Management Point. </li>
<li>DmpStatus.log - Records mobile device status messages data from mobile device clients on the Device Management Point. </li>
<li>FspIsapi.log - Records Fallback Status Point communication data from mobile device clients and client computers on the Fallback Status Point. </li>
</ul>
<h3>
Mobile Device Client Log Files</h3>
<ul>
<li>DmCertEnroll.log - Records certificate enrollment data on mobile device clients. </li>
<li>DMCertResp.htm (in \temp) - Records HTML response from the certificate server when the mobile device Enroller program requests a client authentication certificate on mobile device clients. </li>
<li>DmClientSetup.log - Records client setup data on mobile device clients. </li>
<li>DmClientXfer.log - Records client transfer data for Windows Mobile Device Center and ActiveSync deployments. </li>
<li>DmCommonInstaller.log - Records client transfer file installation for setting up mobile device client transfer files on client computers. </li>
<li>DmInstaller.log - Records whether DMInstaller correctly calls DmClientSetup and whether DmClientSetup exits with success or failure on mobile device clients. </li>
<li>DmInvExtension.log - Records Inventory Extension file installation for setting up Inventory Extension files on client computers. </li>
<li>DmSvc.log - Records mobile device management service data on mobile device clients. </li>
</ul>
<h3>
Operating System Deployment Log Files</h3>
<ul>
<li>CCMSetup.log - Provides information about client-based operating system actions. </li>
<li>CreateTSMedia.log - Provides information about task sequence media when it is created. This log is generated on the computer running the Configuration Manager 2007 administrator console. </li>
<li>DriverCatalog.log - Provides information about device drivers that have been imported into the driver catalog. </li>
<li>MP_ClientIDManager.log - Provides information about the Configuration Manager 2007 management point when it responds to Configuration Manager 2007 client ID requests from boot media or PXE. This log is generated on the Configuration Manager 2007 management point. </li>
<li>MP_DriverManager.log - Provides information about the Configuration Manager 2007 management point when it responds to a request from the Auto Apply Driver task sequence action. This log is generated on the Configuration Manager 2007 management point. </li>
<li>MP_Location.log - Provides information about the Configuration Manager 2007 management point when it responds to request state store or release state store requests from the state migration point. This log is generated on the Configuration Manager 2007 management point. </li>
<li>Pxecontrol.log - Provides information about the PXE Control Manager. </li>
<li>PXEMsi.log - Provides information about the PXE service point and is generated when the PXE service point site server has been created. </li>
<li>PXESetup.log - Provides information about the PXE service point and is generated when the PXE service point site server has been created. </li>
<li>Setupact.log Setupapi.log Setuperr.log Provide information about Windows Sysprep and setup logs. </li>
<li>SmpIsapi.log - Provides information about the state migration point Configuration Manager 2007 client request responses. </li>
<li>Smpmgr.log - Provides information about the results of state migration point health checks and configuration changes. </li>
<li>SmpMSI.log - Provides information about the state migration point and is generated when the state migration point site server has been created. </li>
<li>Smsprov.log - Provides information about the SMS provider. </li>
<li>Smspxe.log - Provides information about the Configuration Manager 2007 PXE service point. </li>
<li>SMSSMPSetup.log - Provides information about the state migration point and is generated when the state migration point site server has been created. </li>
<li>Smsts.log - General location for all operating system deployment and task sequence log events. </li>
<li>TaskSequenceProvider.log - Provides information about task sequences when they are imported, exported, or edited. </li>
<li>USMT Log loadstate.log - Provides information about the User State Migration Tool (USMT) regarding the restore of user state data. </li>
<li>USMT Log scanstate.log - Provides information about the USMT regarding the capture of user state data. </li>
</ul>
<h3>
Network Access Protection Log Files</h3>
<ul>
<li>Ccmcca.log - Logs the processing of compliance evaluation based on Configuration Manager NAP policy processing and contains the processing of remediation for each software update required for compliance. </li>
<li>CIAgent.log - Tracks the process of remediation and compliance. However, the software updates log file, *Updateshandler.log - provides more informative details on installing the software updates required for compliance. </li>
<li>locationservices.log - Used by other Configuration Manager features (for example, information about the client’s assigned site) but also contains information specific to Network Access Protection when the client is in remediation. It records the names of the required remediation servers (management point, software update point, and distribution points that host content required for compliance), which are also sent in the client statement of health. </li>
<li>SDMAgent.log - Shared with the Configuration Manager feature desired configuration management and contains the tracking process of remediation and compliance. However, the software updates log file, Updateshandler.log, provides more informative details about installing the software updates required for compliance. </li>
<li>SMSSha.log - The main log file for the Configuration Manager Network Access Protection client and contains a merged statement of health information from the two Configuration Manager components: location services (LS) and the configuration compliance agent (CCA). This log file also contains information about the interactions between the Configuration Manager System Health Agent and the operating system NAP agent, and also between the Configuration Manager System Health Agent and both the configuration compliance agent and the location services. It provides information about whether the NAP agent successfully initialized, the statement of health data, and the statement of health response. </li>
</ul>
<h3>
System Health Validator Point Log Files</h3>
<ul>
<li>Ccmperf.log -Contains information about the initialization of the System Health Validator point performance counters. </li>
<li>SmsSHV.log - The main log file for the System Health Validator point; logs the basic operations of the System Health Validator service, such as the initialization progress. </li>
<li>SmsSHVADCacheClient.log - Contains information about retrieving Configuration Manager health state references from Active Directory Domain Services. </li>
<li>SmsSHVCacheStore.log - Contains information about the cache store used to hold the Configuration Manager NAP health state references retrieved from Active Directory Domain Services, such as reading from the store and purging entries from the local cache store file. The cache store is not configurable. </li>
<li>SmsSHVRegistrySettings.log - Records any dynamic changes to the System Health Validator component configuration while the service is running. </li>
<li>SmsSHVQuarValidator.log - Records client statement of health information and processing operations. To obtain full information, change the registry key LogLevel from 1 to 0 in the following location:HKLM\SOFTWARE\Microsoft\SMSSHV\Logging\@GLOBAL </li>
</ul>
<h3>
Desired Configuration Management Log Files</h3>
<ul>
<li>ciagent.log - Provides information about downloading, storing, and accessing assigned configuration baselines. </li>
<li>dcmagent.log - Provides high-level information about the evaluation of assigned configuration baselines and desired configuration management processes. </li>
<li>discovery.log - Provides detailed information about the Service Modeling Language (SML) processes. </li>
<li>sdmagent.log - Provides information about downloading, storing, and accessing configuration item content. </li>
<li>sdmdiscagent.log - Provides high-level information about the evaluation process for the objects and settings configured in the referenced configuration items. </li>
</ul>
<h3>
Wake On LAN Log Files</h3>
<ul>
<li>Wolmgr.log - Contains information about wake-up procedures such as when to wake up advertisements or deployments that are configured for Wake On LAN. </li>
<li>WolCmgr.log - Contains information about which clients need to be sent wake-up packets, the number of wake-up packets sent, and the number of wake-up packets retried. </li>
</ul>
<h3>
Software Updates Site Server Log Files</h3>
<ul>
<li>ciamgr.log - Provides information about the addition, deletion, and modification of software update configuration items. </li>
<li>distmgr.log - Provides information about the replication of software update deployment packages. </li>
<li>objreplmgr.log - Provides information about the replication of software updates notification files from a parent to child sites. </li>
<li>PatchDownloader.log - Provides information about the process for downloading software updates from the update source specified in the software updates metadata to the download destination on the site server. </li>
<li>replmgr.log - Provides information about the process for replicating files between sites. </li>
<li>smsdbmon.log - Provides information about when software update configuration items are inserted, updated, or deleted from the site server database and creates notification files for software updates components. </li>
<li>SUPSetup - Provides information about the software update point installation. When the software update point installation completes, Installation was successful is written to this log file. </li>
<li>WCM.log - Provides information about the software update point configuration and connecting to the Windows Server Update Services (WSUS) server for subscribed update categories, classifications, and languages. </li>
<li>WSUSCtrl.log - Provides information about the configuration, database connectivity, and health of the WSUS server for the site. </li>
<li>wsyncmgr.log -Provides information about the software updates synchronization process. </li>
</ul>
<h3>
WSUS Server Log Files</h3>
<ul>
<li>Change.log - Provides information about the WSUS server database information that has changed. </li>
<li>SoftwareDistribution.log - Provides information about the software updates that are synchronized from the configured update source to the WSUS server database. </li>
</ul>
<h3>
Software Updates Client Computer Log Files</h3>
<ul>
<li>CAS.log - Provides information about the process of downloading software updates to the local cache and cache management. </li>
<li>CIAgent.log - Provides information about processing configuration items, including software updates. </li>
<li>LocationServices.log - Provides information about the location of the WSUS server when a scan is initiated on the client. </li>
<li>PatchDownloader.log - Provides information about the process for downloading software updates from the update source to the download destination on the site server. This log is only on the client computer configured as the synchronization host for the Inventory Tool for Microsoft Updates. </li>
<li>PolicyAgent.log - Provides information about the process for downloading, compiling, and deleting policies on client computers. </li>
<li>PolicyEvaluator - Provides information about the process for evaluating policies on client computers, including policies from software updates. </li>
<li>RebootCoordinator.log - Provides information about the process for coordinating system restarts on client computers after software update installations. </li>
<li>ScanAgent.log - Provides information about the scan requests for software updates, what tool is requested for the scan, the WSUS location, and so on. </li>
<li>ScanWrapper - Provides information about the prerequisite checks and the scan process initialization for the Inventory Tool for Microsoft Updates on Systems Management Server (SMS) 2003 clients. </li>
<li>SdmAgent.log - Provides information about the process for verifying and decompressing packages that contain configuration item information for software updates. </li>
<li>ServiceWindowManager.log - Provides information about the process for evaluating configured maintenance windows. </li>
<li>smscliUI.log - Provides information about the Configuration Manager Control Panel user interactions, such as initiating a Software Updates Scan Cycle from the Configuration Manager Properties dialog box, opening the Program Download Monitor, and so on. </li>
<li>SmsWusHandler - Provides information about the scan process for the Inventory Tool for Microsoft Updates on SMS 2003 client computers. </li>
<li>StateMessage.log - Provides information about when software updates state messages are created and sent to the management point. </li>
<li>UpdatesDeployment.log - Provides information about the deployment on the client, including software update activation, evaluation, and enforcement. Verbose logging shows additional information about the interaction with the client user interface. </li>
<li>UpdatesHandler.log - Provides information about software update compliance scanning and about the download and installation of software updates on the client. </li>
<li>UpdatesStore.log - Provides information about the compliance status for the software updates that were assessed during the compliance scan cycle. </li>
<li>WUAHandler.log - Provides information about when the Windows Update Agent on the client searches for software updates. </li>
<li>WUSSyncXML.log - Provides information about the Inventory Tool for the Microsoft Updates synchronization process. This log is only on the client computer configured as the synchronization host for the Inventory Tool for Microsoft Updates. </li>
</ul>
<h3>
Windows Update Agent Log File</h3>
<a href="https://www.blogger.com/null" name="Server_Log_Files"></a> <a href="https://www.blogger.com/null" name="Admin_Console_Log_Files"></a> <a href="https://www.blogger.com/null" name="Management_Point_Log_Files"></a> <a href="https://www.blogger.com/null" name="Mobile_Device_Management_Log_Files"></a> <a href="https://www.blogger.com/null" name="Mobile_Device_Client_Log_Files"></a> <a href="https://www.blogger.com/null" name="Operating_System_Deployment_Log_Files"></a> <a href="https://www.blogger.com/null" name="Network_Access_Protection_Log_Files"></a> <a href="https://www.blogger.com/null" name="System_Health_Validator_Point_Log_Files"></a> <a href="https://www.blogger.com/null" name="Desired_Configuration_Management_Log_Files"></a> <a href="https://www.blogger.com/null" name="Wake_On_LAN_Log_Files"></a> <a href="https://www.blogger.com/null" name="Software_Updates_Site_Server_Log_Files"></a> <a href="https://www.blogger.com/null" name="WSUS_Server_Log_Files"></a> <a href="https://www.blogger.com/null" name="Software_Updates_Client_Computer_Log_Files"></a> <a href="https://www.blogger.com/null" name="Windows_Update_Agent_Log_File"></a> <br />
<ul>
<li>WindowsUpdate.log - Provides information about when the Windows Update Agent connects to the WSUS server and retrieves the software updates for compliance assessment and whether there are updates to the agent components. </li>
</ul>
ZeusABJhttp://www.blogger.com/profile/09421603730258946485noreply@blogger.com0tag:blogger.com,1999:blog-8210675588153120371.post-73523711243989372852014-03-19T11:09:00.002-05:002014-03-19T11:09:23.649-05:00SCCM: Microsoft Anti-Virus Exclusion List LinkCame across this fantastic link that Microsoft appears to update on a fairly regular basis. Its just a list of links to recommended Endpoint Protection exclusion settings for Microsoft products. Definitely worth bookmarking if you are using the Endpoint Protection feature in SCCM:<br />
<br />
<a href="http://social.technet.microsoft.com/wiki/contents/articles/953.microsoft-anti-virus-exclusion-list.aspx">http://social.technet.microsoft.com/wiki/contents/articles/953.microsoft-anti-virus-exclusion-list.aspx</a>ZeusABJhttp://www.blogger.com/profile/09421603730258946485noreply@blogger.com0tag:blogger.com,1999:blog-8210675588153120371.post-79757809610905575052014-01-30T11:37:00.004-06:002014-01-30T11:37:59.736-06:00SCCM: Viewing install commands for deployed applications on a client machineRecently I was really wrestling with getting a set of install commands working for an application I was deploying through SCCM. Because I was using some variables in my command string I needed to "see" what SCCM was ultimately telling the client to run once the application downloaded and the install kicked off. I was able to determine this by logging onto one of my tests clients and navigating to this log:<br />
<br />
<i>C:\Windows\CCM\Logs\AppEnforce.log</i><br />
<br />
Sure enough the final command string that was getting executed was not what I expected. I made some adjustments to my install string based on what i saw in the log and got it working. Hope someone else finds this useful.ZeusABJhttp://www.blogger.com/profile/09421603730258946485noreply@blogger.com0tag:blogger.com,1999:blog-8210675588153120371.post-44308613145141085962014-01-17T12:35:00.000-06:002017-01-24T09:01:36.426-06:00SCCM Updates: Go for "Autopilot" not "Total Automation"<div class="MsoNormal">
I've been getting lot of questions on a previous post regarding my approach to software update structure with SCCM. I replied to a few and this generated even more questions so I felt the need to do a more lengthy response about why I do things the way I do them and what led to my approach and that led to this post. I'll start by answering the last question posted there. Yes, I clean
up superseded and expired updates by hand (for now at least) and there are
a few very good reasons why I do it that way. When I was first attempting to
implement software updates with SCCM I feel that my big initial mistake was to
chase after a strategy that focused on "total automation". During my that first approach I literally created an ADR and package for every individual
product that I wanted to patch. The ADRs ran monthly and cleaned out the expired
and superseded stuff automatically. Sounds great right? In practice what I
actually discovered was this approach works great for something simple like a
daily Endpoint Protection update (because in that scenario you really only have
to consider about 3-4 small patches a day tops). <i>You try to do that with <b>all</b>
the security, critical, service pack, etc. updates for multiple Windows
versions going back to say 2003 and you run into several problems.</i><o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
First you have a *lot* more patches to deal with in your
software update group(s). Every time your SCCM clients kick off a software
update evaluation cycle they have to look through all those updates and
determine if any apply to the device upon which they are running. At a
Microsoft conference last year I learned that this can cause high CPU
utilization on your target machines. Still that’s not too bad because it only
has to run once against the software update group provided the update group doe
not change after that initial run. Ah but there’s the rub, I also learned that
every time the ADR runs it automatically changes the content in your software
update group! Do that every Patch Tuesday and your clients have to once again
parse or scan that update group which (again) can hit your CPUs pretty hard. To
put it in perspective, think about how many times we hear users complain about
"slow computers" in our line of work. You don’t want to introduce
something hat will hammer CPU utilization on your Servers or User PC multiple
times a month.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Second by having a bunch of ADRs (I had a total of 12) that
were constantly changing and updating the content in my software update groups
I discovered I was putting a lot of load on my primary SCCM server in the weeks
following patch Tuesday. The reason there should be obvious as it was
constantly downloading patches and cleaning up software update groups based on
those ADRs. So by chasing total automation I was (in fact) causing lot of
performance issues on both my clients and my servers. Also it really made no
sense to have ADRs that constantly ran against groups with updates that go way
back in the past (they almost never change unless Microsoft expires or
supersedes them). I came to realize that year-based static update groups with a
single monthly ADR were the best choice for dealing with the performance and
organizational issues I was facing. The reason being is I typically only have
to change the older groups once a quarter (sometimes longer).<span style="mso-spacerun: yes;"> </span>So (usually) I only have to worry about the
updates in my most recent year-based group or my monthly groups (I usually keep
monthly groups up to three months in the past before moving the updates from
the oldest group into a year-based group). <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Finally I learned another valuable lesson about the ADRs. No
matter how well you craft your download rules they will inevitably screw
something up. Either they will download something you don't want or remove
something you want to keep. Its much better to have your monthly ADRs
downloading updates into a test group and then (once you've verified what it
downloaded) you can then move the contents of that test group into your static
update group that targets production machines. Coincidentally this solves the
"Expired and Superseded" issue through attrition as it forces you to
do a "monthly visual audit" on your update groups when you open the
console up after patch Tuesday to see what your ADR downloaded. If your static
groups contain superseded or expired updates you'll see that the icon next to
their names has changed to reflect that. At that point its child's play to just
open the group and remove the older updates by editing their membership.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Revision>0</o:Revision>
<o:TotalTime>0</o:TotalTime>
<o:Pages>1</o:Pages>
<o:Words>750</o:Words>
<o:Characters>4280</o:Characters>
<o:Company>Home</o:Company>
<o:Lines>35</o:Lines>
<o:Paragraphs>10</o:Paragraphs>
<o:CharactersWithSpaces>5020</o:CharactersWithSpaces>
<o:Version>14.0</o:Version>
</o:DocumentProperties>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>JA</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="276">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]-->
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;}
</style>
<![endif]-->
<!--StartFragment-->
<!--EndFragment--><br />
<div class="MsoNormal">
So that’s a pretty big reply to the questions I was being asked and (honestly)
a lot of it is just what I’ve discovered through using SCCM 2012 in the past
year. There may be a better way to do it, but this one works for me. I really
struggled a lot with this at first and I hope I'm posting this big response in an effort to help others avoid some of my own pain. SCCM is a really complicated animal and I just think its a bad idea to go into it "set it and forget it approach". If it were really that easy we wouldn't need SCCM admins right? <i>The main point I’d like to get across though is sometimes a 100%
automated solution just doesn't make sense.</i> SCCM can automate a lot of
things for you but even with the advent of the autopilot feature on an airplane we still need pilots at
the helm. Focus on design paradigms that automate the most time consuming, tedious or repetitive steps. Then if you find yourself still stuck with a
manual step, try to make it something you can do very quickly (like at the
touch of a button). I hope that makes sense and that others find it helpful. If there are any counterpoints to this philosophy or if anyone just has better ways of approaching this I'd love to hear about it in the comments section.<o:p></o:p><br />
<br />
UPDATE: Someone requested a screenshot of my SUGs. I've added it below. Like I said we roll about 2-3 months in the past on our monthly deltas and once we achieve around 90% I move those to a year-based group. I've highlighted the delta and year-based groups in the screenshot. The other groups listed there are "special case" groups:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjR8yRORvBDQTzsTS8x-XBufTM8ZaT53ETPsCpXiybTP4YCnqmRu_CLNBX1fF0RQpGU8P7Ep3wTV6y75Su6DSz9g10NvBGeD22GY7_PngiW9gdrLOedElYseKaew0-DLXjCLbzlTWM0EQhS/s1600/SUGs.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjR8yRORvBDQTzsTS8x-XBufTM8ZaT53ETPsCpXiybTP4YCnqmRu_CLNBX1fF0RQpGU8P7Ep3wTV6y75Su6DSz9g10NvBGeD22GY7_PngiW9gdrLOedElYseKaew0-DLXjCLbzlTWM0EQhS/s1600/SUGs.PNG" /></a></div>
<br /></div>
ZeusABJhttp://www.blogger.com/profile/09421603730258946485noreply@blogger.com56tag:blogger.com,1999:blog-8210675588153120371.post-4137964603142903812014-01-10T16:01:00.003-06:002014-01-10T16:04:26.665-06:00MDT: Notes on setting Pre-checked Applications in CustomSettings.iniI recently needed to set some conditions in my MDT CustomSettings.ini file to pre-check certain applications during an image deployment. Those of you that have used this feature know that you can get the GUID from any application in MDT by right-clicking it within the MDT Workbench view and choosing properties. The GUID appears at the bottom of the window that opens and it can then be copied and pasted into then CustomSettings.ini like so:<br /><br />Applications001={GUID1}<br />Applications002={GUID2}<br /><br />Thats fine and dandy, but what are the limitations of this process? What syntax is permissible? I won't go into the details but some recent issuues froece me to ask those quetions. Here's the answer I got from Keith Garner on the MDT Technet forums:<br /><br /><i>Numbers may be between 1 and 999<br /><br />You can start at any number within the CS.ini *HOWEVER* when reading the list, MDT will always start at 1, and if it comes across any missing number it will ignore the rest. So if you inputted Var10, without using Var1 through Var9, then Var10 might as well not existed.<br /><br />You may choose to *not* prefix a zero to the start, or you may choose to prefix some zeros, as long as the number is 3 digits long, like: 001, 010, 100.<br /><br />Valid:<br />Applications1=GUID<br />Applications10=GUID<br />Applications010=GUID<br /><br />Not Valid:<br />Applications01=GUID<br />Applications0001=GUID</i><br /><br />I did some testing on my own and (as expected) these rules also apply to MandatoryApplications, WMU_EXCLUDEID and WMU_EXCLUDEKB. All good info to know if you are customizing these settings in CustomSettings.ini!ZeusABJhttp://www.blogger.com/profile/09421603730258946485noreply@blogger.com0tag:blogger.com,1999:blog-8210675588153120371.post-39833166592279462892013-10-09T12:40:00.003-05:002013-10-09T12:40:45.053-05:00SCCM: Software Updates Example Scenario from MicrosoftI've almost finished reworking our software updates around the paradigms discussed in the last tow posts. I was thinking about putting together a nice write up explaining how I did it when I came across this fantastic Microsoft article on the subject:<br />
<br />
<a href="http://technet.microsoft.com/en-us/library/jj134348.aspx">http://technet.microsoft.com/en-us/library/jj134348.aspx</a><br />
<br />
I love how its all laid out almost like an elementary school math problem. One of my biggest failures in my initial approach to software updates with SCCM was the pursuit of a process that was 100% automated. Going the route outlined by Microsoft in the article above still requires you to be at the helm at least once a month to deploy the updates in your ADR. Turns out this is actually a good thing as it forces you to really examine what you're deploying every month. Plus you can use deployment templates to "semi-automate" the process f manual deployment which manages to eliminate a lot of the human error potential of that method. Maybe SCCM 2012 R2 will ease this burden a bit for further automation but (for now) this works.ZeusABJhttp://www.blogger.com/profile/09421603730258946485noreply@blogger.com0tag:blogger.com,1999:blog-8210675588153120371.post-9829000417567782492013-08-22T00:55:00.003-05:002013-08-22T00:55:57.642-05:00Video: SCCM 2012 SP1 Software Updates explainedAfter my post two days ago about structuring software updates in SCCM I thought I should share another item I came across recently regarding the subject. There is a fantastic video on TechNet by Kenny Buntinx that can show you the best way to structure your updates in SCCM 2012 SP1. Along the way he provides a lot of additional tips that are all really useful. This video was instrumental in helping me "unlearn" a lot of what I *thought* was the right approach to software updates in SCCM 2012 (based on the books I bought and the online guides I found). Check it out:<br />
<br />
<a href="http://technet.microsoft.com/en-us/video/sccm-2012-sp1-and-the-new-way-handling-software-updates-explained.aspx">SCCM 201 SP1 Software Updates Explained</a>ZeusABJhttp://www.blogger.com/profile/09421603730258946485noreply@blogger.com0tag:blogger.com,1999:blog-8210675588153120371.post-36572992392636445362013-08-20T10:41:00.003-05:002013-08-20T10:41:24.964-05:00SCCM: How to structure Software UpdatesI've had some real struggles with coming up with a good system for managing software updates in SCCM since we went live back in mid-2012. Its taken over a year with much hair pulling and gnashing of teeth but I think we finally have a pretty decent system in place. The worst part is all the books you buy are very confusing and (quite frankly) they tend to make recommendations that are flat wrong. Maybe they are focusing on theory rather than practicality but I'm just amazed at how badly so many books written by so-called "experts" managed to steer me off course with regards to this key feature in SCCM. I had a real eye opener at a conference recently that made me sort of "un-learn" a lot of notions that had been drilled into my brain based on three separate SCCM 2012 books. I thought I'd share some of that here so (hopefully) others won't have to struggle with repeated "trial and error" attempts to roll out a solid SCCM 2012-based software updates strategy:<br />
<br />
Don't split updates up by product name! It’s a waste of time. The client agent on the local machine will determines product categories automatically and only downloads the updates that are needed! Instead separate and name your software update groups by periods of time. Start with 2003-2010 as updates only go back to year 2003 and all the updates up to 2010 should fit in a single package. Subsequent groups should be broken up by individual year 2011, 2012, etc. Keep update groups under 1000 updates or you will have problems. Make updates REQUIRED for Workstations. Make updates AVAILABLE for Servers. Tell application owners it’s their responsibility to install and reboot their servers. Clarify that “No Reboot = Not patched” in most cases! Reboots must be planned when installing updates! At the same time try to identify those servers that can be patched and rebooted automatically without having an impact on your user base.<br />
<br />
Every time a software update group changes the agent has to rescan all the content of that group. For this reason you want to keep automatic update groups to a minimum! This is both in terms of the number of automatic update groups you create and the amount of updates they are allowed to contain. Create static (or non-automatic) software update groups to store your updates from previous years while limiting automatic updates to a timeframe of the last month, week or day. Not only does this make updates easier to manage it also reduces the load on both the SCCM server and the SCCM clients as update agents won’t have to constantly parse a bunch of old updates every time new updates are released! To reiterate: Use static groups for older updates and organize by year! Use automatic update groups for monthly and daily updates only!<br />
<br />
When you create the packages for your update groups make sure to name them by year as well. You want to use a year-based package name for your automatic monthly updates as well as they will eventually be moved to a year-based group anyway. So automatic monthly updates that take place in year 2013 should target your "All Updates for 2013" package. You should plan to do yearly maintenance where you move all the automatic updates for the previous year into a static group (almost like archiving) while creating a new automatic group and year-based package for the incoming year. Also using one yearly package for all updates means you only have one package to monitor during deployments. This is done in the SCCM console under “Monitoring -> Overview -> Deployments”. The compliance column there is your exact compliance figure for the collection you are targeting (as opposed to the compliance column in the software update groups view which is for ALL SYSTEMS).<br />
<br />
Additional tips and items to consider:<br />
<br />
<ul>
<li>Microsoft best practice is to patch per month, forget quarterly it’s too complicated.</li>
<li>Enable delta updates for Distribution Points to get updates out faster and reduce server load.</li>
<li>Create alerts for updates, start with 75% compliance at first. Then move up to 80, 90, etc.</li>
<li>Updates need to go out to Pre-Production be 7-14 days out from Patch Tuesday, then wait another 7-14 days before deploying to Production.</li>
<li>Create Deployment Templates! These will allow you perform manual software update-related actions very quickly. For example: Have a template to push out day 0 critical updates immediately.</li>
</ul>
<br />
<br />
Good luck!<br />
<div>
<br /></div>
ZeusABJhttp://www.blogger.com/profile/09421603730258946485noreply@blogger.com81tag:blogger.com,1999:blog-8210675588153120371.post-78489885593652296552013-08-20T09:27:00.002-05:002013-08-20T09:27:17.376-05:00SCCM: Logs to check when troubleshooting software updates.According to my page view rankings the "SCCM 2012 Log File reference" post that I did back in May of 2012 continues to be the most popular post on my blog. I suppose that means another log file related post might be in order and as luck would have it I have just the thing. I've been working pretty hard the last couple of weeks to make some rather sweeping changes to the SCCM-based software updates process at my company. During the course of testing and developing these changes I found myself constantly having to reference two specific sets of log files. One set was on the Server side and the other was on the Client side set. I thought it might be really valuable to list them here for posterity. If you are doing anything with SCCM software updates these are the logs you need to be keeping an eye on:<div>
<br /></div>
<div>
<div>
<b>Server Side Software Update Logs:</b></div>
<div>
SUPsetup.log - Installation of SUP Site Role.</div>
<div>
WCM.log, WSUSCtrl.log - Configuration of WSUS Server/SUP.</div>
<div>
WSyncMgr.log - SMS/WSUS Updates Synchronization Issues.</div>
<div>
Objreplmgr.log - Policy Issues for Update Assignments/CI Version Info policies.</div>
<div>
RuleEngine.log - Auto Deployment Rules.</div>
<div>
<br /></div>
<div>
<b>Client Side Software Update Logs:</b></div>
<div>
UpdatesDeployment.log - Deployments, SDK, UX.</div>
<div>
UpdatesHandler.log - Updates, Download.</div>
<div>
ScanAgent.log - Online/Offline scans, WSUS location requests.</div>
<div>
WUAHandler.log - Update status (missing/installed - verbose logging), WU interaction.</div>
<div>
UpdatesStore.log - Update status (missing/installed).</div>
<div>
%windir%\WindowsUpdate.log - Scanning/Installation of updates.</div>
</div>
<div>
<br /></div>
<div>
Hope somebody finds this useful!</div>
ZeusABJhttp://www.blogger.com/profile/09421603730258946485noreply@blogger.com7tag:blogger.com,1999:blog-8210675588153120371.post-23237755423659686912013-08-01T11:24:00.004-05:002014-05-19T15:53:00.092-05:00SQL Query to report SCCM client version and install status (extended)I needed to extend the SQL query to report SCCM client version and install status that I wrote on July 22 to include systems where the client was Null. This is what I came up with:<br />
<br />
<br />
<code>select distinct
SYS.Name0 as 'Machine Name',
ISNULL(SYS.User_Name0, 'None') as 'Login ID',
ISNULL(SYS.User_Domain0, 'None') as 'Domain',
ISNULL(USR.Full_User_Name0, 'None') as 'Full Name',
case
when SYS.Client0 = 1 then 'Yes'
when SYS.Client0 = 0 then 'No (or Inactive)'
when SYS.Client0 is null then 'None'
else convert(varchar(2), SYS.Client0)
end as 'Client Installed',
ISNULL(SYS.Client_Version0, 'None') as 'Client Version'
from
v_R_System SYS
join v_FullCollectionMembership FCM on SYS.ResourceID = FCM.ResourceID
join v_Collection CN on FCM.CollectionID = CN.CollectionID
left outer join v_R_User USR on SYS.User_Name0 = USR.User_Name0
where
CN.Name = 'All Systems' and (
SYS.Client0 = 0 or
SYS.Client0 is null
)</code>
<br />
<br />
This is useful for tracking down those stale AD records.ZeusABJhttp://www.blogger.com/profile/09421603730258946485noreply@blogger.com1tag:blogger.com,1999:blog-8210675588153120371.post-35719395097141234002013-07-22T15:08:00.000-05:002013-07-22T15:08:24.771-05:00SQL Query to report SCCM client version and install statusPut this together to generate a list of our SCCM clients and report on their install version and status:<br />
<br />
<br />
<code>select distinct
SYS.Name0 as 'Machine Name',
SYS.User_Name0 as 'Login ID',
SYS.User_Domain0 as 'Domain',
USR.Full_User_Name0 as 'Full Name',
case
when SYS.Client0 = 1 then 'Yes'
when SYS.Client0 = 0 then 'No'
else convert(varchar(2), SYS.Client0)
end as 'Client Installed',
SYS.Client_Version0 as 'Client Version'
from
v_R_System SYS
join v_FullCollectionMembership FCM on SYS.ResourceID = FCM.ResourceID
join v_Collection CN on FCM.CollectionID = CN.CollectionID
join v_R_User USR on SYS.User_Name0 = USR.User_Name0
where
CN.Name = 'All Systems'</code>ZeusABJhttp://www.blogger.com/profile/09421603730258946485noreply@blogger.com0tag:blogger.com,1999:blog-8210675588153120371.post-86657621145134635812013-07-16T16:35:00.001-05:002013-07-16T16:37:18.315-05:00WQL: SCCM client version and SCCM 2012 consoleI had to put these two queries together to help me upgrade my client machines after the SP1 update. Here's one to help you with determining your client versions:<br />
<br />
<code>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.ClientVersion < "5.00.7804.1000"</code><br />
<br />
You can use this query to create multiple collections, just edit it to fit your needs (ie change the version number or substitute the desired operators "<, =, or >" to fit your needs).<br />
<br />
Here's another for systems with the SCCM 2012 console installed (that required an update as well):<br />
<br />
<code>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
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 like "%System Center 2012 Configuration Manager Console%"</code><br />
<br />
Hope they are useful to someone!ZeusABJhttp://www.blogger.com/profile/09421603730258946485noreply@blogger.com0tag:blogger.com,1999:blog-8210675588153120371.post-7765254911557359902013-07-16T10:45:00.001-05:002013-07-16T14:13:04.558-05:00Using PowerShell to build a GPO-based WMI filter for the SCCM Client installWe recently upgraded our SCCM 2012 server to SP1. I am now in the process of upgrading all the SCCM clients to the latest version (5.00.7804.1000). I use Group Policy to push the client and I wanted to add a WMI filter to the policy to filter out any systems that already have the correct client version. To do that I needed to know where to look for the client version in WMI on a local machine. PowerShell came to my rescue with this command:<br />
<br />
<code>Get-WmiObject -namespace root\ccm -class sms_client</code><br />
<br />
Here's a screenshot of the output I got from an up-to-date computer (note the version number):<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7d8YGTNKOFHNvNeJDQU7Dv2ZELkQWaQYI30YeJoz9QaR2V3WMqwA_bWDz3Cqt7Kp4TU2JkoHXJKVpxRB-tXKVv03INFWd_jrdtqdrqTJ6J-PI_EeAO52DKncZty4rmf4LzbbjbSSwgGUO/s1600/powershell-wmi.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7d8YGTNKOFHNvNeJDQU7Dv2ZELkQWaQYI30YeJoz9QaR2V3WMqwA_bWDz3Cqt7Kp4TU2JkoHXJKVpxRB-tXKVv03INFWd_jrdtqdrqTJ6J-PI_EeAO52DKncZty4rmf4LzbbjbSSwgGUO/s400/powershell-wmi.PNG" width="400" /></a></div>
<br />
<br />
Using that I was able to construct the following query for my WMI filter:<br />
<br />
<code>select * from SMS_Client where ClientVersion < "5.00.7804.1000"</code><br />
<br />
I applied the filter to our SCCM client install policy and now it only runs on machines running client versions older than the one specified. Nice!<br />
<br />
<b>BONUS TIP:</b><br />
There are several ways to do the GPO-based install, I chose to go with running ccmsetup.exe as a startup script in Group Policy Management at the following location:<br />
<br />
"Computer Configuration -> Policies -> Windows Settings -> Scripts (Startup/Shutdown)"<br />
<br />
I set it up to run the following install string:<br />
<br />
<code>ccmsetup.exe /MP:<MySCCMServerName> SMSSITECODE=AUTO</code>ZeusABJhttp://www.blogger.com/profile/09421603730258946485noreply@blogger.com0