tag:blogger.com,1999:blog-78017669922642422512024-02-14T04:14:10.875-05:00Skatterbrainz BlogMy Other Blog is a Chevyskatterbrainzhttp://www.blogger.com/profile/01375101979702884965noreply@blogger.comBlogger1647125tag:blogger.com,1999:blog-7801766992264242251.post-35593040372984667482014-08-31T18:33:00.000-04:002014-08-31T18:54:26.892-04:00It's Time for a Change...My first post on this blog was back in December 2007. It's been my release, my therapy, and my toy ever since. It's been there when my life when very bad, and very good. But, after seven (7) years of waiting for Google to add some much-needed tools to Blogger, I've finally had to accept the fact that they're not listening. <br />
<br />
Blogging just isn't on the Google radar anymore it seems, at least not for little independent blabber-mouths like myself. Therefore, finally giving in to what many other bloggers have suggested I do long ago: I'm moving my blog to Wordpress. Wordpress seems to be interested in keeping the blog idea alive and evolving. I hope this doesn't upset or inconvenience anyone, but hopefully you'll continue reading my stuff. Thank you!<br />
<br />
<a href="http://skatterbrainz.wordpress.com/">http://skatterbrainz.wordpress.com</a><br />
<br />
:)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-QttqUONNibk/SfT8h-ZA1-I/AAAAAAAAEk0/3o9U7I4I_dg/s1600/IMG_4914.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-QttqUONNibk/SfT8h-ZA1-I/AAAAAAAAEk0/3o9U7I4I_dg/s1600/IMG_4914.JPG" height="180" width="320" /></a></div>
<br />skatterbrainzhttp://www.blogger.com/profile/01375101979702884965noreply@blogger.com0tag:blogger.com,1999:blog-7801766992264242251.post-49387754943578808852014-08-27T09:03:00.002-04:002014-08-27T09:03:49.184-04:00About My Other Blog: ScriptzillaI've been so "head-down" into multiple projects, work life, home life, no life, that I haven't really put any effort into my other techie-centric blog: "<a href="http://scriptzilla.blogspot.com/" target="_blank">Scriptzilla</a>". It's worth noting that there are other web sites and products using that name, but I am only affiliated with the one mentioned/linked herein.<br />
<br />
I will be putting more work into the Scriptzilla blog as a means for offloading tons and tons of script code I've amassed over the past 30 years in I've spent in IT. Some of it will be mundane, common stuff, which is very similar to what could be found in a Google search. Some of it will be very unique and uncommon. And some will just be somewhere in the middle. But it will be.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-TysxB1YKOPE/U_0CMdwr85I/AAAAAAAAeLQ/P1ii_zcgErw/s1600/sz.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-TysxB1YKOPE/U_0CMdwr85I/AAAAAAAAeLQ/P1ii_zcgErw/s1600/sz.png" height="170" width="320" /></a></div>
<br />skatterbrainzhttp://www.blogger.com/profile/01375101979702884965noreply@blogger.com0tag:blogger.com,1999:blog-7801766992264242251.post-29919438446559255622014-08-26T21:27:00.000-04:002014-08-26T21:27:03.914-04:00The Missing SCCM Database ViewFor most interfaces I've worked on over the past ten years, which involve poking a stick at System Center Configuration Manager 2007 or 2012, this is one database view (or stored proc) that I'm usually building for myself. It basically tosses about eight built-in Views and Tables into a blender, with a dash or two of stupid sauce and provides a fairly good picture of each computer in your site database.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-TysxB1YKOPE/U_0CMdwr85I/AAAAAAAAeLQ/P1ii_zcgErw/s1600/sz.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-TysxB1YKOPE/U_0CMdwr85I/AAAAAAAAeLQ/P1ii_zcgErw/s1600/sz.png" height="170" width="320" /></a></div>
<br />
<br />
It spews out the computer name, client info, site code, manufacturer, model, memory, Windows flavor, chassis type (I didn't cross-join that to produce names, but you can do that, I'm too lazy right now), BIOS info and serial number, CPU, AD stuff, install date, and of course, my personal favorite: the SCCM distribution point reference. Note that I've provided a fall-back DP name for those which are not explicitly mapped via a site boundary, so they come back home to an MP usually (not always). I used "DP0001" but you should stuff your own name in place of that.<br />
<br />
<pre></pre>
<pre><span style="color: #990000;">[begincode]</span></pre>
<pre></pre>
<pre><span style="color: #38761d;">SELECT DISTINCT
v_R_System.Name0,
v_R_System.ResourceID,
v_R_System.Client0 AS ClientInstalled,
v_R_System.Client_Version0 AS ClientVersion,
v_R_System.Creation_Date0 AS ClientDate,
v_RA_System_SMSAssignedSites.SMS_Assigned_Sites0 AS SiteCode,
v_GS_COMPUTER_SYSTEM.Manufacturer0 AS Manufacturer,
v_GS_COMPUTER_SYSTEM.Model0 AS ModelName,
v_GS_COMPUTER_SYSTEM.SystemType0 AS SystemType,
v_GS_OPERATING_SYSTEM.Caption0 AS OSName,
v_GS_OPERATING_SYSTEM.CSDVersion0 AS ServicePack,
v_GS_X86_PC_MEMORY.TotalPhysicalMemory0 AS Memory,
v_GS_SYSTEM_ENCLOSURE.ChassisTypes0 AS ChassisType,
v_GS_SYSTEM_ENCLOSURE.SerialNumber0 AS SerialNumber,
v_GS_PC_BIOS.Manufacturer0 AS BIOSvendor,
v_GS_PC_BIOS.SMBIOSBIOSVersion0 AS BIOSversion,
v_GS_PC_BIOS.ReleaseDate0 AS BIOSdate,
v_GS_PROCESSOR.Name0 AS CPU,
v_R_System.AD_Site_Name0 AS ADSiteName,
v_GS_COMPUTER_SYSTEM.UserName0 AS ADUserName,
v_GS_COMPUTER_SYSTEM.Domain0 AS ADDomain,
v_GS_OPERATING_SYSTEM.InstallDate0 AS OSInstallDate,
v_BoundaryInfo.BoundaryID,
COALESCE (ProtectedSiteSystem_ARR.ServerName, 'DP0001') AS DPServer
FROM dbo.ProtectedSiteSystem_ARR AS ProtectedSiteSystem_ARR
INNER JOIN
dbo.v_BoundaryInfo AS v_BoundaryInfo
ON ProtectedSiteSystem_ARR.BoundaryID = v_BoundaryInfo.BoundaryID
RIGHT OUTER JOIN
dbo.v_R_System AS v_R_System INNER JOIN
dbo.v_GS_PROCESSOR AS v_GS_PROCESSOR
ON v_R_System.ResourceID = v_GS_PROCESSOR.ResourceID
INNER JOIN
dbo.v_GS_COMPUTER_SYSTEM AS v_GS_COMPUTER_SYSTEM
ON v_R_System.ResourceID = v_GS_COMPUTER_SYSTEM.ResourceID
INNER JOIN
dbo.v_GS_SYSTEM_ENCLOSURE AS v_GS_SYSTEM_ENCLOSURE
ON v_R_System.ResourceID = v_GS_SYSTEM_ENCLOSURE.ResourceID
INNER JOIN
dbo.v_GS_X86_PC_MEMORY AS v_GS_X86_PC_MEMORY
ON v_R_System.ResourceID = v_GS_X86_PC_MEMORY.ResourceID
INNER JOIN
dbo.v_GS_OPERATING_SYSTEM AS v_GS_OPERATING_SYSTEM
ON v_R_System.ResourceID = v_GS_OPERATING_SYSTEM.ResourceID
INNER JOIN
dbo.v_GS_PC_BIOS AS v_GS_PC_BIOS ON v_R_System.ResourceID = v_GS_PC_BIOS.ResourceID
INNER JOIN
dbo.v_RA_System_SMSAssignedSites AS v_RA_System_SMSAssignedSites
ON v_R_System.ResourceID = v_RA_System_SMSAssignedSites.ResourceID
ON v_BoundaryInfo.Value = v_R_System.AD_Site_Name0</span></pre>
<pre><span style="color: #38761d;">ORDER BY v_R_System.Name0</span></pre>
<pre><span style="color: #990000;">[endcode]</span>
</pre>
<br />
To test this out, open your SQL Management Studio. Connect to your site database server and site database instance. Then click "New Query" and paste the code in and press F5 to run it. Add a splash of your favorite alcoholic beverage, some Barry White music, dim the lights, and enjoy the vibe. Peace.<br />
<br />skatterbrainzhttp://www.blogger.com/profile/01375101979702884965noreply@blogger.com0tag:blogger.com,1999:blog-7801766992264242251.post-26015966326570043102014-08-20T18:00:00.000-04:002014-08-22T20:42:07.431-04:00The Most Destructive Force in the IT Operations WorldWhat's more important: Your job and income, or your personal right to get what you want? Back up a second. Do you even have a right to get what you want? I'm talking about within the employer/employee relationship realm of course. Legally speaking however, even in your personal life, you have no such guarantee of that "right" whatsoever. You barely have a right to "pursue happiness", but even that has conditions taped all over it. But, back to the question at-hand...<br />
<br />
Which is more important: The success of your employer, or your job?<br />
<br />
If you said your job is more important, than you are like most Americans after a few beers or Xanax pills. When they open up and give up on resisting their honest opinions.<br />
<br />
This is aimed squarely at you folks who work in IT shops which are part of larger companies and organizations. Big enough to have a "CIO" or maybe even a "CTO".<br />
<br />
Based on discussions, emails, and social media indications, all anecdotal of course, but tempered with 30-plus years of working in the IT world (I'm allowed to add some seasoning to this meal), here's 5 examples of what most IT professionals seem feel about their jobs:<br />
<br />
<br />
<ol>
<li>They don't feel their opinions are given much value.</li>
<li>They don't have confidence in their upper management as it pertains to decisions revolving around technology.</li>
<li>They feel too much focus is on a dollar, rather than a solution, and that in most cases, the proper solution would yield more profit.</li>
<li>They feel upper management is too easily swayed by articles and vendor marketing pressure.</li>
<li>They don't feel that their skills are being used properly or effectively.</li>
</ol>
<br />
<br />
Adding to item 3 above: If your business doesn't match every cost-cutting move with a revenue-generating move at the SAME time, the business is doomed. <b>You can only control revenue bleeding for so long, but unless you start work immediately on the healing part, the patient is going to die.</b><br />
<br />
It seems that in the great American race to satisfy shareholders, win awards for revenue goals, and securing that big contract announcement, we lost sight of the really cool part of American business: Innovation. I'm not talking about tweaking and optimizing. ANYONE can do that. Innovation however is different. In 2014 when it comes to setting our sights on innovation, we might as well be Stevie Wonder in a dark forest with an unloaded gun. <br />
<br />
In fact, we're not even sitting on the right mountain anymore. We sold that off to foreign interests. America has ripened like a fat grape, and how we practically begging the rest of the world to come and pick away. $5.99 a pound. America, it seems, has outdone itself in the area of empowering every individual with the unwavering belief that they themselves are most important, and all other things are less important.<br />
<br />
But getting back to the soul of this rant: what is the "<i>most destructive force</i>" in the IT operational world?<br />
<br />
Ego.<br />
<br />
If you can't put ego aside to focus on the good of your business, well, you're fucked. Sorry if my language offends, but that's the honest truth.<br />
<br />
Some exercises that may help mitigate the effects of ego on your business: Line your staff up and have them repeat the following phrases aloud:<br />
<br />
1. I am not a master of anything, but I'm trying my best every day.<br />
2. I will put aside my personal emotions to do my job the best that I can.<br />
3. I will research everything before claiming I have the best answer to a problem.<br />
4. I will listen to all inputs before making a decision.<br />
5. I am not indispensable. Graveyards are filled with indispensable people.<br />
<br />
If you can't manage to get your team to buy into this, then try it yourself.<br />
<br />
And then, ask yourself this: Am I doing this task right now for the sake of being truly innovative, or to meet some deadline or cost-control initiative?<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-TVYDQcIQUnc/UD2BwrAEqvI/AAAAAAAANkc/qrz4-Nl9UwE/s1600/desk_spill_large.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-TVYDQcIQUnc/UD2BwrAEqvI/AAAAAAAANkc/qrz4-Nl9UwE/s1600/desk_spill_large.jpg" height="320" width="320" /></a></div>
<br />skatterbrainzhttp://www.blogger.com/profile/01375101979702884965noreply@blogger.com0tag:blogger.com,1999:blog-7801766992264242251.post-15577259123018485232014-08-20T15:57:00.000-04:002014-08-20T15:57:29.083-04:00My New Book is Out! The AutoCAD 2015 Network Administrator's Bible <span style="font-family: inherit;">"<a href="http://www.amazon.com/dp/B00MU1NMD4/ref=cm_sw_su_dp" target="_blank">The AutoCAD 2015 Network Administrator's Bible</a>" covers everything from new features and requirements, to building Network Deployment Shares, to deploying with Scripts, Microsoft Deployment Toolkit 2013, and System Center Configuration Manager 2012. </span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">There are also tips for working with VMware Workstation as a test environment, handling .NET dependencies on Windows 7 and Windows 8, and slip-streaming updates and service packs during deployments.</span><br />
<span style="font-family: inherit;"><br /></span>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-pA4ZlK2i-5M/U_Df6MHaXJI/AAAAAAAAd5E/vJsJzrV7Dpo/s1600/anab2015_cover2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-pA4ZlK2i-5M/U_Df6MHaXJI/AAAAAAAAd5E/vJsJzrV7Dpo/s1600/anab2015_cover2.jpg" height="320" width="269" /></a></div>
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">I hope you like it. Please post feedback on the Amazon site to share your thoughts after checking it out? I'd really like to hear from you.</span><br />
<span style="font-family: inherit;"><br />Cheers!</span>skatterbrainzhttp://www.blogger.com/profile/01375101979702884965noreply@blogger.com0tag:blogger.com,1999:blog-7801766992264242251.post-11035679810887764112014-08-19T20:07:00.003-04:002014-08-19T20:07:45.871-04:00From the Book: .NET Framework 3.5, Windows 8 and AutoCAD 2015 DeploymentsThat title is not long enough. If I want to provide product titles to Microsoft as a possible side business, I need to make the titles longer. Like that will ever happen. Anyhow, this post is based on a part of my recent ebook "<a href="http://amzn.com/B00MU1NMD4" target="_blank">The AutoCAD 2015 Network Administrator's Bible</a>", and focuses on dealing with one particular road bump in deploying AutoCAD 2015 to Windows 8.x clients.<br />
<h2>
Windows 8 and .NET Framework 3.5</h2>
If you read through the <a href="http://knowledge.autodesk.com/support/autocad/troubleshooting/caas/sfdcarticles/sfdcarticles/System-requirements-for-AutoCAD-2015.html" target="_blank">documentation</a>, one of the requirements for installing on Windows 8.x is to have the .NET Framework 3.5 feature enabled. This feature is *not* enabled by default. You can enable it via the Control Panel route, or from a command-line, via a script, or as part of your imaging process using MDT or SCCM as well. Choices, choices, choices.<br />
<br />Why is this a big deal? Maybe for you and your environment ,it's not a big deal at all. But what if you want to deploy AutoCAD 2015 to 500, 1,000 or 10,000 computers, all of which are running Windows 8.1, but not all of them have .NET Framework 3.5 enabled? Still feel excited about running around to touch each machine? Even remoting into each one? How about the time to concoct (or steal) a script to batch enable all of them? Yes, you can do any or all of these. The short story is: There is no "one-size-fits-all" solution.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-SBxu8aQH4AU/U_PgMWepZCI/AAAAAAAAd-o/vPoGQwkfNtA/s1600/anab2015_alt1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-SBxu8aQH4AU/U_PgMWepZCI/AAAAAAAAd-o/vPoGQwkfNtA/s1600/anab2015_alt1.PNG" height="198" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<h2 style="clear: both; text-align: left;">
Option 1 - Scripting and Command-Line</h2>
<div class="separator" style="clear: both; text-align: left;">
If you don't have the luxury of using MDT or SCCM to do some of your heavy-lifting, you can still make-do with free features provided within Windows itself. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
But before I jump into this I would like to mention that unlike some other .NET Framework versions, 3.5 is a "feature" within Windows 8, rather than a downloaded update or service pack. The binaries which are required to enable it are already embedded in the "\sources\sxs" folder beneath the Windows home directory. The challenge tends to be that the contents of that folder within the original installation media, and the final result do not often match. That's because Microsoft has opted to follow an admirable "reduced attack surface area" approach, which translates into putting the least amount of bits on the client as are needed. The less code laying around, the fewer potential targets exist to be exploited.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
So, how do you enable it? DISM is one good day.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
DISM, or <a href="http://msdn.microsoft.com/en-us/library/jj980032(v=winembedded.81).aspx" target="_blank">Deployment Image Servicing Management</a> command, is part of Windows 7 and 8. It actually began life earlier, but has been fine-tuned with each new Windows release. Among it's many features, are options to enable and disable Windows features. The most-basic form of the command for this topic is:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
dism /OnLine /Enable-Feature /FeatureName:NetFx35 /All</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
However, you may want to tack on a few extra optional parameters (or "switches" as some prefer to say) to provide more control over how it behaves.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
/LimitAccess - this option tells DISM *not* to try to reach out to an internal WSUS server to find the source binarines, but instead to look somewhere locally.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
/Source - this option tells DISM that you are going to provide a specific path from which to load the source binaries. Actually, it should read "/Source:<path>" where "<path>" is something that actually contains the correct files, like "c:\temp\sxs" or "\\SERVER1\sharename\files\sxs", etc.</path></path></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
If you're not really familiar with how the "side-by-side" (i.e. "sxs") folder works, and what it means, be careful! If you are, then ignore the next sentence, but I know you'll read it anyway just to make sure I'm not incorrect and you can't wait to pounce all over me for screwing up. The "sxs" folder uses special file links to avoid duplicating a lot of redundant bits. This is somewhat like how a .ZIP or .7Z or .TAR file works, in that it tries to reduce the overall amount of disk space used for storing the data.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Anyhow, beyond that, the "sxs" folder contents MUST match the same Windows version and skew that you intend to use them on. So if you make a "sources\sxs" copy from a Windows 8.1 Professional disk or ISO image, and try to reference it for a Windows 8.1 Enterprise client, it's probably not going to work. In most cases, it will chug away until around 60-65% and then crash with the error message:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
"The source files could not be found."</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Bummer. If the folder path is wrong and there are no files at all, that's one thing, but it usually bombs out sooner than 60% of the way through.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<h2 style="clear: both; text-align: left;">
Option 2 - Imaging</h2>
<div class="separator" style="clear: both; text-align: left;">
Other options include bundling the feature (okay, "enabling" the feature) during the Windows installation process. This is fine for provisioning new computers, or reimaging, but not so ideal for updating computers which are already part of the production environment. You can however employ parts of MDT or SCCM to deploy to those computers, but that's technically not imaging then, is it?</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Even within just one option such as MDT 2013, you have several routes you could take, from using a Custom Command-Line task, to employing a script, to setting a Task Sequence Variable to identify the sources folder path, and then use the Add Roles and Features task to handle the feature. Who says the IT world is boring, huh?</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<h2 style="clear: both; text-align: left;">
Option 3 - Deployment Tools</h2>
<div class="separator" style="clear: both; text-align: left;">
This encompasses things like Packages or Applications within System Center Configuration Manager, as well as other tools like Altiris or what-have-you. In short, you create a named instruction set that performs the desired tasks, and then target that to a group of computers to execute locally. In SCCM, that could mean an Application with one or more Program entries, and a Deployment linked to a Collection. You get the idea. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
It's not rocket science and it's not difficult to do, IF you have the environment up and running already. The toughest part of these kinds of tools is standing them up. Once they're operational (if designed and installed correctly), the rest is a matter of "using" the features.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<h2 style="clear: both; text-align: left;">
Summary</h2>
<div class="separator" style="clear: both; text-align: left;">
I cover each one of these in far more detail within my book, and provide screen capture images of each step along the way. I hope you will consider reading it and thank you for taking the time to read this!</div>
skatterbrainzhttp://www.blogger.com/profile/01375101979702884965noreply@blogger.com0tag:blogger.com,1999:blog-7801766992264242251.post-32596990887756628042014-08-17T16:00:00.003-04:002014-08-17T21:55:44.995-04:00Random Thoughts: Evolutionary Obsolescence and OverlordsSometimes when I've had enough coffee and/or beer, I drift off into thinking some concept "ahead" is it might likely evolve. After reading a few articles about the arcane laws in the U.S. regarding personal use of solar energy, and others on 3D printing, it dawned on me that what we're seeing is the first inch of what will inevitably become a world in which we grow less dependent on the providings of others.<br />
<br />
3D printing, for example, will enable us (in time) to create many of the things we have to purchase today. Sure, we'll need to obtain the media from which the printer can generate objects. But that's just for now.<br />
<br />
The issue of solar energy for personal use, and the threat it poses to current energy companies like Dominion and Con-Ed sheds light on the concern they have that we (citizens) may not need their services in the future. They are understandably worried, and are therefore busy lobbying our government folks to slow things down until they can figure a way to put a rope around it all, and remain relevant, and more importantly: remain in control of things.<br />
<br />
But for now, we buy things made by others. Imported from other places. But someday, we will be able to make a lot of things ourselves, without leaving our homes. As that situation evolves over decades and centuries, imagine where that might lead. Imagine when we can truly make "anything" from some sort of device of our own control. The power balances around the planet of "haves" and "have-nots" will surely shift in other directions. In which directions we can't know at this point, but it will change for sure.<br />
<br />
And when we can generate our own power, make our own contraptions, and not have to barter and trade for most things, what then? What do humans do when they don't need other humans by necessity? We will obviously still remain connected for social and personal reasons, but how about the impact that could have on incidental connections, such as getting to know the grocery store clerk, the bartender, the hair cutter, or the school teacher? Even schools, and other places of <i>collective presence</i> may become obsolete, as we are increasingly able to get things like education at home.<br />
<br />
Maybe some day, we will have developed the means to literally organize molecules to create anything we desire. Alchemy realized. We are already playing around with moving molecules without touching them (sort of), and moving beyond status quo measures of speed and velocity (<a href="http://www.nasa.gov/centers/glenn/technology/warp/warpstat.html" target="_blank">link</a>). That means that it could be possible that even travel becomes advanced enough for us not to depend on airlines and passenger trains. Who knows?<br />
<br />
The more we evolve technologies, and the more they become increasingly affordable, the more scale this adds to the existing progressive curves of each. The pace is getting faster with each turn. What we once predicted to arrive in ten years, now arrives in five or six. As another decade passes, that window shrinks even more, since the supporting technologies for generating new technologies are also improving. It's like a fire that feeds itself by feeding itself even faster.<br />
<br />
Imagine a world where you won't *need* to leave your home to get food, water, or pay anyone else to get electricity, Internet connectivity (or whatever replaces the Internet by then), or to repair things that break around you? Will we let that evolve on its own? Or will we see that coming and collectively work to install guardrails into this evolution so that we remain in "need" of each other to some extent? Who knows.<br />
<br />
Right now, you can build your own aircraft, but you must obtain a license and authorization to fly it, with some restrictions and allowances based on who you are, where you are, where you want to fly it, and what kind of aircraft you build. Imagine the positive <i>and</i> negative implications if those restrictions and constraints were removed.<br />
<br />
Time for a break. Enjoy your weekend!<br />
<br />
Namaste<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-oflrGbVHp40/TJYGAafu0bI/AAAAAAAAH5w/5pp6wgk0Fn8/s1600/IMG_9273.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-oflrGbVHp40/TJYGAafu0bI/AAAAAAAAH5w/5pp6wgk0Fn8/s1600/IMG_9273.JPG" height="180" width="320" /></a></div>
<br />skatterbrainzhttp://www.blogger.com/profile/01375101979702884965noreply@blogger.com0tag:blogger.com,1999:blog-7801766992264242251.post-80991062557125570542014-08-17T13:03:00.002-04:002014-08-17T13:03:32.899-04:00Coming Soon: The AutoCAD 2015 Network Administrator's BibleIt's long overdue. I'm long overdue as well. It's been a long time since I've devoted myself to writing anything about AutoCAD or network deployments. I'm almost done with editing this book and it should be available for purchase on Amazon Kindle very soon. Remember that you do not need a Kindle device to read Kindle books. There are free Kindle reader apps for iOS, Android, Windows, Mac, and more.<br />
<br />
Here's a summary of topics included:<br />
<br />
<ul>
<li>Deploying with Scripts: Batch, VBScript, and PowerShell</li>
<li>Deploying with System Center Configuration Manager 2012</li>
<li>Deploying with MDT 2013</li>
<li>Using Task Sequences</li>
<li>Dealing with Requirements: .NET 3.5, using Global Conditions, etc.</li>
<li>ADNM</li>
<li>Deployment Shares</li>
<li>Network and Client Logs</li>
<li>Building a Virtual Test Environment with VMware Workstation</li>
<li>Stupid jokes. Dumb comments. Awkward silences.</li>
<li>And more!</li>
</ul>
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-pA4ZlK2i-5M/U_Df6MHaXJI/AAAAAAAAd5A/RrUFsdqiJxY/s1600/anab2015_cover2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-pA4ZlK2i-5M/U_Df6MHaXJI/AAAAAAAAd5A/RrUFsdqiJxY/s1600/anab2015_cover2.jpg" height="320" width="269" /></a></div>
<span id="goog_1061721174"></span><span id="goog_1061721175"></span><br /></div>
skatterbrainzhttp://www.blogger.com/profile/01375101979702884965noreply@blogger.com0tag:blogger.com,1999:blog-7801766992264242251.post-47712134411418786562014-08-15T15:40:00.001-04:002014-08-15T15:43:19.240-04:005 Creative Ways to Settle Office DisputesWe've all been in the situation where two people strongly disagree on which direction to take with regards to a business or technical strategy. One vendor or another. One process or another. One policy or another. It can become very emotional at times, and often leads to lost productivity and bad feelings that can linger on for days, months or even years. In many cases, the lingering emotional scarring can impact productivity and quality of services for everyone involved. Well, there are some semi-proven ways to deal with these situations in professional, productive and positive ways. And who doesn't like a gosh-darn 3-P solution to a problem? Huh? Golly.<br />
<br />
Here's a short list of five (5) suggestions that might help improve the situation and make everyone feel better enough to give each other a big sloppy kiss, without any hidden sharp objects.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-t_SCVtFzeJo/TyjFAe0O7iI/AAAAAAAAJjg/zKdoOqpA5bQ/s1600/dev_to_mba.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-t_SCVtFzeJo/TyjFAe0O7iI/AAAAAAAAJjg/zKdoOqpA5bQ/s1600/dev_to_mba.JPG" height="179" width="320" /></a></div>
<br />
<br />
<b>Tip 1- Jello Wrestling with a New Twist</b><br />
<br />
This one works great regardless of the gender bias that may exist in the room. Everyone has to consume 1 gallon of Jello powder mix, then drink a 1 liter bottle of soda, and then get in a ring and beat the living crap out of each other. First one to puke all over their opponent, wins.<br />
<br />
<b>Tip 2 - Paperwork Shuffle</b><br />
<br />
Everyone in office environments likes to brag about how they suffer with the most paperwork, email, IM calls, voicemails, and so on. Perfect examples of "first world problems" if ever there were any. Imagine trying to elicit tears from a starving mother and her starving group of babies, too famished to swat away the incessant swarm of flies and mosquitoes. They will pity you for sure. So how about putting your money where your mouth is, and challenge the opponent to produce enough evidence to back it up? The one who shows up with the most weight (use an approved scale obviously), wins.<br />
<br />
<b>Tip 3 - Marching Band</b><br />
<br />
When the other person won't shut up, start humming the tune to something familiar like "Glory Glory Hallelujah". Start quiet at first, then gradually bring up the volume until you can barely catch your breath in between gasps to belt out that next glorius bar. Bonus points can be earned by pretending to march in formation, by yourself of course, around the conference room.<br />
<br />
<b>Tip 4 - Zen</b><br />
<br />
When the other person continues to argue their point, refusing to hear your side at all, just stare at them without blinking as long as you can possibly manage. Never, and I repeat NEVER, blink or look at anything else in the room besides their eyes. They are like source of energy. Feed off of them. If you can stare at them long enough, one of two things are most likely to happen next: (1) they will call security for help, or (2) they will scream like a wounded baby and run down the hall as if zombies are trying to eat them. Either way, the original problem should now become moot.<br />
<br />
<b>Tip 5 - Levity</b><br />
<br />
When violence fails to solve a problem, humor often stands a small chance of working. That's what most of the infamous world fascist dictators would say, or so I've heard. Try this instead of a gun or knife: When the opponent begins to raise their voice and shake their head in disagreement over some aspect of the topic at hand, start stripping off clothing until you're only in your underwear. Not all at once, but remove one piece of clothing after each time they speak a phrase in disagreement. When they finally realize what's happening, look at them and wait. If they remain silent, offer this, "if you stop now, I win. If you continue on, I will have to add whipped cream to this and keep moving."<br />
<br />
If you try any of these out, be sure to post a comment below to let us all know how it worked out? We'd love to hear your thoughts on this. Have a swell weekend!skatterbrainzhttp://www.blogger.com/profile/01375101979702884965noreply@blogger.com0tag:blogger.com,1999:blog-7801766992264242251.post-80230033403977187632014-08-08T10:10:00.000-04:002014-08-08T10:10:10.091-04:00Identify IE Version Installs using SCCM, SQL, Chewing Gum and CoffeeYou could hunt down the Add or Remove Programs list, or tunnel your way through v_GS_INSTALLED_SOFTWARE_CATEGORIZED, or walk around with a clipboard and a baseball bat, or you could do it the easy way: a SQL query against v_GS_SoftwareFile. Be sure to change the database name tag to whatever your site code is.<br />
<br />
<pre><span style="color: red;">[begin code]</span></pre>
<pre>
</pre>
<pre><span style="color: blue;">USE your_site_database_name<your database="" name="" site=""></your></span></pre>
<pre><span style="color: blue;">
</span></pre>
<pre></pre>
<pre><span style="color: blue;">GO</span></pre>
<pre><span style="color: blue;">
</span></pre>
<pre></pre>
<pre><span style="color: blue;">SELECT DISTINCT
a.netbios_name0 COMPUTER_NAME,
CASE
WHEN PATINDEX('%.%',b.fileversion) = 3 THEN </span></pre>
<pre><span style="color: blue;"> SUBSTRING(b.fileversion,1,2)
WHEN PATINDEX('%.%',b.fileversion) = 2 THEN </span></pre>
<pre><span style="color: blue;"> SUBSTRING(b.fileversion,1,1)
ELSE SUBSTRING(b.fileversion,1,1)
END AS IEX
FROM </span></pre>
<pre><span style="color: blue;"> dbo.v_R_System a LEFT OUTER JOIN </span></pre>
<pre><span style="color: blue;"> dbo.v_GS_SoftwareFile b ON a.ResourceID=b.ResourceID
WHERE </span></pre>
<pre><span style="color: blue;"> filename LIKE 'iexplore.exe' AND Active0=1
AND </span></pre>
<pre><span style="color: blue;"> LTRIM(fileversion) <> ''</span></pre>
<pre><span style="color: blue;">ORDER BY COMPUTER_NAME</span></pre>
<div>
<br /></div>
<pre><span style="color: red;">[end code]</span>
</pre>
<br />
Namaste!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-x9thwKmoTtc/SWQLGAxFlAI/AAAAAAAAaMg/9X_2RDR7T5Q/s1600/rex.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-x9thwKmoTtc/SWQLGAxFlAI/AAAAAAAAaMg/9X_2RDR7T5Q/s1600/rex.gif" /></a></div>
<br />skatterbrainzhttp://www.blogger.com/profile/01375101979702884965noreply@blogger.com0tag:blogger.com,1999:blog-7801766992264242251.post-50115138057636727092014-08-07T11:36:00.002-04:002014-08-07T11:36:47.998-04:00How to Tell Real IT Pros from the FakesThis post is aimed at folks that don't work in an office with an IT staff. Maybe you're at home (working or otherwise) and need some help with your computer, printer, smartphone, Internet or wireless network, and you are concerned about how to find someone you can really trust to help. It's a big, scary world out there, and it's getting tougher to find people you can trust. Fear not! Here are some basic tips for separating the real from the fakes.<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.angelfire.com/apes2/gaba/tired.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.angelfire.com/apes2/gaba/tired.jpg" /></a></div>
<br />
<br />
<b>Tip 1 - Find Them First</b><br />
<br />
Real IT pros don't want to help. That's right. Younger, over-eager, inexperienced IT folks are usually quick to take on new challenges. Older, seasoned pros however are over that crap. They've been there, done that, got the t-shirt and the antibiotics too. They're tired of the crap they deal with all day, every day. Would a carpenter want to come home from work to build another cabinet at home every day? I rest my case. So, if anyone jumps up to offer to help you with computer issues without hesitation: don't trust them. A real IT pro will only be persuaded by compensation offerings (see tip 3).<br />
<br />
<b>Tip 2 - Attacking the Problem</b><br />
<br />
This one is tricky. If you already have something and it just needs fixing, that's one thing. If you don't have it yet, and are looking for help deciding what to buy, that's another.<br />
<br />
If you have issues with an existing contraption, the person helping should ask "<i>when did it start happening</i>?", and then continue from there. If you're looking for help buying something new, they should ask "<i>what is it that you are trying to do, exactly</i>?"<br />
<br />
<b>Tip 3 - Compensation</b><br />
<br />
If they insist on money (cash), counteroffer with pizza, beer or power tools. Real IT pros will work for almost anything they can use to fix their own non-IT problems back home. Food is usually very high on their list. If they don't seem impressed with an offer of good food, they're fake.<br />
<br />
<b>Tip 4 - Self-Esteem</b><br />
<br />
If you ask "<i>how well do you know networking</i>?" or "<i>are you really good with servers</i>?", and the other person answers with "<i>I'm an expert at</i>..." or "<i>absolutely</i>!", walk away fast! I real IT pro will never admit to having knowledge about anything unless it's during a job interview. Any other time, they will deny any and all knowledge about anything containing the letters "i" and "t" in close proximity.<br />
<br />
There you have it. Four easy tips you can remember that will help you identify, and bribe a good IT professional to help you solve your IT problems.<br />
<br />
Good luck!skatterbrainzhttp://www.blogger.com/profile/01375101979702884965noreply@blogger.com0tag:blogger.com,1999:blog-7801766992264242251.post-25573554271234323772014-07-20T23:34:00.001-04:002014-07-20T23:45:47.702-04:005 Stupid IT Questions - Part 2 - The Electric BoogalooIt's that time again. Enjoy...<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-oh3bEQa5nAU/TslPMo_z9-I/AAAAAAAAJBE/fYQj72_9-Co/s1600/crazy_crash_30.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-oh3bEQa5nAU/TslPMo_z9-I/AAAAAAAAJBE/fYQj72_9-Co/s1600/crazy_crash_30.jpg" height="180" width="320" /></a></div>
<br />
<b>Question 1 </b>- "<span style="color: blue;">I have about 50 to 60 desktops and laptops, and about 10 servers in my AD environment at work. I don't have a patch management product yet, I currently patch my Windows machines manually or using scripts. Is there a good reason *not* to use WSUS?</span>"<br />
<br />
Answer: First off, you need to start drinking. Your doctor would agree with me. I think. Well, anyhow, if your environment is built on versions of Windows which can be supported by WSUS, then the answer is NO: there isn't a "good" reason to *not* use a free product that at least gets you closer to the goal line. How's that for a double-double-double negative statement? I should've been a politician.<br />
<br />
Are there better products? Sure. For free? Maybe. Is WSUS "good enough" for most shops like yours? Probably.<br />
<br />
<b>Question 2</b> - "<span style="color: blue;">My significant-other spends a lot of time reading, studying, and playing in a lab to stay current with his/her career. Is there anything I can do for him/her?</span>"<br />
<br />
Answer: Yes! Feed them. Scratch their back. Rub their feet. Make them laugh. And most important, feed them some more. They need to be sure to return the favor though. My wife is amazing, but I have to remember to rub her feet too (she deserves it).<br />
<br />
<b>Question 3</b> - "<span style="color: blue;">I have scheduled tasks running on computers which run under the local SYSTEM account, but when they try to execute commands or access resources from remote UNC shares, they are denied access. What am I doing wrong?</span>"<br />
<br />
Answer: Two things... the first problem is that you're not sending me cash to help me pay my bills. Just kidding. Second, you didn't grant sufficient permissions to the share and/or the underlying NTFS folder path. Remember, the local SYSTEM account runs as a proxy for the computer itself (when operating in a domain context). So, when it knocks on the door of a remote shared resource, that resource sees the domain computer account in the peep hole. (you thought I was going to say glory hole, didn't you? sick puppy you are). <br />
<br />
For example, if one computer is "DT1234" and is running a task that requests a connection to server "FS0005", then that server will see "DT1234$" (they append the dollar sign to indicate you paid a lot of money for that license. ha ha . kidding again). Actually, if the domain is "constoso.com", then the server sees user "CONTOSO\DT1234$" (NetBIOS name + computer sAMAccountName) knocking at the door.<br />
<br />
By default, domain-joined computer accounts are <u>not</u> members of the AD domain "everyone" or "domain users" security groups. They're not even members of any group (by default) besides "Domain Computers". Therefore, you need to grant rights on resources to that domain security group, and your domain-joined computers should be able to knock at the door and get some free food.<br />
<br />
TIP: a simple way to test local SYSTEM access to remote shares, is to use the "psexec.exe" utility (Microsoft/Sysinternals) with the "/s" option to launch CMD.exe. Then within the command console, running in the local SYSTEM context, try to connect or query remote resources to see what happens.<br />
<br />
<b>Question 4</b> - "<span style="color: blue;">I'm building a custom app/script that helps manage things within System Center Configuration Manager 2012 R2. It needs to read and write information as well, but it looks like I can do that by ADO and SQL commands, or by WMI and WBEM commands. Which should I use?"</span><br />
<br />
Answer: (long, long inhale.... get ready, here it comes...) Okay. Both. No, wait. Neither. No, wait, that's wrong. Both. Sort of. Hold on. This may seem a little complicated. And even if it wasn't complicated, I'm a professional, and complicating things is what I get paid to do. That's not true either. Just a minute. Okay. So drink up, strap in, or strap on, or buckle up, whatever...<br />
<br />
You know how they say "<i>never say never</i>"? Well, NEVER, yes, that's right, I just said "NEVER", ever write to a System Center Configuration Manager database directly. All "write" (aka update/insert/delete) operations should be done through WMI/WBEM statements. I'll get to the "why" in a minute. <br />
<br />
First things first: While you absolutely can request information from the database using WMI/WBEM queries, I recommend that you do your read operations directly from the SQL Server database, rather than via WMI/WBEM. The reason is that they're going to perform faster than WMI/WBEM requests (assuming you know how to form proper T-SQL statements). More importantly: WMI/WBEM query statements are way more limited than T-SQL as far as what kinds of operations you can perform. For example COALESCE, TRY_CONVERT and CASE statements, to name a few. And I won't even get into things like DATEDIFF, CAST or SUBSTRING.<br />
<br />
Next, the reason you shouldn't push anything into the database directly is that SCCM relies on a delicate, complicated and, let's be honest, confusing-as-hell sequential process for handling change requests. That is, updates, additions, deletions, and so on. Each request is queued, prioritized, processed and logged. The "processed" part involves even more sequential handling with triggers and more logging, and if you go around back, break open the window and climb in the back room, the alarm will go off and the SWAT team will repel down from helicopters and kill you. Okay, not really. But it will very likely break your SCCM site entirely.<br />
<br />
When you submit requests properly using WMI/WBEM requests, they are like well-trained school kids lining up to go to the cafeteria. They get their lunches, sit down, eat and smile the whole time. When you shove them in directly via ADO/ADO.NET, shit will just break. Trust me. If you don't trust me, go ahead and setup a lab environment and kick those tires. When the air blows out, don't come crying to me.<br />
<br />
Finally, or thirdly? - if you plan on making the same types of requests for information (read operations, that is) and they involve SQL "JOIN" statements, I recommend you create some VIEWs and apply indexing. SQL will outperform application processing like Stephen Colbert having a debate with your dead cat. If you've been strapping together messy "SELECT blah FROM whatever LEFT OUTER JOIN something ON this = that..." and so on, in your script code, STOP! Do that within the database (or create another database on the same server to pull data for abstraction and aggregation work, etc.). So, to summarize all that blabber...<br />
<br />
READ == Direct from the Database (SQL + ADO or ADO.NET)<br />
WRITE == Through the WMI/WBEM interface<br />
<br />
If you're thinking which is "faster": COM scripting or .NET scripting (e.g. VBScript vs. PowerShell), it depends on what you're doing, but for most things it's break-even. The biggest factor will be where the bulk of logic handling and processing is being done: in the database/WMI request itself, or on the information obtained therefrom. I can already sense the .NET nerds flipping out right now. Spitting coffee through their nostrils. Exclaiming "WTF?!!", knocking over their stacks of stale donuts and breaking pencils. Oh well.<br />
<br />
<b>Question 5 </b>- "<span style="color: blue;">My company is looking for a good service request ticketing system product. What products would you recommend?</span>"<br />
<br />
Answer: None of them. Or all of them. The problem is that every organization that's existed for more than a few years, has evolved their own internal processes for handling requests. Staffing varies. Methods vary. Resources vary. The retail products you will try on will almost certainly be like a "one-size fits-all" suit. Lot's of Velcro straps and adjuster things to help you pull in the tight spots to fit better. But it's going to feel like that too.<br />
<br />
Most off-the-shelf products will expect you to make some concessions with regards to "how" you do things. That's not always bad, though. Read up on ITIL, and even if you hate ITIL, it's good to have something to base your processes upon. That or a suitcase full of drugs and a fast getaway car. I have no idea what that's about though.<br />
<br />
If your environment has implemented ITIL with gold medal effort, you may do really well with almost any off-the-shelf product. However, I haven't seen an ITIL gold-medal shop in my lifetime. I've heard stories of them, but I've never seen one. Kind of like unicorns and leprechauns.<br />
<br />
I see two options: Build your own with whatever tools you have, or buy one and suck it up. Just be warned: The bigger your organization (staff and customer numbers), the more work it's going to be, for either direction you choose. Be cautious of vendors offering "customization" services too. That's their bread-and-butter. Am I a bit pessimistic? Yes. It's a lot like shopping for document management solutions, or vacation homes. I wish I could afford a vacation home. Heck, I wish I could afford to take a vacation.<br />
<br />
<br />
Th-th-that's all for now, folks. Have a good week!skatterbrainzhttp://www.blogger.com/profile/01375101979702884965noreply@blogger.com0tag:blogger.com,1999:blog-7801766992264242251.post-51916702956623523682014-07-10T21:37:00.003-04:002014-07-10T21:37:41.413-04:00It's Time for 5 Stupid IT QuestionsYou got IT questions? I got stupid answers. Pull up a chair, sit down, and destroy your precious little mind reading my stupid ramblings for a bit. What else do you have to do? Silly Earthling.<br />
<br />
(Note: This is going to be an ongoing series, I think. It depends on feedback from folks like you)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-U8xKC4ZEIOk/SZSqXiDAgmI/AAAAAAAADDs/S2xDTazuv2E/s1600/marvins_head.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-U8xKC4ZEIOk/SZSqXiDAgmI/AAAAAAAADDs/S2xDTazuv2E/s1600/marvins_head.jpg" /></a></div>
<br />
<br />
<b>Question 1</b> - <span style="color: blue;">"In VMware Workstation and VMware Player, it has an option to preallocate the virtual hard drives. What does this do and why should I consider it?"</span><br />
<br />
<b>Answer</b>: It carves out physical storage space (on whatever drive/disk/volume you have it pointed at) to store the disk .VMDK file before using it the first time. Like most things in life, there's a trade-off...<br />
<br />
On the good side, preallocating space avoids the need to incrementally allocate more space as needed. The incremental growth usually happens while the VM guest is running, causing some delays and pauses at times.<br />
<br />
On the bad side, preallocating space takes up designated storage space which may not be fully-used on the inside (guest VM referencing). For example, if you specify a 60 GB disk, it will grab 60 (plus a little chump-change space for overhead) right away. In the end, you may only end up filling 40 GB within the guest machine, leaving 20 (or thereabouts) unused but still occupied on the physical disk.<br />
<br />
If space isn't a concern, preallocate it to squeeze a little more performance from your virtual toyland.<br />
<br />
<b>Question 2 </b>- <span style="color: blue;">"If I want to roll out a new Group Policy ADMX template during production hours, what negative impact would that have?"</span><br />
<br />
<b>Answer</b>: "Would" or "Could"? The answer depends on several factors. But starting at step 1: deploying an ADMX template into an AD environment involves updating the SYSVOL on the first domain controller. From there it replicates (because domain controllers like to replicate, as nasty as that sounds). <br />
<br />
The factors that come into play after step 1 are like a Rubik's cube. Site link configurations, replication schedules, the size of the ADMX files, the WAN links, the network configuration, the KCC mess in the background, the amount of drugs your engineers consume, the prevailing winds, the high tide, the... whatever. Hopefully you get the idea. I would recommend that (after you've tested them in a separate environment of course) that you deploy them during off-peak hours. If that isn't possible, blame it on the last person to have quit.<br />
<br />
<b>Question 3</b> - <span style="color: blue;">"Will shifting my SCCM environment over to a user-demand, Application Catalog scheme fix all my problems with overseeing software deployments?"</span><br />
<br />
<b>Answer</b>: It depends. In general, the answer is "no", it won't fix "all" of those "problems". Can it lessen your workload? At best: usually. At worst: it will replace one set of problems with another. <br />
<br />
Will it eliminate some problems on the whole? Sometimes. <br />
<br />
It depends on how diverse your applications are and how diverse the target platforms are in your SCCM site. If you support 4,000 products, but they are well-defined in terms of assigning one product+version for each business role, then you will be better off. If you have a lot of alternatives for the same role/purpose, start drinking and get your Liver in good shape.<br />
<br />The surprise "gotchas" I've seen, or heard about, with handing over the role of installing applications to end users via a catalog shopping-cart concept, have been basically from two general areas. Each of which breaks down into two more areas:<br />
<br />
1. Setting up the catalog<br />
2. Cleaning up messes<br />
<br />
The first area (setting up the catalog), involves not only building the catalog, but assigning roles and permissions, but that's the easy part. Then comes the spaghetti-like enigma of validating product licensing and usage terms, as well as planning out the potential conflicts. Those are the nasty things like "Product A and Product B cannot exist on the same client or they break things." or "Product A only works with .NET 4.0 while Product B only works with .NET 4.5" and so on.<br />
<br />
The second area (cleaning up messes) involves hand-holding users that mistakenly install things and run into problems with them. Even if you teach them how to remove those mistakes, there are going to be the breaks that require rolling up your sleeves and taking time away from other work.<br />
<br />
The secondary issues are <i>delegation reliability</i>, and <i>platform resiliency</i>. Big words. I like big words. <br />
<br />
The former (delegation) involves how well your delegated staff hold up with handling rights and assignments, as well as tech support issues that arise. The latter (resiliency) involves how mature your environment is with regards to platform standards and methods for repairing breaks in the assembly line. How many versions of Windows you support, how many device types, models, vendors, component versions (JRE, .NET). Good stuff for beer talk.<br />
<br />
<b>Question 4</b> - <span style="color: blue;">"Is it more important to have a college degree or a certification when entering the IT field?"</span><br />
<br />
<b>Answer</b>: My kids' friends and their friends hit me with this question a lot. Usually after some introductory phrase like "<i>Excuse me, old man? Can I axe yuze a question about getting a computer job?</i>". <br />
<br />
From an entry perspective (first-time job seeker), it depends on what kind of IT job you're aiming for. If you're looking for a fairly low to intermediate job, such as anything from Tier1/desktop support, to even Systems Admin or Systems Engineer, it helps to have a degree, but it really helps to have a lot of (current/recent/relevant) certifications.<br />
<br />
Many entry level IT jobs only require A+, Network+ and Security+ certifications, unless you start getting into VMware or Cisco type stuff (and so on). Even then, having a Microsoft MCSA/MCSE will help a lot.<br />
<br />
If the job your aiming for is "senior research scientist" or "database architect", well, start filling out those college enrollment applications. It won't hurt to have your CCNA or MCSE/MCwhatever, but most high-level, expert type fields within IT expect more educational background. And don't forget those Analysts and Project Managers, who may need a mix of schooling and certs like PMP, ITIL, etc. Just poke around the job postings online and you'll see what I mean. (<i>Not that I've been looking of course, cough-cough. That's just what I've been told</i>).<br />
<br />
<b>Question 5 </b>-<span style="color: blue;"> "What is the toughest part of getting technology to work well?"</span><br />
<br /><b>Answer</b>: People. It's just human nature to try to pound nails using a wrench.<br />
<br />
(Thank you for reading! Stay tuned for more IT stupidity coming soon...)skatterbrainzhttp://www.blogger.com/profile/01375101979702884965noreply@blogger.com0tag:blogger.com,1999:blog-7801766992264242251.post-34915800905698433962014-06-26T12:34:00.007-04:002014-06-26T12:39:23.294-04:00Random SCCM Database ThoughtsI ran these on a SCCM 2007 environment, but most of them should work in 2012 R2 as well. <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-FiN0Ou1S0JM/TI0OF7vNkLI/AAAAAAAAHyo/YPsiTgXcrJo/s1600/square_peg_in_round_hole_3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-FiN0Ou1S0JM/TI0OF7vNkLI/AAAAAAAAHyo/YPsiTgXcrJo/s1600/square_peg_in_round_hole_3.jpg" /></a></div>
<br />
Crack open your SSMS console, swallow your entire Espresso, crack your knuckles, inhale deep and slow, and let it out deep and slow. Then scream something stupid and look serious. Now, let's get started...<br />
<br />
<b>List the computers in a particular AD Site, and identify their makes, models, and BIOS serial numbers...</b><br />
<br />
<ul>
<li>Join <span style="color: blue;">v_R_System</span> with <span style="color: blue;">v_GS_Computer_System</span> and <span style="color: blue;">v_GS_System_Enclosure</span> on <span style="color: purple;">ResourceID </span>(using LEFT joins to avoid dropping those which don't report inventory yet). Then group by the <span style="color: #38761d;">AD_Site_Name0</span><span style="color: purple;"> </span>field.</li>
</ul>
<ul>
<li>Step 1, filter on the following view-joins to see the general scope of data...</li>
</ul>
<br />
<span style="color: #274e13; font-family: Courier New, Courier, monospace;">SELECT DISTINCT</span><br />
<span style="color: #274e13; font-family: Courier New, Courier, monospace;"> dbo.v_R_System.ResourceID, dbo.v_R_System.AD_Site_Name0, </span><br />
<span style="color: #274e13; font-family: Courier New, Courier, monospace;"> dbo.v_R_System.Name0, dbo.v_GS_COMPUTER_SYSTEM.Manufacturer0, </span><br />
<span style="color: #274e13; font-family: Courier New, Courier, monospace;"> dbo.v_GS_COMPUTER_SYSTEM.Model0, </span><br />
<span style="color: #274e13; font-family: Courier New, Courier, monospace;"> dbo.v_GS_COMPUTER_SYSTEM.SystemType0, </span><br />
<span style="color: #274e13; font-family: Courier New, Courier, monospace;"> dbo.v_GS_SYSTEM_ENCLOSURE.SerialNumber0<br />FROM dbo.v_R_System LEFT OUTER JOIN<br /> dbo.v_GS_COMPUTER_SYSTEM ON dbo.v_R_System.ResourceID =</span><br />
<span style="color: #274e13; font-family: Courier New, Courier, monospace;"> dbo.v_GS_COMPUTER_SYSTEM.ResourceID LEFT OUTER JOIN</span><br />
<span style="color: #274e13; font-family: Courier New, Courier, monospace;"> dbo.v_GS_SYSTEM_ENCLOSURE ON dbo.v_R_System.ResourceID =</span><br />
<span style="color: #274e13; font-family: Courier New, Courier, monospace;"> dbo.v_GS_SYSTEM_ENCLOSURE.ResourceID</span><br />
<br />
<ul>
<li>Step 2, hone it down...</li>
</ul>
<br />
<div>
<ul style="-webkit-text-stroke-width: 0px; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;"></ul>
<div style="-webkit-text-stroke-width: 0px; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; margin: 0px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
</div>
<ul></ul>
</div>
<span style="color: #274e13; font-family: 'Courier New', Courier, monospace;">SELECT DISTINCT</span><br />
<div style="-webkit-text-stroke-width: 0px; font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; margin: 0px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #274e13;"> dbo.v_R_System.ResourceID, dbo.v_R_System.AD_Site_Name0, </span></span></div>
<div style="-webkit-text-stroke-width: 0px; font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; margin: 0px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #274e13;"> dbo.v_R_System.Name0, dbo.v_GS_COMPUTER_SYSTEM.Manufacturer0, </span></span></div>
<div style="-webkit-text-stroke-width: 0px; font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; margin: 0px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #274e13;"> dbo.v_GS_COMPUTER_SYSTEM.Model0, </span></span></div>
<div style="-webkit-text-stroke-width: 0px; font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; margin: 0px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #274e13;"> dbo.v_GS_COMPUTER_SYSTEM.SystemType0, </span></span></div>
<div style="-webkit-text-stroke-width: 0px; font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; margin: 0px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #274e13;"> dbo.v_GS_SYSTEM_ENCLOSURE.SerialNumber0</span></span></div>
<div style="-webkit-text-stroke-width: 0px; font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; margin: 0px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<span style="color: #274e13; font-family: Courier New, Courier, monospace;">FROM dbo.v_R_System LEFT OUTER JOIN</span></div>
<div style="-webkit-text-stroke-width: 0px; font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; margin: 0px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<span style="color: #274e13; font-family: Courier New, Courier, monospace;"> dbo.v_GS_COMPUTER_SYSTEM ON dbo.v_R_System.ResourceID =</span></div>
<div style="-webkit-text-stroke-width: 0px; font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; margin: 0px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<span style="color: #274e13; font-family: Courier New, Courier, monospace;"> dbo.v_GS_COMPUTER_SYSTEM.ResourceID LEFT OUTER JOIN<br /> dbo.v_GS_SYSTEM_ENCLOSURE ON dbo.v_R_System.ResourceID =</span></div>
<div style="-webkit-text-stroke-width: 0px; font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; margin: 0px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<span style="color: #274e13; font-family: Courier New, Courier, monospace;"> dbo.v_GS_SYSTEM_ENCLOSURE.ResourceID</span></div>
<div style="-webkit-text-stroke-width: 0px; font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; margin: 0px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<span style="color: #274e13; font-family: Courier New, Courier, monospace;">WHERE dbo.v_R_System.AD_Site_Name0 = 'DOUBLE_HEADED_DONG_FACTORY'</span></div>
<span style="color: #274e13;"><br /></span>
<b>Find all clients which are assigned to a particular IPv4 gateway...</b><br />
<ul>
<li>Step 1, just for fun, filter and browse the results of round 1, using <span style="color: blue;">v_Network_Data_Serialized</span></li>
</ul>
<span style="color: #274e13; font-family: Courier New, Courier, monospace;">SELECT DISTINCT </span><br />
<span style="color: #274e13; font-family: Courier New, Courier, monospace;"> DNSHostName0, ResourceID, IPSubnet0, MACAddress0, </span><br />
<span style="color: #274e13; font-family: Courier New, Courier, monospace;"> IPAddress0, DHCPEnabled0, DHCPServer0, DNSDomain0, DefaultIPGateway0<br />FROM dbo.v_Network_DATA_Serialized<br />WHERE (IPSubnet0 IS NOT NULL) <br /> AND (DHCPEnabled0 = 1) <br /> AND (IPAddress0 NOT LIKE 'f%')</span><br />
<ul>
<li>Step 2, go in for the kill. Find all that are using gateway 192.168.2.11...</li>
</ul>
<div>
<span style="color: #274e13;"><span style="font-family: 'Courier New', Courier, monospace;">SELECT DISTINCT </span></span></div>
<div>
<span style="color: #274e13;"><span style="font-family: 'Courier New', Courier, monospace;"> DNSHostName0, ResourceID, IPSubnet0, MACAddress0, </span></span></div>
<div>
<span style="color: #274e13;"><span style="font-family: 'Courier New', Courier, monospace;"> IPAddress0, DHCPEnabled0, DHCPServer0, DNSDomain0, </span></span></div>
<div>
<span style="color: #274e13;"><span style="font-family: 'Courier New', Courier, monospace;"> DefaultIPGateway0</span><br style="font-family: 'Courier New', Courier, monospace;" /><span style="font-family: 'Courier New', Courier, monospace;">FROM dbo.v_Network_DATA_Serialized</span><br style="font-family: 'Courier New', Courier, monospace;" /><span style="font-family: 'Courier New', Courier, monospace;">WHERE </span></span><span style="color: #274e13; font-family: 'Courier New', Courier, monospace;">(IPSubnet0 IS NOT NULL) </span></div>
<div>
<span style="color: #274e13;"><span style="font-family: 'Courier New', Courier, monospace;"> AND (DHCPEnabled0 = 1) </span></span></div>
<div>
<span style="color: #274e13;"><span style="font-family: 'Courier New', Courier, monospace;"> AND (DefaultIPDGateway0='192.168.2.11')</span></span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #274e13;">ORDER BY DNSHostName0</span></span></div>
<div>
<br /></div>
<br />
<b>List the unique AD Site Names for all computers in a given Collection...</b><br />
<ul>
<li>Join <span style="color: blue;">v_R_System </span>with a sub-query on the desired Collection "ABC12345".</li>
</ul>
<span style="color: #274e13; font-family: Courier New, Courier, monospace;">SELECT DISTINCT AD_Site_Name0 dbo.</span><span style="color: #274e13; font-family: 'Courier New', Courier, monospace;">v_R_System</span><br />
<span style="color: #274e13; font-family: Courier New, Courier, monospace;">WHERE dbo.v_R_System.ResourceID IN</span><br />
<span style="color: #274e13; font-family: Courier New, Courier, monospace;"> (SELECT ResourceID FROM dbo.v_CM_RES_COLL_ABC12345)</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"><br /></span>
<b>List all of the Distribution Point Servers in site "ABC"...</b><br />
<ul>
<li>Filter on View named <span style="color: blue;">v_SystemResourceList</span>...</li>
</ul>
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #274e13;">SELECT SiteCode,ServerName</span></span><br />
<span style="color: #274e13; font-family: Courier New, Courier, monospace;">FROM dbo.v_SystemResourceList<br />WHERE SiteCode='ABC' AND RoleName='SMS Distribution Point'</span><br />
<span style="color: #274e13; font-family: Courier New, Courier, monospace;">ORDER BY ServerName</span><br />
<div>
<br /></div>
<div>
<b>List distinct Site Server Role type/names in the database, along with counts of servers for each role </b>(keep in mind that servers can provide multiple roles, so don't sum the totals and think that's an accurate count of total site servers)</div>
<div>
<ul>
<li>Filter on View named <span style="color: blue;">v_SystemResourceList</span>...</li>
</ul>
<div>
<span style="color: #274e13; font-family: Courier New, Courier, monospace;">SELECT DISTINCT RoleName, COUNT(*) AS ServerCount<br />FROM dbo.v_SystemResourceList<br />GROUP BY RoleName</span><br />
<span style="color: #274e13; font-family: Courier New, Courier, monospace;">ORDER BY RoleName</span></div>
</div>
<div>
<span style="color: #274e13;"><br /></span></div>
<b>List User Account status values and counts for each.</b><br />
<ul>
<li>Start with a basic SQL query to identify the unique values for column <span style="color: #274e13;">User_Account_Control0</span> from view named <span style="color: blue;">v_R_User</span></li>
</ul>
<span style="color: #274e13; font-family: 'Courier New', Courier, monospace;">SELECT DISTINCT User_Account_Control0, COUNT(*) AS UserCount</span><br />
<span style="color: #274e13; font-family: Courier New, Courier, monospace;">FROM dbo.v_R_User<br />GROUP BY User_Account_Control0</span><br />
<div>
<ul>
<li>Then add a dash of SQL "CASE" statement with some Oregano and Basil (for other values to match up, check out Rajnish's blog post <a href="http://rajnishbhatia19.blogspot.com/2008/11/active-directory-useraccountcontrol.html" target="_blank">here</a>)...</li>
</ul>
<div>
<div>
<span style="color: #274e13; font-family: Courier New, Courier, monospace;">SELECT DISTINCT </span></div>
<div>
<span style="color: #274e13; font-family: Courier New, Courier, monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>User_Account_Control0, </span></div>
<div>
<span style="color: #274e13; font-family: Courier New, Courier, monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>COUNT(*) AS UserCount, </span></div>
<div>
<span style="color: #274e13; font-family: Courier New, Courier, monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>CASE User_Account_Control0 </span></div>
<div>
<span style="color: #274e13; font-family: Courier New, Courier, monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>WHEN 512 THEN 'Enabled' </span></div>
<div>
<span style="color: #274e13; font-family: Courier New, Courier, monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>WHEN 514 THEN 'Disabled' </span></div>
<div>
<span style="color: #274e13; font-family: Courier New, Courier, monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>WHEN 544 THEN 'Enabled Must Change Password' </span></div>
<div>
<span style="color: #274e13; font-family: Courier New, Courier, monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>WHEN 66048 THEN 'Enabled Password Never Expires' </span></div>
<div>
<span style="color: #274e13; font-family: Courier New, Courier, monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>ELSE 'You can code the others...' </span></div>
<div>
<span style="color: #274e13; font-family: Courier New, Courier, monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>END AS UAC_Name </span></div>
<div>
<span style="color: #274e13; font-family: Courier New, Courier, monospace;">FROM dbo.v_R_User </span></div>
<div>
<span style="color: #274e13; font-family: Courier New, Courier, monospace;">GROUP BY U</span><span style="color: #274e13; font-family: 'Courier New', Courier, monospace;">ser_Account_Control0</span></div>
</div>
</div>
<div>
<br /></div>
<b>List computers a particular AD user has logged onto within the past 30 days...</b><br />
<br />
<ul>
<li>Find logins for user "doofus" on domain "contoso". Join <span style="color: blue;">v_R_System</span> with <span style="color: blue;">v_GS_SYSTEM_CONSOLE_USER</span> on <span style="color: purple;">ResourceID</span> and filter on the <span style="color: purple;">SystemConsoleUser0</span> column. Then add a DateDiff() filter to restrict on logons within the last 30 days...</li>
</ul>
<br />
<span style="color: #274e13; font-family: Courier New, Courier, monospace;">SELECT </span><br />
<span style="color: #274e13; font-family: Courier New, Courier, monospace;"> dbo.v_R_System.Name0 AS ComputerName, </span><br />
<span style="color: #274e13; font-family: Courier New, Courier, monospace;"> dbo.v_GS_SYSTEM_CONSOLE_USER.ResourceID,</span><br />
<span style="color: #274e13; font-family: Courier New, Courier, monospace;"> dbo.v_GS_SYSTEM_CONSOLE_USER.LastConsoleUse0 AS LastLogon,</span><br />
<span style="color: #274e13; font-family: 'Courier New', Courier, monospace;"> dbo.v_GS_SYSTEM_CONSOLE_USER.NumberOfConsoleLogons0 AS NumberLogons,</span><br />
<span style="color: #274e13; font-family: 'Courier New', Courier, monospace;"> dbo.v_GS_SYSTEM_CONSOLE_USER.SystemConsoleUser0 AS UserID,</span><br />
<span style="color: #274e13; font-family: 'Courier New', Courier, monospace;"> dbo.v_GS_SYSTEM_CONSOLE_USER.TotalUserConsoleMinutes0 AS LogonTotalTime</span><br />
<span style="color: #274e13; font-family: 'Courier New', Courier, monospace;">FROM dbo.v_GS_SYSTEM_CONSOLE_USER INNER JOIN</span><br />
<span style="color: #274e13; font-family: 'Courier New', Courier, monospace;"> dbo.v_R_System ON dbo.v_GS_SYSTEM_CONSOLE_USER.ResourceID =</span><br />
<span style="color: #274e13; font-family: 'Courier New', Courier, monospace;"> dbo.v_R_System.ResourceID</span><br />
<span style="color: #274e13; font-family: 'Courier New', Courier, monospace;">WHERE </span><br />
<span style="color: #274e13; font-family: 'Courier New', Courier, monospace;"> (dbo.v_GS_SYSTEM_CONSOLE_USER.SystemConsoleUser0 = 'contoso\doofus')</span><br />
<span style="color: #274e13; font-family: 'Courier New', Courier, monospace;"> AND</span><br />
<span style="color: #274e13; font-family: 'Courier New', Courier, monospace;"> (DATEDIFF(dd, dbo.v_GS_SYSTEM_CONSOLE_USER.LastConsoleUse0, GETDATE()) < 30)</span><br />
<b><br /></b>
<b>Need to identify Advertisements pointed at Direct-membership Collections?</b><br />
<ul>
<li>Join <span style="color: blue;">v_Advertisement </span>to <span style="color: blue;">v_Package</span>, and <span style="color: blue;">v_Collection</span>, and sub-query against <span style="color: blue;">v_CollectionRuleDirect </span>using <span style="color: purple;">CollectionID</span> as the filtering column...</li>
</ul>
<span style="color: #274e13; font-family: Courier New, Courier, monospace;">SELECT </span><br />
<span style="color: #274e13; font-family: Courier New, Courier, monospace;"> dbo.v_Advertisement.AdvertisementID, </span><br />
<span style="color: #274e13; font-family: Courier New, Courier, monospace;"> dbo.v_Advertisement.AdvertisementName, </span><br />
<span style="color: #274e13; font-family: Courier New, Courier, monospace;"> dbo.v_Advertisement.PackageID, </span><br />
<span style="color: #274e13; font-family: Courier New, Courier, monospace;"> dbo.v_Package.Name, </span><br />
<span style="color: #274e13; font-family: Courier New, Courier, monospace;"> dbo.v_Advertisement.CollectionID,<br /> dbo.v_Collection.Name AS CollectionName<br />FROM dbo.v_Advertisement INNER JOIN<br /> dbo.v_Collection ON dbo.v_Advertisement.CollectionID =</span><br />
<span style="color: #274e13; font-family: Courier New, Courier, monospace;"> dbo.v_Collection.CollectionID INNER JOIN </span><br />
<span style="color: #274e13; font-family: Courier New, Courier, monospace;"> dbo.v_Package ON dbo.v_Advertisement.PackageID =</span><br />
<span style="color: #274e13; font-family: Courier New, Courier, monospace;"> dbo.v_Package.PackageID<br />WHERE (dbo.v_Collection.CollectionID IN<br /> (SELECT DISTINCT CollectionID FROM dbo.v_CollectionRuleDirect)) </span><br />
<span style="color: #274e13; font-family: Courier New, Courier, monospace;">ORDER BY </span><br />
<span style="color: #274e13; font-family: Courier New, Courier, monospace;"> dbo.v_Advertisement.AdvertisementName</span><br />
<ul></ul>
<ul></ul>
<ul></ul>
<ul></ul>
<ul></ul>
<ul></ul>
<ul></ul>
<div>
<br />
<b>Need to computers with every version of Internet Explorer?</b><br />
<ul>
<li>Well, you might expect to query <span style="color: blue;">v_GS_Installed_Software_Categorized </span>or the ARP tables, but remember that IE10 and 11 came out as KB updates for some platforms. So best to query <span style="color: blue;">v_GS_Software_Product</span>. Note the some entries (<span style="color: purple;">ProductName0 </span>LIKE 'Internet Explorer%') OR (<span style="color: purple;">ProductName0 </span>LIKE 'Windows%Internet Explorer%') will produce the version within the product name, while others will only show "Internet Explorer" and the version in the <span style="color: purple;">ProductVersion0 </span>column. Drink plenty of coffee and enjoy that. Don't forget to filter out the double counted items (yes. they are hiding there). Don't be surprised if you need to crack open your dusty T-SQL book and brush up on the CASE statement. I'll let you have fun with this one, and I'll post my take on it later.</li>
</ul>
<div>
If I get more coffee in me and feel motivated, I may post more. Let me know if these are helpful?</div>
</div>
skatterbrainzhttp://www.blogger.com/profile/01375101979702884965noreply@blogger.com0tag:blogger.com,1999:blog-7801766992264242251.post-31837552006789227042014-06-25T12:28:00.001-04:002014-06-25T12:28:26.641-04:00Software Vendor Product Names 2.0 R2 Update 2, Release 1.1What would your vendor name the next cool app that calculates bodily waste based on a hypothetical wrist-attached food consumption detection device (Bluetooth connected, of course)?<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-aFYcWXbN2Uw/TsmQwkPfJSI/AAAAAAAAJEI/RFr5WX_Wh-U/s1600/3832003387_0d933e8f65.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-aFYcWXbN2Uw/TsmQwkPfJSI/AAAAAAAAJEI/RFr5WX_Wh-U/s1600/3832003387_0d933e8f65.jpg" height="240" width="320" /></a></div>
<br />
<b><span style="font-size: large;">Microsoft</span></b>: <br />
Microsoft Active System Center Excrement Analysis Server, Ultimate Extras Premium Enterprise DataCenter Edition 2015 R2<br />
<br />
<b><span style="font-size: large;">Apple</span></b>:<br />
iPoo<br />
<br />
<b><span style="font-size: large;">Google</span></b>:<br />
FooCake<br />
<br />
<b><span style="font-size: large;">Ubuntu</span></b>:<br />
Bouncing Bowelbuster or Fancy Fudgeflinger<br />
<br />
<b><span style="font-size: large;">Oracle</span></b>:<br />
jPoo<br />
<br />
Mmmm. I can almost smell the improvements.skatterbrainzhttp://www.blogger.com/profile/01375101979702884965noreply@blogger.com0tag:blogger.com,1999:blog-7801766992264242251.post-30796625120009996342014-06-19T21:41:00.001-04:002014-06-19T21:44:32.523-04:00What They Don't Teach You in SchoolMath, English, foreign languages, Biology, Comparative Religions, World History, bah! Even the programming/geek/nerd stuff.... bah!<br />
<br />
These are the most important pieces of education a young person could ever absorb before entering the cut-throat job market today. So, please, for your career's sake: Put down the bong and pay attention!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-Qi80nlEwbJA/U6ORRvao5oI/AAAAAAAAc5g/cIcys-gcgxs/s1600/Business-Support-Team-FloodLight-Business-Solutions-Group-2010-e1337347869782.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-Qi80nlEwbJA/U6ORRvao5oI/AAAAAAAAc5g/cIcys-gcgxs/s1600/Business-Support-Team-FloodLight-Business-Solutions-Group-2010-e1337347869782.jpeg" height="157" width="320" /></a></div>
<br />
<br />
1. <b>Office Camouflage</b><br />
<br />
Never look like you need something to do. Carry papers in one hand, preferrably with a pen, and a coffee cup in the other. Undo your tie and roll your sleeves up. Even if you're just going to throw some trash away, make it look like you're on a mission. A mission to advise the CEO that the CFO and CIO are both TFU and the only person who they can trust is Y.O.U. Look busy!<br />
<br />
2. <b>Shoes and Stalls</b><br />
<br />
Every day you get to work, make a mental note of what shoes the other managers are wearing that day. This only applies to members of the same sex (or whichever sex/gender inhabits the same restrooms you frequent). Knowing what shoes the CEO/CFO/COO/CIO/CTO/CSO/CIEIEIO wears can mean the difference between being fired and being promoted. <br />
<br />
Think of the typical restroom situation where you're chatting with a coworker; you're shaking uncontrollably at the urinal, while he/they picks lunch leftovers from their teeth only an inch from the encrusted mirror. You get ready to say something really apolitical about someone high-up, but you pause to sneak a glance at the shoes of the guy, just beneath the stall partition panel, who's moaning and grunting in the nearby stall. You make a strategic correction.<br />
<br />
Instead of "<i>Man, that department manager is a real asshole</i>. <i>Did you see how he tore the head off that cat in the staff meeting?!</i>", you recall those shoes as being the CFO's, and then you remember that the department manager is his son. So instead, you say something like "<i>Man, that department manager is awesome. The way he used his bottle-opener on that cat was genius! His dad must be SO proud of him.</i>". Next day you show up and there's a calendar invite to a private meeting on the CFO's yacht, dinner included, dress appropriately. See? It's just that easy. And you thought "hard work" (whatever that is) really matters.<br />
<br />
3. <b>Big Words</b><br />
<br />
If you can read a beer bottle, a Hunger Games chapter, medicine bottles, cereal box labels, a verse from the Bible (or other religious text of your choosing), you have all it takes to read another exciting book: The Dictionary.<br />
<br />
Learn a new word, at least once a month. Instead of reacting to surprising news with tired, old, phrases like "<i>wow!</i>", try something more ear-catching like "<i>Gadzooks!</i>" or "<i>Jumping Jehoshaphat!</i>". It shows you might be what they call "Educated" or something. And we all know those suit-wearing folk LOVE them some good ole educated folk to hang out and chew the fat with. I mean, "have a intelligible conversation and discourse with".<br />
<br />
4. <b>Statistical Stuff</b><br />
<br />
Learn something about the sport and sports teams/leagues/players that you know excite the upper management. Then you can combine it with the tips above, and then practice in the restroom, while urinating on the wall, noticing the CEO's shoes in stall number 3, who happens to be a Texas Rangers' fan, and say something clever, like "<i>Wow! Did you know that Nolan Ryan could throw a baseball through the armor-plating of an Army tank while blind-folded and drunk on Drano?! Amazing!</i>" <br />
<br />
Wait for the reaction. If you say something clever enough about their favorite sports thing, or NASCAR thing, they'll jump right out of the stall with their pants down, toilet paper hanging from their butt cheeks and give you a hug like a long-lost relative coming back from the dead.<br />
<br />
5. <b>Strategic Posing</b><br />
<br />
Do not EVER look relaxed at your desk. Stare intently at the screen as if you're watching a live broadcast of a hamster, slowly unhinging it's jaws to swallow a cow in one piece. The look must be serious. It must be practiced to perfection. Nobody who does *real* work does it without some effort and nothing shows effort like that classic Clint Eastwood, tight-jawed, seven day constipated grimace of serious ass-kickery that just oozes the feeling of "I'm busy curing Cancer, and world hunger, so back off bitch!"<br />
<br />
Helpful tips include frowning, squinting, pursing of the lips, rubbing your chin and nodding slowly up and down. For extra points, combine them in pairs or all together at once. Then slowly rise from your broken desk chair and back away without blinking, or looking away even once. Say something quiet, but just loud enough so the nearby idiots can hear it, like "yes. yes. yesss! that will change EVERYTHING." and then go to the restroom to practice steps 1 through 4.<br />
<br />
<b>Conclusion</b><br />
<br />
So there you have it. All the basic skills you need to master in order to excel in a tech job in America. After all, the real jobs are going overseas anyway, so you might as well enjoy the ride while the ship sinks.<br />
<br />
Don't ever say I didn't try to help you get ahead.skatterbrainzhttp://www.blogger.com/profile/01375101979702884965noreply@blogger.com0tag:blogger.com,1999:blog-7801766992264242251.post-51219049921583752392014-06-15T23:38:00.001-04:002014-06-15T23:38:44.887-04:00IT Kool Aid Flavors: Vendor or RealityThere are two general realms, or flavors, that exist in most of the IT world. The <b>vendor </b>flavor, and the <b>reality </b>flavor.<br />
<br />
<a href="http://2.bp.blogspot.com/-Nie75V-c7q8/TfZ40_VJOCI/AAAAAAAAISE/sP15RpbJ6tQ/s1600/argument-2.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-Nie75V-c7q8/TfZ40_VJOCI/AAAAAAAAISE/sP15RpbJ6tQ/s1600/argument-2.jpg" height="211" width="320" /></a>Case in point:<br />
<br />
According to one reseller, the world is running, or eagerly in the process of pursuing, a "pure" Windows Server 2012 R2 and Windows 8.1 / Update 1 environment. <br />
<br />
Other sprinkle-toppings may include flavor crystals like all the 2013 products (but don't forget SQL Server 2014), and of course, the ubiquitous "cloud" world and Office 365/Azure. And don't forget, if you bundle you get a free kid's toy. Is this for a boy or a girl? Do you want to super-size that as well?<br />
<br />
And, please don't get me started on how to properly pronounce <i>Azure</i>.<br />
<br />
Anybody still using XP? Vendor says: <i>Pfffft! I think not (p-shaaaa!).</i><br />
<br />
Not so fast.<br />
<br />
The uncounted, 70-90% of the computer-swilling world doesn't have the luxury of IT project plans, operational efficiency directives and SLA's to worry about. They're busy trying to make things, sell things, build things, fix things, provide services, and all that mumbo-jumbo. The kind of stuff that a lot of larger shops don't seem to have as much "direct / hands-on" exposure to anymore. <br />
<br />
Nowadays, many larger shops have grown into detached sector/division/department/project/task-group/tiger-team environments, where they fit into a mesh of bean-counter menageries that eventually lead to something that tickles shareholders and keeps the paychecks flowing.<br />
<br />
I have no intention of offending or insulting anyone by this (well, okay, maybe some resellers and sales-folks), but the truth can be summed up in a very simple example:<br />
<br />
Kathy's landscaping shop has a few apps they bought with personal funds to help with designing backyard ponds, estimate water coverage, soil depths, and seasonal impacts on gardening. They bought them when they bought their prized Dell or HP desktop they still use with Windows XP. And guess what: IT STILL WORKS. In their view, shiny new touch-screen tiles and cloud things are not as exciting as kicking the shit out of the revenue numbers compared with the nearby Lowe's or Home Depot.<br />
<br />
Their IT support center? 1-800-ASK-DELL or 1-800-WHATS-YOUR-KIDS-FRIENDS-NUMBER-AGAIN?<br />
<br />
Sure, there are distinct, and tangible values to the new features provided by Windows 8 and so on, but for many (okay, dare I say: most) small businesses, and home users as well, the deciding factor is "<i>why do I need to buy another new computer if the one I have still works?</i>" For many small "mom-and-pop" shops, the apps they depend on aren't tops on the lists of bigger companies. They tend to be very industry-specific, and extremely function-specific as well. Things that perform one task, maybe two, but do them well, and are also either cheap, or free.<br />
<br />
Ask any software repackager who deals with more than a hundred titles, and they'll probably have no trouble recalling a list of those "oddball" apps that are tough to wrestle into a package, but for whatever reason, HAVE to be made available or the planets will spin out of orbit and gravity will dissolve. Floral arrangement apps may seem stupid, but tell that to a small, family-owned Florist.<br />
<br />
The consumer isn't broken. The rationale isn't broken either. And neither are the products. What's broken is the sales pitch.<br />
<br />
Remember the Daffy Duck salesman episode? Hey Bud, you need a house to go with this door knob.<br />
<br />
PS. In case you're wondering, the photo depicts (for me, anyways), from left to right: me, a vendor, and a small-business owner.<br />
<br />skatterbrainzhttp://www.blogger.com/profile/01375101979702884965noreply@blogger.com0tag:blogger.com,1999:blog-7801766992264242251.post-50948385889727582242014-06-11T18:01:00.002-04:002014-06-11T18:01:32.466-04:00Asset Inventory 101 - Myths and RealitiesThis post is the result of trying to explain IT inventory to multiple people, multiple times, and them still not "getting it". Rather than wear myself out, which I will probably still do anyway, I plan on pointing them here to read my thoughts on it, and I can then go back to babbling incoherently to myself. I promised to post a "tech-oriented" article soon, but this is borderline, so nanny-nanny-boo-boo, I'm counting it as tech-oriented.<br />
<br />
If you ask me about Inventory, I will ask if you read this article. If you say "no", I will tell you to read this article and walk away, probably while laughing. If you say "yes", I will say "go back and read it again", and laugh even louder.<br />
<h4>
What is Inventory?</h4>
Definition...<br />
<br />
<span style="color: purple;">(noun): <i>A complete list of the things in a place</i>".</span><br />
<span style="color: purple;"><br /></span>
<span style="color: purple;">(verb): <i>the act or process of making a complete list of the things that are in a place : the act or process of making an inventory</i></span>". - Merriam-Webster's Dictionary<br />
<br />
Go back and read that again. Got it memorized? Okay, let's look at the noun side...<br />
<h4>
Inventory Science 101</h4>
What is "inventory" really? Basically, it's supposed to be about tracking and reporting what you own, or what you have, and where it's located. But there's usually a lot more to it than that. Who's using it. What it's used for. Who bought it. Who pays for it. How it is configured. What it's related to, or associated with.<br />
<br />
There's also the Manufacturer. Model. Part Number. Serial Number. Contract number(s). Department/Division/Sector/Group/Team/Project names and numbers. And let's not forget the abstracts like category, type, family, class, species, and all that.<br />
<br />
The goal of inventory, and inventory tracking efforts is, or should be, to confirm existence, disposition and ownership of assets. The real goal being a financial implication of course. What do you own? Where is it? Who is using it? What is it used for? Who's paying for it? When does it "expire"?<br />
<br />
The most common method for gathering and tracking inventory is what is commonly referred to as "input-output differential". Capture what comes in (purchase order, or birth certificate), what goes out (inventory record audit, or death certificate) and finding the gaps. The gaps are where the fun really begins.<br />
<br />
What happened to it? Lost? Stolen? Transgender operation? Was it really the property of the organization, or was it loaned to them for temporary use? Was it a demo from a vendor? The list goes on and on.<br />
<br />
Just as a Census tries to verify you're still among the living, breathing creatures, who are paying taxes and adding to landfills... so are the aims of products like Microsoft System Center Configuration Manager, Solarwinds, Tivoli, Kaseya, LabTech, and (cough-cough) several <i>products </i>I've developed in the past as well.<br />
<br />
So, in addition to what came in the door, and what is known to have departed, there is now a third status of "<i>what's it doing now?</i>" Things that can be poked at to verify where and what an asset is, include Active Directory, network monitoring systems, PING, and so on. An "Asset Manager" job title can often involve a lot of legwork.<br />
<h4>
What Constitutes "Things" and "Places"?</h4>
If we use YOU as a metaphor, then a human being is an inventory asset or item. The place would be (or could be), your home address. It could also be your employer's address, or your car (VIN or license plate).<br />
<br />
Now, think of all the "things" that pertain to labeling YOU as an entity. Your birth certificate. Driver's license. Voter registration. Tax bills. Credit cards. Bank accounts. On and on.<br />
<br />
Do any of those things GUARANTEE your existence? No. Do they confirm you are still among the "living" (I'll leave that for you to decide on the definition)? No. They are simply artifacts that help SUPPORT the assertion that you exist.<br />
<h4>
Metaphorically Speaking: Computers</h4>
Now that we've strolled off into metaphor-land, let's bring it back to the meat-and-potatoes: Computer assets. Desktops, laptops, tablets, smartphones, appliances, routers, hubs, switches, printers, power supplies, storage units, MODEM's, peripherals of all kinds, you name it.<br />
<br />
What is the birth date of a computer? The date it was purchased? The vendor warranty start date? The OS installation date? The technician-installation date? If you base it on the OS install date, and you reinstall the operating system, what happens to the birth date then? Does it fall back to something else?<br />
<br />
If you purchase it, and it takes a while to get from the warehouse, to the workbench, to the truck, to the technician to being delivered and setup, which event date are you picking as the "start" or "birth" date of that asset? Have you consulted your Finance folks about this? Your attorneys? You should.<br />
<br />
When you record the purchase and deployment of this asset, what then? Do you track it during the rest of its life? Do you track the retirement and disposal of it too? Some places do. Some don't. Some are required by law to track some, or all of this. Which are you required to track?<br />
<h4>
Just because you "<i>Can</i>", does that mean you "<i>Should</i>"?</h4>
If you are an IT person working for someone else (i.e. not self-employed), and you haven't sat down (or consulted with) someone in a legal and/or financial role in your organization, I strongly recommend you do so before embarking on any effort to track and report inventory of any kind. I cannot stress that enough.<br />
<br />
Even if you are self-employed, talk to an accountant or legal advisor about whether you need to track thigns, and what to track.<br />
<br />
Some questions to ask: <br />
<br />
<ul>
<li>What are the tax implications? </li>
<li>What are the support contract and cost implications? </li>
<li>What are the regulatory compliance implications? </li>
<li>What are the IT support implications? </li>
</ul>
Did you notice I put IT last in the list?<br />
<br />
From my experiences, most businesses track more than they need to, and ignore things they shouldn't ignore as well.<br />
<h4>
Ah, Yes: Software</h4>
Just when the folks feel good about their grasp of tangible hardware inventory, we open the gates and let the starving lions and alligators into the arena: software licensing.<br />
<br />
Definition: <span style="color: purple;"><b>Software </b>= "<i>the programs that run on a computer and perform certain functions</i>"</span> - Merriam-Webster's Dictionary<br />
<br />
What does that mean? What is a program? Is that Microsoft Word? Is that the Snipping Tool or Narrator feature? Is that .NET Framework 4.5? Is that Java Runtime? Is that a DLL or COM file? Is it a locally stored App-V or ThinApp reference? Is that a shortcut to a MED-V or remote VDI resource (desktop or application)? Is that a URL to a web application? What is it?<br />
<br />
What does that mean?<br />
<br />
If you query a computer for what software it has installed, where do you begin? Does it all exist in the Control "Add or Remove Programs" list? Usually. But not always. How about crawling through that icky Registry? More stuff, sure, but is it easy to parse and understand? Hmm. How about crawling the good old file system and parsing through EVERY SINGLE FILE that is known to have an executable capability?<br />
<br />
The answer is yes.<br />
<br />
Configuration Manager, and products similar to it, often dissect a computer from many angles.<br />
<br />
This includes files, folders, the Registry, and my personal favorite: WMI. Slithering through the various CIM repository stacks can yield all sorts of juicy bits of data about hardware and software.<br />
<br />
But... Is this really what you're after?<br />
<br />
So you have a product installed. Now what? Does that constitute a 'license'? What is a license? What kind of license is it? Per-machine? Per-user? Per-CPU? Per-network? Per-domain or site? Per-company? Open Source? What? And what about FlexLM type licensing, where the node doesn't matter as much as the total, concurrent usage limit?<br />
<br />
If you have the option to use floating/network licensing for groups of similar products, I always recommend that option if you can afford it.<br />
<h4>
Software Licensing Audits</h4>
If you've ever witnessed a license audit from an external investigation, it's not fun. They tend to come in one of two flavors: Vendor and <a href="http://www.bsa.org/" target="_blank">B<span id="goog_333318273"></span><span id="goog_333318274"></span>SA</a>. If the vendor audits you, that's good. They want to keep your business, so they will try to negotiate terms to help avoid losing your business, if possible. If the <a href="http://www.bsa.org/" target="_blank">B<span id="goog_333318273"></span><span id="goog_333318274"></span>SA</a>, or another third-party entity, comes knocking, swallow whatever pills you have left and take a deep breath. It may very well be an unpleasant experience, as they are paid by levied penalties and have no need to retain your business.<br />
<br />
So, while you can get sloppy about hardware inventory, I would not recommend you take the same light-hearted approach to software inventory. I've seen "settlements" applied that nearly ended a business due to the costs, but thankfully, in none of those situations was I aware or implicated of the neglect prior to the doors getting kicked down. Don't be one of those businesses.<br />
<br />
Okay, so that covers a bit of hardware and software.<br />
<br />
Simple as multivariate Calculus and molecular bonding, and clear as mud.<br />
<br />
Are you starting to drink yet? You will.<br />
<h4>
Summary</h4>
If anyone says there is, or should be, "one inventory source" to answer all of these questions, they are brain damaged or stupid. The desire is noble. The reality is clear: a singular source of "authoritative" inventory data is impossible. It has to be derived and reconciled from multiple angles.<br />
<br />Think about that every time you're walking through CostCo, Sam's Club or BJ's and you see a clerk scanning shelves to do "spot check inventory". If there was one system to track and verify all of it, that wouldn't be required.<br />
<br />
Every time I sit in a meeting where some vendor comes in to pitch some magical product to report all of their inventory without any outside help, I look at my shoes, smile and think about my next alcoholic beverage, saying to myself "here we go again..."<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-CMccRKeyNnQ/U5jHWQwTqfI/AAAAAAAAcnA/sIC48GfiLOI/s1600/118057481.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-CMccRKeyNnQ/U5jHWQwTqfI/AAAAAAAAcnA/sIC48GfiLOI/s1600/118057481.jpg" height="227" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<br />
<br />skatterbrainzhttp://www.blogger.com/profile/01375101979702884965noreply@blogger.com0tag:blogger.com,1999:blog-7801766992264242251.post-3900768755688528382014-06-11T12:31:00.000-04:002014-06-11T12:31:00.071-04:00Business Management Time: Budget Reduction IdeasMost of us have heard it before: "Budgets are going to be tight this year/quarter", blah blah. If you're lucky, they follow up with details on where those cuts will be applied. However, in most cases it's left to guess, and that ends up draining a few bottles of liquor, some bottles of Xanax and a couple of boxes of tissues.<br />
<br />
Rather than leave management to roll the dice, I thought I'd offer my personal spin on how budget cuts can be applied in ways that mitigate staffing and position reductions, while improving both employee morale and the "bottom line". Mmmm-kay? Let's look.<br />
<br />
<b>1. Restroom Optimization</b><br />
<br />
Remove one toilet or urinal from every restroom in every facility. That will cut back on water consumption, toilet paper, and encourage employees to hold it in until they leave work. That will keep them at their desks for a longer portion of their work day.<br />
<br />
<b>2. Premium Services</b><br />
<br />
Install credit/debit card swipe locks on every restroom door. Require employees to pay to use your expensive, and well-kept facilities. After all: your company buys only the absolute highest quality toilet tissues, cut from the choicest trees in the farthest reaches of the Amazon rainforest. Why not pass that value and respect along to your staff as well?<br />
<br />
<b>3. Parking</b><br />
<br />
Encourage your staff to focus on exercise by reducing the usable area of parking lots and parking spaces around your facilities. That will allow you to re-purpose the land for more business-oriented uses. The remaining spots should require a decal or badge in order to park, and those should require an annual fee to be paid by the employee. Colleges have been doing this for decades. They're smart people, aren't they? So why not follow their lead?<br />
<br />
<b>4. Entertainment</b><br />
<br />
Nothing builds team spirit and morale quite like social events. Some that you could consider might include "spin-the-layoff-wheel", or "race for a restroom". The former would encourage your staff by allowing the highest score person to name another employee to lay-off or terminate (don't forget those folks in states like Virginia, where they have the convenient "work-at-will" laws). The latter would allow the fastest runner to use the restroom free of charge for one whole day! How awesome would that be! I'm sure you can think of others to consider. Just be sure to focus on "what's good for the company" when planning such activities.<br />
<br />
<b>5. Double-Roles</b><br />
<br />
Employees often complain they're not challenged with interesting work. So, why not challenge them with randomly-selected secondary job titles? So, those "system engineer" folks can also add "custodial engineer" or "landscape services" to their resume. The career-building potential would be incredible.skatterbrainzhttp://www.blogger.com/profile/01375101979702884965noreply@blogger.com0tag:blogger.com,1999:blog-7801766992264242251.post-24251850563613250842014-06-05T15:01:00.001-04:002014-06-05T15:02:50.204-04:00Dave's ill-informed, under-educated, dumbass "Top 5" Rules for IT operational successDave's ill-informed, under-educated, dumbass "Top 5" Rules for IT operational success.<br />
<br />
<b>1. Clear Direction</b><br />
<br />
Can you state the reason, rationale and impact of any task or project in ONE SENTENCE?<br />
<br />
Yes - Proceed<br />
No - You are doomed to horrific failure<br />
<br />
<b>2. Chain of Command</b><br />
<br />
Do you receive ALL of your tasking from your direct line manager?<br />
<br />
Yes - Proceed<br />
No - You are doomed to horrific gang-raping failure<br />
<br />
<b>3. Personal Cohesion</b><br />
<br />
Do the people in your group, team, or project get along well on a personal and personality level?<br />
<br />
Yes - Proceed<br />
No - You might succeed, but you will eventually fail in a horrific way<br />
<br />
<b>4. Personal Interest</b><br />
<br />
Is it fairly normal for the people on your teams to work additional hours because they LIKE doing what they do, as opposed to doing it in order to avoid getting reamed in the next status meeting for falling behind?<br />
<br />
Yes - Proceed<br />
No - You are doomed to tragic, catastrophic failures of Biblical proportions.<br />
<br />
<b>5. Vendor Agnosticism</b><br />
<br />
Do most of the decisions regarding strategic operations (hardware, software, internal and external services, staffing, etc.) tend to be knee-jerk towards one vendor per category, or are they up for grabs during each review?<br />
<br />
Yes - There is hope for your organization<br />
No - Forget it and start putting in applications at another place as soon as possible<br />
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-xvkpwrDsLU0/TvKX2-4PMxI/AAAAAAAAZsU/y_2-7janziQ/s1600/pushing+face+into+sand+frustration.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-xvkpwrDsLU0/TvKX2-4PMxI/AAAAAAAAZsU/y_2-7janziQ/s1600/pushing+face+into+sand+frustration.gif" height="255" width="320" /></a></div>
<div>
<br /></div>
skatterbrainzhttp://www.blogger.com/profile/01375101979702884965noreply@blogger.com0tag:blogger.com,1999:blog-7801766992264242251.post-38774906077424419712014-05-25T17:45:00.001-04:002014-05-25T17:45:03.404-04:00The Smell of Integrity is About All That is Left in AmericaRemember the history books that told those wonderous tales of how hard our grandparents worked to build railroads, highways, dams, national parks, monuments, and all that cool stuff that's now beginning to crumble? Yeah. That was a generation that put the place they lived in above their own personal whiny-assed complaints. Those days are just about dead and gone.<br />
<br />
During a recent discussion, the same thing came up, which elicits the same response from me each time. It's almost Pavlovian in how it runs the same course like tossing fries out your car window and watching the birds lose their minds attacking the scraps.<br />
<br />
It goes something like this:<br />
<br />
Person A says, "There's a drought in the West and flooding in the East!"<br />
<br />
Me: "We could solve that."<br />
<br />
Person A: "How?"<br />
<br />
Me: "The same way your great grandparents would have done: build a pipeline, putting people to work, fueling the upstream industrial systems like manufacturing, engineering, logistics, banking, food, housing, you name it."<br />
<br />
Person A: "That's impossible."<br />
<br />
Me: "If it was oil it would have been done already."<br />
<br />
We will send battalions of young men and women into hot, dry shitholes, to spill blood for the sake of oil, yet we dare not consider spilling a drop of sweat to save our own land from drought, crop destruction, fires, flooding, and all that it cascades into beyond that. Americans are too preoccupied with what the Kardashians are wearing or screwing, and what team traded what contract slave to another team, and what band is putting out a new recording. And we wonder why people in poor, war-torn places don't like us very much.<br />
<br />
Everything now is done for the good of the banks, the corporations, the shareholders. Fuck the people. They're disposable commodities that feed the machinery that keeps the cash flowing between places like China, India, Guatemala and the great vacuum bag of consumption called the US of A.<br />
<br />
It's like this: I always try to think of how I would stand in front of my grandfather and explain some issue I'm having a lot of stress over. Things like petty office politics, irritating people in traffic, annoying TV shows and the latest social network craze. He would look at like Samuel L. Jackson looked at Brad in Pulp Fiction. Without saying a word, I'd know he would want to smack the living sissy-ass pettiness off my face. (He never raised a hand at anyone as far as I know. But he had a way of making you feel like you deserved to smack yourself for being stupid).<br />
<br />
Even our knee-jerk behavior is becoming predictable. When the ACRA bill was release, and the "news" pundits started their chainsaw jaw-jacking spewage of bullshit editorialized reviews, nobody, and I mean NOBODY, bothered to read the bill itself. It was (and still is) posted online. After a week or two of suffering through rednecks arguing with vegans about how it would fix or destroy the American economy, I decided to go download the PDF from the source, and READ IT. Yes, actually READ IT. O-M-F-G. How shocking that someone would bother to read something anymore unless it blabbers on about vampires, zombies or some other stupid worn-out crap.<br />
<br />
Someone moaned about that saying "but, it's like 1900 pages or something!"<br />
<br />
If that was the latest installment of a Harry Potter or Hunger Games series, people would have snapped it up like raw turkeys at the Florida Alligator Farm (a pretty neat demonstration, by the way).<br />
<br />
Instead, most (99.9999%) of "Merkans" tuned into their favorite spoon-feeding, bullshit-manufacturing TV, web or radio outlet to have the ugly details chewed and spit into their brains like momma birds feeding their young. Never mind that momma removed 90% of the facts and twisted the rest to suit their sponsor's agenda. They got a Cliff Notes version of it and ran like leaving a gas station without paying. Turn the key, and start blabbering the same misinformed BS that they just had connected to their brains on the way to work. RTFM is dead.<br />
<br />
Sorry for the sideline diatribe. Back to the roll-up-yer-sleeves-and-do-some-work-beyoches discussion...<br />
<br />
We could be putting our efforts into building the next generation of cross-country (heck, cross-continent) transportation, energy generation, resource allocation management, high-speed Internet connectivity, bridge and tunnel repair/upgrades, and whatever. You know: Like our ancestors did FOR US. We could be doing for our kids. Yet we spend all our time putting some sports team flag or sticker on our shitty trucks and SUV's which are made from 90% foreign parts and consume foreign-supplied oil products, on our way to WalMart and CostCo to buy foreign-made crap, and some fattening food to keep our guts ever-expanding like a Hardees commercial. I know I sound like an old man (confession, I am), but it's true. We're now the lazy shitheads our parents hoped we'd never become.<br />
<br />
Now it looks like China and the rest of the emerging economic powers will gradually buy us out from under our own noses. Farms first, then transportation, then shipping terminals, and then all of it. Sold to the highest bidder, because the shareholders can live anywhere and don't care which team has which players because they can simply buy and trade them around from their yacht. Meanwhile, nobody notices because we're busy teaching our kids to claim "We're Number One!!!" in between TV shows.<br />
<br />
Good luck China! I hope you get your money's worth out us.<br />
<br />
Daily pessimism delivery completed. Enjoy!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-xSUzheeo1xc/T1bZQtE2HlI/AAAAAAAAJ7Y/VkeiSLaU79U/s1600/Team-Building-Games-image.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-xSUzheeo1xc/T1bZQtE2HlI/AAAAAAAAJ7Y/VkeiSLaU79U/s1600/Team-Building-Games-image.jpg" height="320" width="308" /></a></div>
<br />skatterbrainzhttp://www.blogger.com/profile/01375101979702884965noreply@blogger.com0tag:blogger.com,1999:blog-7801766992264242251.post-47792794683252017962014-05-21T21:28:00.002-04:002014-05-21T21:28:46.683-04:00The IT Cross-Training Myth (That Never Dies)I'm overdue for some deep technical stuff, but for now I need to express my pseudo-philosophical side a bit first. I promise to post some geeky stuff soon, but in the meantime, drink some wine and ponder my stupidificationary tales of peculariarty... <br />
<br />
(deeeeeeep inhale...... exhale.... and fart.) let's start.<br />
<br />
We've all heard "SMB" (small-to-medium sized business). Then there's MLB. That's medium-to-large sized business, not Major League Baseball. Depending upon who's rule book you follow, that's anywhere from 1,000 to 5,000 computers/user accounts at the bottom end, up to whatever. In those types of "enterprise" environments, the IT staffing environment is often well-organized (on paper), and there are distinct structural lines of communication and command. In most; not all, but let's keep moving.<br />
<br />
Depending upon the budget situation, which tends to follow economic cycles and industry lines, the staffing may or may not be aligned to what (a) IS being done, and/or (b) NEEDS to be done. When it's out of wack, it tends to go in one of two broad directions: <br />
<br />
<br />
<ul>
<li>Too much staff, which is like a hammer looking for nails to pound, or,</li>
<li>Too few staff, where most of the real "worker-bees" are struggling to handle multiple distinct roles, let alone putting out daily fires. </li>
</ul>
<br />
Regardless of which type of environment exists, there's often that tired, old, edict that gets spewed out from the suit gang like tropical storms spew from the western coast of Africa to become hurricanes: "Cross-Training".<br />
<br />
Not the kind that Nike sells. I'm talking about the kind where you get pulled into a room and given a nice, puffy, soft, sweet-smelling speech about how everyone is going to magically learn what the other folks in their department/division/sector/team/workgroup/squad/platoon are doing. Not just "learn" what they do, but HOW they do it, to the level (supposedly) where anyone (read: ANYONE) of the other IT staff could "fill-in" to address a crisis situation. By the way, this speech usually comes with a fresh side order of seasoned fries and a request to start documenting all the stuff that you do every day (aside from slacking off).<br />
<br />
I've been working in IT for about 35 years. I have NEVER seen this plan work. Never. I've never even heard of it working. I've poked my head into quite a few different, diverse organizations from private sector to government, from small to large, from education and medical, to municipal and industrial. Nobody I have ever spoken with, emailed, IM'd or grunted at in a McDonald's serving line, has ever even heard of someone's cousin who lived next door to a friend who knew a lawncare person that grew up with the Uncle of the neighbor who drove the bus to the elementary school of the kid who heard about another kid that knew of someone who married the best friend of another friend who took violin lessons from a lady that heard of this EVER working as intended.<br />
<br />
Never.<br />
<br />
I have no doubt it's been tried with passion and desire; tried with extreme effort and intent. I'm not saying the folks involved haven't given it their best shot either. The problem is that the model itself is inorganic and doomed to failure.<br />
<br />
A bee doesn't learn how to be a butterfly. A dog doesn't learn how to be fish. Sure, a dog can swim and a bee and fly from flower to flower. Neither qualifies as filling the other's role however. I'm sure some of you are laughing, scoffing, hrmph-ing and puffing too. "This Dave guy doesn't know shit." That may be true. I do know about shit though. In fact, I stepped in some today while throwing the ball with my son, but that's for another story.<br />
<br />
The goal is often lost in this effort: To gain efficiencies from avoiding staff bloat, while mitigating dependence on individual staff skills and experience (read: holding the employer hostage). But when you shuffle a bloated staff, or distract an overwhelmed staff, it's like a quarterback throwing the ball out into the parking lot.<br />
<br />
Here's the fundamental problem with the IT cross-training model:<br />
<br />
In scenario (A) where there are too many staff for the jobs at hand, there's no gain because the staffing is still inefficient, and now even more inefficient because they'll never retain the results unless they make a permanent transfer. Cost is being flushed down the financial toilet already. All that this new approach does is swirl the turds the opposite direction (remember that stuff about north/south of the equator?). <br />
<br />
Also, in scenario (B), which is much more common, by the way, the problem is rather obvious: In order to take time to learn another role, you have to give up at least one (usually several) other roles; resulting in performance and quality lags. Each hour they're away from job number 1, the issues pile up, and the digging-out effort is geometrically scaled, at best.<br />
<br />
Also, if the person really wanted to learn about job number 2, they would have already put in some effort or a transfer request to indicate as such. Did anyone bother to correlate that with the cross-training mapping list? I doubt it.<br />
<br />
Let's say you are one of those in an under-staffed IT shop, and your official duties include AD accounts management, password resets, group maintenance, and the usual admin toiletries. Meanwhile, your real daily tasks include WSUS, GPO's, dealing with server issues, networking issues, firewall issues, backup issues, patching, patching and more patching, the ever-exciting application conflict and prerequisite horrors, tracking licenses, tracking inventory and don't forget...... DO-CU-MEN-TA-SHUN. Which nobody has time for (unless you work in scenario A of course).<br />
<br />
Ah, the smell of documentation. That whole "operationalize" stuff. It smells like, like.... like.... victory. Oh wait, that's the stuff I stepped in earlier. Never mind.<br />
<br />
So, now you're told to drop all that you normally do for a day to go sit beside the foul-smelling person who handles the firewall and web filtering stuff, and learn about what they do all day. Or maybe it's the storage folks, or the InfoSec folks, or the application developers (they have great coffee you know), or the tier 1 desktop support shop (the best place anyone could dream of, right?). You've ignored your normal stuff for a whole day. Nice.<br />
<br />
Then you come "back" to your old, coffee-stained, scratched and dented desk, with that same Dilbert calendar page pinned on the cube wall, and you've got two days of backlogged problems to work through. Your desk phone message light is also blinking. You may want to check that.<br />
<br />
Meanwhile, all that stuff you took notes about (you did take notes, right?) is gradually fading from your brain. After another day of yet more small tasks and a few bigger ones, some sports chatting, a couple of meetings and phone calls, it all starts to slip further and fuuuurrrrtheerrrrr away. By the next Monday, you're right back into your regular routine.<br />
<br />
In short time, you can barely spell the job title of the other person you sat beside and the note pad is stained with coffee rings and covered in more papers. Net gain? Zero. <br />
<br />
Sure, there's potential. It's not quantifiable by any means though. I've yet to find one analyst who can show me a concrete example where this concept has played out to anyone's measurable gain. The only gains I've ever seen are perceptual (<i>it sure feels good to ignore the usual pains for a day or two, and management gets to say they've "executed" another process improvement plan. they love that "execute" word don't they?</i>).<br />
<br />
It's a nice, easy to sell, easy to grasp idea. But like peace in the Middle East, it just never seems to happen. I mean, come on: How hard can it be for two people to sit and talk through their differences and just get along? Hmmmm? After all, the stakes are so much higher, it has to be more likely to work itself out than dealing with your silly little IT staffing challenges. Right?<br />
<br />
Every time I sit through another meeting where this topic is raised, it reminds me of how my parents used to look at the "latest teen sensation" and moan and roll their eyes. Then I hit 40, and then 50 and realized what they were seeing. It's the same old thing, wrapped in newer terminology and a prettier PowerPoint slide deck. It's not a pig. It's a pig with lipstick this time!! Yeah!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-C0Di6FPSQeo/TslOAzgO0pI/AAAAAAAAJA8/mVyvVEgOYx8/s1600/traffic-accident.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-C0Di6FPSQeo/TslOAzgO0pI/AAAAAAAAJA8/mVyvVEgOYx8/s1600/traffic-accident.png" height="214" width="320" /></a></div>
<br />skatterbrainzhttp://www.blogger.com/profile/01375101979702884965noreply@blogger.com0tag:blogger.com,1999:blog-7801766992264242251.post-79475605928691719912014-05-20T21:18:00.000-04:002014-05-20T21:18:53.351-04:00SCCM Lab Setup Laziness with PowerShell and Duct TapeI've been dusting off my pointy little head with another round of "lets play set up with Configuration Manager!" and, well, I hate using GUI tools or command line stuff if a script will save me time. The time invested in smacking the keyboard and making grunting noises and laughing hysterically is recouped later with spare change and coffee spilling, so it pays off.<br />
<br />
Disclaimer: I really don't have any duct tape right now, so you'll have to go without on this one.<br />
<br />
Anyhow, I've been following along with a template procedure my buddy and trusted ass-kicking extraordinaire colleague and uber-technowunderkind: Chris DeCarlo compiled. One part of this procedure has me creating a bunch of AD user accounts to tie to various things. Some are for SQL services, others for AD tasks, and obviously some are for SCCM itself. (btw- Chris, you did an outstanding job on this document. Kudos!)<br />
<br />
Here's the accounts (sorry man, but I modified a few names out of brain-damaged habit). The short names on the left are the sAMAccountName values, and to the right are their descriptions / explanations.<br />
<br />
<ul>
<li>SCCMRS - SQL Reporting Services publishing account</li>
<li>SCCMNA - SCCM network access account</li>
<li>SCCMInstall - SCCM site server install account</li>
<li>SCCMDomJoin - SCCM domain joining account</li>
<li>SCCMClient - SCCM client push account</li>
<li>SCCMSQLSvc - SCCM SQL Server service account</li>
<li>SCCMSQLAgent - SCCM SQL Agent service account</li>
<li>SCCMOSD - SCCM OSD deploy and capture account</li>
</ul>
<div>
You may or may not need (or want) to create all of these, but I have the keyboard so this plane is going into the mountain and I'm the captain... so hold on.</div>
<div>
<br /></div>
<div>
In addition to this, I'm lazy. Yes, I know that's a shock. I'll wait as you pick your jaw off the floor. (tap tap tap tap - eyes on phone,...) ok. Rather than doing this the "right way", I do it (for lab purposes only) the "easy unrecommended way", which is to stuff all of these accounts into the "Domain Admins" group and then laugh as loud as possible.</div>
<div>
<br /></div>
<div>
You need two files (okay, you don't really NEED two files, but for this example it works):</div>
<div>
<ul>
<li>A Comma-Separated Values file (.csv)</li>
<li>A PowerShell script (v3 or v4)</li>
</ul>
<div>
Assumptions</div>
<div>
<ol>
<li>Domain is "fubar.local"</li>
<li>OU is created at root of the domain as "ServiceAccounts"</li>
<li>You are logged onto the server/desktop in the LAB as a Domain Admin user</li>
<li>You have faith in what I'm telling you (rotfl! okay, just kidding)</li>
</ol>
</div>
<div>
I built and tested this cardboard thing using Windows Server 2012 R2 with PowerShell v4 and some coffee, chewing gum and a few chicken drumsticks my wife just cooked (damn good too).</div>
</div>
<div>
<br /></div>
<div>
[CrappyCode]</div>
<br />
<div>
<span style="color: blue; font-family: Courier New, Courier, monospace; font-size: x-small;">$inputFile = Import-CSV "useraccounts.csv"</span></div>
<div>
<div>
<span style="color: blue; font-family: Courier New, Courier, monospace; font-size: x-small;">$strPwd = "</span><span style="color: red; font-family: Courier New, Courier, monospace; font-size: x-small;">Tarfu123</span><span style="color: blue; font-family: Courier New, Courier, monospace; font-size: x-small;">"</span></div>
<div>
<span style="color: blue; font-family: Courier New, Courier, monospace; font-size: x-small;">$ouPath = "OU=</span><span style="color: red; font-family: Courier New, Courier, monospace; font-size: x-small;">ServiceAccounts</span><span style="color: blue; font-family: Courier New, Courier, monospace; font-size: x-small;">,DC=</span><span style="color: red; font-family: Courier New, Courier, monospace; font-size: x-small;">fubar</span><span style="color: blue; font-family: Courier New, Courier, monospace; font-size: x-small;">,DC=</span><span style="color: red; font-family: Courier New, Courier, monospace; font-size: x-small;">local</span><span style="color: blue; font-family: Courier New, Courier, monospace; font-size: x-small;">"</span></div>
<div>
<span style="color: blue; font-family: Courier New, Courier, monospace; font-size: x-small;"><br /></span></div>
<div>
<span style="color: blue; font-family: Courier New, Courier, monospace; font-size: x-small;">foreach($strLine in $inputFile) {</span></div>
<div>
<span class="Apple-tab-span" style="color: blue; font-family: 'Courier New', Courier, monospace; font-size: x-small; white-space: pre;"> </span><span style="color: blue; font-family: 'Courier New', Courier, monospace; font-size: x-small;">$cn = $strLine.cn</span></div>
<div>
<span class="Apple-tab-span" style="color: blue; font-family: 'Courier New', Courier, monospace; font-size: x-small; white-space: pre;"> </span><span style="color: blue; font-family: 'Courier New', Courier, monospace; font-size: x-small;">$samid = $</span><span style="color: blue; font-family: 'Courier New', Courier, monospace; font-size: x-small;">strLine</span><span style="color: blue; font-family: 'Courier New', Courier, monospace; font-size: x-small;">.sAMAccountName</span></div>
<div>
<span style="color: blue; font-family: Courier New, Courier, monospace; font-size: x-small;"><span class="Apple-tab-span" style="white-space: pre;"> </span>$ln = $</span><span style="color: blue; font-family: 'Courier New', Courier, monospace; font-size: x-small;">strLine</span><span style="color: blue; font-family: Courier New, Courier, monospace; font-size: x-small;">.sn</span></div>
<div>
<span style="color: blue; font-family: Courier New, Courier, monospace; font-size: x-small;"><span class="Apple-tab-span" style="white-space: pre;"> </span>$fn = $</span><span style="color: blue; font-family: 'Courier New', Courier, monospace; font-size: x-small;">strLine</span><span style="color: blue; font-family: Courier New, Courier, monospace; font-size: x-small;">.givenname</span></div>
<div>
<span style="color: blue; font-family: Courier New, Courier, monospace; font-size: x-small;"><span class="Apple-tab-span" style="white-space: pre;"> </span>$dn = $</span><span style="color: blue; font-family: 'Courier New', Courier, monospace; font-size: x-small;">strLine</span><span style="color: blue; font-family: Courier New, Courier, monospace; font-size: x-small;">.displayname</span></div>
<div>
<span style="color: blue; font-family: Courier New, Courier, monospace; font-size: x-small;"><span class="Apple-tab-span" style="white-space: pre;"> </span>$desc = $</span><span style="color: blue; font-family: 'Courier New', Courier, monospace; font-size: x-small;">strLine</span><span style="color: blue; font-family: Courier New, Courier, monospace; font-size: x-small;">.description</span></div>
<div>
<span style="color: blue; font-family: Courier New, Courier, monospace; font-size: x-small;"><span class="Apple-tab-span" style="white-space: pre;"> </span>$upn = $</span><span style="color: blue; font-family: 'Courier New', Courier, monospace; font-size: x-small;">strLine</span><span style="color: blue; font-family: Courier New, Courier, monospace; font-size: x-small;">.UserPrincipalName</span></div>
<div>
<span style="color: blue; font-family: Courier New, Courier, monospace; font-size: x-small;"><br /></span></div>
<div>
<span style="color: blue; font-family: Courier New, Courier, monospace; font-size: x-small;"><span class="Apple-tab-span" style="white-space: pre;"> </span>New-ADUser -SamAccountName $samid -Name "$cn" -UserPrincipalName $upn -AccountPassword (ConvertTo-SecureString -AsPlainText "$strPwd" -Force) -Enabled $true -PasswordNeverExpires $true -Path "$ouPath" -Description "$desc"</span></div>
<div>
<span style="color: blue; font-family: Courier New, Courier, monospace; font-size: x-small;">}</span></div>
<div>
<span style="color: blue; font-family: Courier New, Courier, monospace; font-size: x-small;"><br /></span></div>
<div>
<span style="color: blue; font-family: Courier New, Courier, monospace; font-size: x-small;">$inputFile | % {Add-ADGroupMember -Identity "Domain Admins" -Member $_.sAMAccountName } </span></div>
</div>
<div>
[/CrappyCode]</div>
<div>
<br /></div>
<div>
If you're not familiar with PowerShell, or scripting in general, you don't need to copy the [CrappyCode]. and [/CrappyCode] end tags. Those are just for entertainment. You will want to edit the domain names to protect the innocent, and whatever else you feel like modifying to suit your environmental needs. The items in red are likely the items you will want to change for your needs. </div>
<div>
<br /></div>
<div>
Also, the last line redirects the CSV piped content through a PowerShell pipeline into Add-ADGroupMember to stuff the new accounts into the Domain Admins group. So easy, and cheap too. Be careful of the line-wrapping headaches that come with copying from web browser windows. :)</div>
<div>
<br /></div>
<div>
The next piece is the CSV file (below). Note that the first line contains the logical column headings, while the remaining lines are the actual data. As long as the values are in the same relative order from left-to-right, it should work fine. If you have values that contain apostrophes or commas be careful to "escape" them properly so they don't choke out the code like a backyard wrestling match gone wrong.</div>
<div>
<br /></div>
<div>
[CSV]</div>
<div>
<div>
<span style="color: #a64d79; font-family: Courier New, Courier, monospace; font-size: x-small;">cn,givenname,sn,sAMAccountName,displayname,UserPrincipalName,description</span></div>
<div>
<span style="color: #a64d79; font-family: Courier New, Courier, monospace; font-size: x-small;">SCCMRS,,,sccmrs,SCCM Reporting Services,sccmrs@fubar.local,SCCM SQL Reporting Services Account</span></div>
<div>
<span style="color: #a64d79; font-family: Courier New, Courier, monospace; font-size: x-small;">SCCMNA,,,sccmna,SCCM Network Access,sccmna@fubar.local,SCCM Network Access Account</span></div>
<div>
<span style="color: #a64d79; font-family: Courier New, Courier, monospace; font-size: x-small;">SCCM Install,,,sccminstall,SCCM Install,sccminstall@fubar.local,SCCM Server Installation Account</span></div>
<div>
<span style="color: #a64d79; font-family: Courier New, Courier, monospace; font-size: x-small;">SCCMDomJoin,,,sccmdomjoin,SCCM Dom Join,sccmdomjoin@fubar.local,SCCM Domain Join Account</span></div>
<div>
<span style="color: #a64d79; font-family: Courier New, Courier, monospace; font-size: x-small;">SCCMClient,,,sccmclient,SCCM Client Push,sccmclient@fubar.local,SCCM Client Push Account</span></div>
<div>
<span style="color: #a64d79; font-family: Courier New, Courier, monospace; font-size: x-small;">SCCMSqlSvc,,,sccmsqlsvc,SCCM SQL Service,sccmsqlsvc@fubar.local,SCCM SQL Server Account</span></div>
<div>
<span style="color: #a64d79; font-family: Courier New, Courier, monospace; font-size: x-small;">SCCMSqlAgent,,,sccmsqlagent,SCCM SQL Agent,sccmsqlagent@fubar.local,SCCM SQL Agent Account</span></div>
<div>
<span style="color: #a64d79; font-family: Courier New, Courier, monospace; font-size: x-small;">SCCMOSD,,,sccmosd,SCCM OSD,sccmosd@fubar.local,SCCM OSD Deploy and Capture Account</span></div>
</div>
<div>
[/CSV] </div>
<div>
<br /></div>
<div>
Then, in your LAB environment (do not do this in production unless you like spending a lot of time in a courtroom with ugly people in suits), log on as a Domain Admin user, open the PowerShell console (right-click and select "Run as administrator"), and CD (change directory) to the path where you saved both of these files.</div>
<div>
<br /></div>
<div>
Then type in "powershell.exe -ExecutionPolicy Unrestricted -File useraccounts.csv</div>
<div>
<br /></div>
<div>
If you see a bunch of red text, you screwed up (probably as a result of believing what I tell you), but don't freak, go into the code and verify everything is neat and clean and the quotes are matched, etc. Standard scripting/programming drudgery stuff.</div>
<div>
<br /></div>
<div>
When you're done, and assuming it works as intended (it did for me), you should see those accounts in the designated OU and each is a member of the "Domain Admins" group.</div>
<div>
<br /></div>
<div>
Cheers!</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-oh3bEQa5nAU/TslPMo_z9-I/AAAAAAAAJBE/fYQj72_9-Co/s1600/crazy_crash_30.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-oh3bEQa5nAU/TslPMo_z9-I/AAAAAAAAJBE/fYQj72_9-Co/s1600/crazy_crash_30.jpg" height="180" width="320" /></a></div>
<div>
<br /></div>
skatterbrainzhttp://www.blogger.com/profile/01375101979702884965noreply@blogger.com0tag:blogger.com,1999:blog-7801766992264242251.post-36237598715848577182014-05-20T19:15:00.001-04:002014-05-20T19:15:59.021-04:00Kindle Book Customers...<p dir="ltr">I wanted to say THANK YOU for your continued Support!  Seriously. I had kind of ignores the sales reports thinking the numbers had fallen to nothing by now, but I was surprised to see more activity lately. You have no idea how much I appreciate that and want to Thank you for your patronage. </p>
<p dir="ltr">Please post feedback on the books you've purchased? Be honest and straightforward? I would very much like to know what you like and don't like and what I can improve upon.</p>
<p dir="ltr">Respectfully, <br>
Dave </p>
skatterbrainzhttp://www.blogger.com/profile/01375101979702884965noreply@blogger.com0tag:blogger.com,1999:blog-7801766992264242251.post-44374105257635903702014-05-19T12:36:00.001-04:002014-05-19T12:36:03.797-04:00Experts Guide to Home and Small Business Wi-FiThinking of buying a shiny, new, extra-double-spiffy new Wi-Fi router at Costco, Sam's Club or Best Buy? Maybe online? But maybe you're not really comfortable setting it up yourself? NO problem. I'm from IT and I'm here to help.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-zQHpEqTMU1k/UNBcnJEOi-I/AAAAAAAAQ-I/b3fPIMiDVpE/s1600/blogger-image-1132418799.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-zQHpEqTMU1k/UNBcnJEOi-I/AAAAAAAAQ-I/b3fPIMiDVpE/s1600/blogger-image-1132418799.jpg" height="240" width="320" /></a></div>
<br />
<br />
<ol>
<li>Before you buy a new Wi-Fi router, be sure to try the standard IMNDSICUT process. That's short for "If my neighbor doesn't secure it, I can use it". It goes like this:</li>
<ol>
<li>Turn on your mobile device (laptop, tablet, smartphone, etc.)</li>
<li>Click the link to search for active Wi-Fi networks.</li>
<li>Look for the ones that do NOT have padlock symbol.</li>
<li>Try connecting to each one until you get one that works.</li>
<li>(tip: Be sure to check for any applicable local, state and/or federal laws that might cause you some concern before doing this. If you get in trouble, you read this on someone else's blog and my name is Bob)</li>
</ol>
<li>Next, if the above process doesn't pan out and you're a small business, rent space near a Starbucks, McDonald's, or any other retail or fast food chain outlet that offers free wi-fi.</li>
<li>Next, if that doesn't pan out, run an ad on Craig's List for a room mate that is good at setting up Wi-Fi networks and also (this is important, pay attention) has a new wi-fi router.</li>
<li>If all of the above options fail, you need to buy a new router.</li>
</ol>
<br />
You're all set! Good luck - and happy wi-fi-ing!<br />
<br />
:)skatterbrainzhttp://www.blogger.com/profile/01375101979702884965noreply@blogger.com0