• New to my .bashrc

    alias GetExtIP=”wget -q -O – checkip.dyndns.org|sed -e ‘s/.*Current IP Address: //’ -e ‘s/<.*$//’”

    Now I can know what my external IP is!!!


  • Default MAPI profiles after using Office Customization Tool

    We are rolling out a new windows 7 desktop (via sccm task sequence) and one of the packages is the newly released Office 2010. I have been using OCT to modify the outlook profile via a PRF file. We want to take advantage of “cached mode” so that is one of the setting I use the PRF and OCT to set. What if I wanted to change the behavior of one machine, so that it does not use “cached mode”? Do I have to re-install office?

    Seems that the default mapi profile is created by importing the PRF file. In windows 7, this registry setting can be found here:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\User Settings\{GUID}\Create\Software\Microsoft\Office\14.0\Outlook\Setup\ImportPRF

    And in Windows 2008 R2 X64 it is here:

    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\14.0\User Settings\{GUID}\Create\Software\Microsoft\Office\14.0\Outlook\Setup\ImportPRF

    Just have this registry key (using 8.3 names) point to a PRF with different settings and the new MAPI profiles will use this PRF.


  • Just discovered TSConfig.INI

    I can now customize my winpe to run a VNC Server from a batch using TSConfig.INI and [CustomHook]. In theory, I can use “Create task sequence media” to create a thumb drive, that will reboot into winpe, and I can connect via WinVNC to continue the lite touch task sequence.

    I really need to sit down and read the documentation. What else am I missing?


  • I am a “Microsoft Certified IT Professional : Enterprise Administrator”

    Just earned my Microsoft Certified IT Professional: Enterprise Administrator (MCPIT:EA).
    Hopefully that, with my Red Hat Certified Engineer (RHCE), makes me an attractive hire (not that I am looking right now)


  • Waking up a SCCM collection from vbscript.

    I wanted to wake up all the machines in a collection using a vbscript. I know that SCCM has this built in, but I could not get it working. To troubleshoot I figured I would write a script to get collection members, and then wake them via the command line with this tool: http://www.gammadyne.com/cmdline.htm#wol

    GetCollectionMembers "XXX00018"
    
    Sub GetCollectionMembers (COLLECTION_NAME)
      Set objLocation = CreateObject("WbemScripting.SWbemLocator")
      Set objService = objLocation.ConnectServer("SERVERNAME", "root\SMS\site_XXX")
      strQuery = "SELECT * FROM SMS_FullCollectionMembership WHERE CollectionID = '" & COLLECTION_NAME & "'"
      Set objSourceCollectionMembers = objService.ExecQuery(strQuery)
      For Each Resource In objSourceCollectionMembers
    	WakeMachine objService,Resource.ResourceID
      Next
    End Sub
    
    Sub WakeMachine (objService,ResourceID)
      Set Machines = objService.ExecQuery("Select * From SMS_R_System where ResourceID =" & ResourceID)
      For Each Machine In Machines
    	Set objShell = CreateObject("Wscript.Shell")
    	strCurrentDir = Replace(WScript.ScriptFullName,WScript.ScriptName,"")
    	strCommand = strCurrentDir & "\wol.exe " & Replace(Machine.MACAddresses(0),":","")
    	Set objExecObject = objShell.Exec(strCommand)
      Next
    End Sub
    

  • SCCM “trickle” install.

    We wanted to deploy software to our environment via and assigned advertisement in SCCM, but we wanted to be able to install packages to a subset of a collection. If there is an issue the next day, the whole enterprise would not down. We already had a collection that identified machines that need the package, we just want to deploy to the first 15 one day, and another 15 the next day.

    Since WQL does not allow a SQL “TOP” I did not think I would be able to do it via a complex query. So I wrote the following vbscript to find machines in one Collection and add them to another collection:

    Sub CopyMachinesToCollection (SOURCE_COLLECTION,TARGET_COLLECTION,ResourcesAtATime)
    	Set objLocation = CreateObject(&quot;WbemScripting.SWbemLocator&quot;)
    	Set oService = objLocation.ConnectServer(&quot;server&quot;, &quot;root\SMS\site_XXX&quot;)
    
    	Set oSourceCollectionMembers = oService.ExecQuery(&quot;SELECT ResourceID, Name FROM SMS_FullCollectionMembership WHERE CollectionID = '&quot; &amp; SOURCE_COLLECTION &amp; &quot;'&quot;)
    	Set oTargetCollection = oService.Get(&quot;SMS_Collection.CollectionID='&quot; &amp; TARGET_COLLECTION &amp; &quot;'&quot;)
    
    	' Add ResourcesAtATime resources to
    	counter=0
    	For Each Resource In oSourceCollectionMembers
    		if counter &lt; ResourcesAtATime then
    			'Wscript.Echo Resource.ResourceID  &amp; &quot;-&quot; &amp; Resource.Name
    			Set DirectRule = oService.Get(&quot;SMS_CollectionRuleDirect&quot;).SpawnInstance_()
    			DirectRule.ResourceClassName = &quot;SMS_R_System&quot;
    			DirectRule.ResourceID = Resource.ResourceID
    			DirectRule.RuleName = Resource.Name
    			oTargetCollection.AddMembershipRule DirectRule, SMSContext
    			oTargetCollection.RequestRefresh False
    			end if
    			counter=counter+1
    	Next
    End Sub
    
    Sub DeleteTargetCollection (TARGET_COLLECTION)
    	Set objLocation = CreateObject(&quot;WbemScripting.SWbemLocator&quot;)
    	Set oService = objLocation.ConnectServer(&quot;svnyem01&quot;, &quot;root\SMS\site_SVC&quot;)
    
    	Set oTargetCollection = oService.Get(&quot;SMS_Collection.CollectionID='&quot; &amp; TARGET_COLLECTION &amp; &quot;'&quot;)
    
    	' Delete all in oTargetCollection
    	If Not IsNull(oTargetCollection.CollectionRules) Then
    		For Each Rule In oTargetCollection.CollectionRules
    			wscript.echo Rule.RuleName
    			oTargetCollection.DeleteMembershipRule Rule
    		Next
    		oTargetCollection.RequestRefresh False
    	End If
    End Sub
    

    Second sub removes all machines from the collection, and the first copies the first “x” from the soure to the destination


  • iPad app pricing?

    Just was reading this article. I couldn’t agree more with this statement. It costs equal or more to but the WSJ on the iPad?

    Compare the strategies and thinking. On the one hand we have a set of pricing models that deliver marginal value for premium prices and show very little that differentiate themselves from the web experience, although they expect to charge more. These pricing models are based on a sense of entitlement to set pricing as it was in the days of print. I won’t even call them strategies because they lack any kind of realistic strategic thinking


  • Laying on the couch blogging from my iPad

    Sweet!!!