8 nov 2012

SCCM by Davis

SCCM by Davis


SCCM 2012 Powershell: You must use 32-bit!

Posted: 27 Sep 2012 08:35 AM PDT

Rafael has a nice post about using PowerShell in SCCM 2012 SP1 (beta). You must actually use 32-bit PowerShell to import module!

More here

SCCM 2012: Software Update Download failed with ERROR: There was an error downloading the software update. (12029)

Posted: 27 Sep 2012 08:23 AM PDT

Issue: I tried to download updates creating a new Software Update Package using a remote SCCM console. SCCM created a folder for the first update under the Package Source folder, but could not download content – failed with ERROR: There was an error downloading the software update. (12029)

Resolution: I checked PatchDownloader.log located in %UserProfile%\AppData\Local\Temp\3 folder and found the error saying the content cannot be downloaded from Microsoft Update site.

There is a proxy in the environment. I set proxy settings in IE and content was downloaded successfully.

Note: There is a Proxy Settings in properties of Software Update Point in SCCM. Do not forget to set it up if there is no direct connection to Microsoft Update sites from your SCCM SUP. This settings affects SUP/Microsoft synchronization process only!

To download Software Update Content you have to have proxy configured in IE on the machine you use to run the SCCM console. At least that solve the issue for me.

#ConfigMgr / #SCCM 2012 : SP1 : Client Notification option to Download Computer Policies ASAP

Posted: 26 Sep 2012 09:24 PM PDT

Another enhancement with ConfigMgr SCCM 2012 SP1 Beta. "Client Notification" Function in CM 2012 SP1

LTI/ZTI PowerShell: Debugging Scripts (Part 3 of 3)

Posted: 26 Sep 2012 09:00 PM PDT

Testings results with a test matrix

My Rename-Computer script is in production and I've made some major changes to it so it's time for some major testing.  It's important when testing your scripts to understand and document what your expected outcomes are. You should then run through each scenario and ensure that you get the desired results.

I'm running my script with its new changes on my technicians PC. Remember, I've neutralised the script and added debug lines. For reference, here's the code again.

  Param (   [String]$Name = $TSEnv:OSDComputername,   [String]$WorkGroupName  )    Begin{  $DebugPreference="Continue"  Import-Module ZTIUtility  }  Process{  If ($Name) {   # Rename the Computer using WMI   # (Get-WmiObject win32_computersystem).rename($Name)   Write-Debug "RUN COMMAND - Computer was renamed to $Name"   }  # If the WorkGroupName variable has no value passed to the script.   If (!($WorkGroupName)) {   Write-Debug "WorkGroupName variable has no value passed to the script."  # If the Task Sequence variable JoinWorkgroup has a value.   If ($TSEnv:JoinWorkgroup) {   Write-Debug "Task Sequence variable JoinWorkgroup has a value."   [String]$WorkGroupName = $TSEnv:JoinWorkgroup   }   }     # Join a Workgroup   # If the WorkGroupName variable has a value.   If ($WorkGroupName) {   Write-Debug "WorkGroupName variable has a value."   # Add-Computer -WorkGroupName $WorkGroupName -WarningAction SilentlyContinue   Write-Debug "RUN COMMAND - Joined the Workgroup $WorkGroupName"   }  }  End{}  

Below I've put together a simple testing matrix with the expected/desired results. Below which I've shown screenshots of the actual results.

Test 1 – Supply computer name Scriptimus to the command line
Expected results: Computer should be renamed.

Test 2 – Supply computer name Scriptimus and workgroup name ExMachina to the command line
Expected results: Computer and should be renamed and new workgroup joined.

Test 3 – Set Task Sequence Variable OSDComputername to CON-LAB1 and run script without supplying parameters
Expected results: Computer should be renamed.

Test 4 – Set Task Sequence Variables OSDComputername to CON-LAB1 and JoinWorkGroup to Continuum then run script without supplying parameters
Expected results: Computer and should be renamed and new workgroup joined.

Test 5 – Remove all variables and test script without parameters.
Expected results: No changes should be made.

Remove debug lines and reactivate script.

There's a lot of debugging lines in this script that need to be removed. Sounds like a lot of work, right? No. Just comment out the line $DebugPreference="Continue" and all the Write-Debug lines will be ignored as they are now run with the default "SilentlyContinue".

The Import-Module ZTIUtility line can be left in as it will do nothing when run in production. In fact Microsoft suggest that this function will have helpful code in future MDT releases so they recommend that you keep the line in.

Finally the actual code needs to be re-enabled so remove the comment lines (#'s) from the 2 actual code lines and your script is now ready to return to production.

  Param (   [String]$Name = $TSEnv:OSDComputername,   [String]$WorkGroupName  )    Begin{  # $DebugPreference="Continue"  Import-Module ZTIUtility  }  Process{  If ($Name) {   # Rename the Computer using WMI   (Get-WmiObject win32_computersystem).rename($Name)   Write-Debug "RUN COMMAND - Computer was renamed to $Name"   }  # If the WorkGroupName variable has no value passed to the script.   If (!($WorkGroupName)) {   Write-Debug "WorkGroupName variable has no value passed to the script."  # If the Task Sequence variable JoinWorkgroup has a value.   If ($TSEnv:JoinWorkgroup) {   Write-Debug "Task Sequence variable JoinWorkgroup has a value."   [String]$WorkGroupName = $TSEnv:JoinWorkgroup   }   }     # Join a Workgroup   # If the WorkGroupName variable has a value.   If ($WorkGroupName) {   Write-Debug "WorkGroupName variable has a value."   Add-Computer -WorkGroupName $WorkGroupName -WarningAction SilentlyContinue   Write-Debug "RUN COMMAND - Joined the Workgroup $WorkGroupName"   }  }  End{}  

Video Tutorial: How to deploy Office 2013 App-V package with System Center 2012 Configuration Manager

Posted: 26 Sep 2012 07:42 AM PDT

I made a video tutorial on how to deploy a virtual Office 2013 application to a Windows 8 desktop client with System Center 2012 Configuration Manager SP1 Beta.

Check it out on youtube! http://www.youtube.com/watch?v=p1hANrvp47k

SMS_Executive service stops and creates a crashdump

Posted: 26 Sep 2012 12:20 AM PDT

I was troubleshooting a problem that objects from a primary child site was not replication up to central site. It turned out that the SMS_executive servce was stopped on the central site server – Easy one, so I just started the service.

Shortly after it stopped again? – back into troubleshooting mode. The SMS_executive server generated a crashdump in the \logs\crashdump directory

The crashdump log indicated that there were an issue with the SMS_DISTRIBUTION_MANAGER component.

EXCEPTION INFORMATION

Time = 09/25/2012 22:50:14.622

Service name = SMS_EXECUTIVE

Thread name = SMS_DISTRIBUTION_MANAGER

Executable = C:\Program Files (x86)\Microsoft Configuration Manager\bin\i386\smsexec.exe

Process ID = 5752 (0×1678) Thread ID = 6272 (0×1880) Instruction address = 74461eeb

Exception = c0000005 (EXCEPTION_ACCESS_VIOLATION)

Description = "The thread tried to read from the virtual address FFFFFFFF for which it does not have the appropriate access." Raised inside

CService mutex = No CService mutex description = ""

Next was to investigate the site status messages for central site and here was the reason that SMS_execitive crashes 2 packages was for unknown reason not owned by the central site server, but a primary child site. So every time the SMS_Ditribution_manager tried to update the packages it gets access denied and the SMS_executive services crashed.

Solution:

  1. Identify primary child site server that own the packages and delete the distribution point.
  2. Wait for the change to replicate to central site
  3. Recreate the distribution point on the central site as it should be

LTI/ZTI PowerShell: Debugging Scripts (Part 2 of 3)

Posted: 25 Sep 2012 09:00 PM PDT

Testing variables with the ZTIUtility module

My Rename-Computer script worked great on a computer in a workgroup environment. But now, I have a new server that I want to rename before I join it to a domain. I've worked out that I'll need the script to have the following functions:

  • Rename the Computer only if a parameter is passed to the script or if a value exists in the task sequence variable OSDComputername. If neither is true then do nothing.
  • Join a new Workgroup only if a parameter is passed to the script or if a value exists in the task sequence variable JoinWorkgroup. If neither is true then do nothing.

The first thing I need to do is create task sequence variables for testing outside of MDT. For this I will need the PowerShell drives TSEnv and TSEnvlist. Fortunately, there's a module that can create these this for me. After which I can create the test variables manually.

To set this up, first copy the folders Microsoft.BDD.TaskSequenceModule and ZTIUtility from your deployment share \tools\modules folder to your Powershell modules folder.

Now you can add the line Import-Module ZTIUtility to your script and it will create your PSDrives for you.

In my case, I want to test that my script works with the OSDComputername set to CON-LAB1. From a PowerShell console I import the ZTIUtility module and set the variable. These 2 lines will do the trick.

  Import-Module ZTIUtility  $TSEnv:OSDcomputername="CON-LAB1"  

I can add/change a variable by using this example.

$TSEnv:OSDcomputername ="CON-LAB1″

I can call/test the variable in a number of ways. For example, by typing $TSEnv:OSDcomputername 

Next, after a moment in the script editor I've add my script changes, this is how my script looks now.

  Param (   [String]$Name = $TSEnv:OSDComputername,   [String]$WorkGroupName  )    Begin{  $DebugPreference="Continue"  Import-Module ZTIUtility  }  Process{  If ($Name) {   # Rename the Computer using WMI   # (Get-WmiObject win32_computersystem).rename($Name)   Write-Debug "RUN COMMAND - Computer was renamed to $Name"   }  # If the WorkGroupName variable has no value passed to the script.   If (!($WorkGroupName)) {   Write-Debug "WorkGroupName variable has no value passed to the script."  # If the Task Sequence variable JoinWorkgroup has a value.   If ($TSEnv:JoinWorkgroup) {   Write-Debug "Task Sequence variable JoinWorkgroup has a value."   [String]$WorkGroupName = $TSEnv:JoinWorkgroup   }   }     # Join a Workgroup   # If the WorkGroupName variable has a value.   If ($WorkGroupName) {   Write-Debug "WorkGroupName variable has a value."   # Add-Computer -WorkGroupName $WorkGroupName -WarningAction SilentlyContinue   Write-Debug "RUN COMMAND - Joined the Workgroup $WorkGroupName"   }  }  End{}  

In my next post, I walk through a testing matrix.

More DCM basics on SCCM 2012

Posted: 25 Sep 2012 12:39 PM PDT

Satish's post: Compliance Settings SCCM 2012

http://blogs.msdn.com/b/scom_2012_upgrade_process__lessons_learned_during_my_upgrade_process/archive/2012/09/21/compliance-settings-sccm-2012.aspx

I came across this post by Satish Pandita the other day and thought it was quite useful since I've posted a tutorial about DCM. It talks about compliance settings and goes into more detail than I did. There's 2 examples used in the post and it gives you great step by steps with screenshots (woohoo!) of how to get the examples set up as well as explanation on what to look out for in the logs when DCM isn't working the way you thought it would.

In example 1 it is about confirming whether or not a collection has the correct version of a software installed on it.

This is kind of like the SCCM version of Applocker or software restriction rules (depending on your client and server versions) but instead of actually affecting/restricting or remediating the problem, it just reports on whether the application version is compliant or not for that collection.

Example 2 is about using a powershell script to check the status of a service. Kind of like how we can use sc.exe in a batch to check a service status etc.

Again, this is just for reporting, although it is mentioned that you can use a remediation script if you chose to.

At the end of the post, Satish references the 4 logs to look at for troubleshooting compliancy issues:

DCMAgent.log
CIAgent.log
CMReporting.log
DcmWmiProvider.log

These are good logs to look at to make sure your clients have pulled and applied the configuration item/baseline.

How to Make a Bootable USB Key

Posted: 25 Sep 2012 07:56 AM PDT

  1. Insert your USB (4GB+ preferable) stick to the system and backup all the data from the USB as we are going to format the USB to make it as bootable.
  2. Open elevated Command Prompt. To do this, type in CMD in Start menu search field and hit Ctrl + Shift + Enter. Alternatively, navigate to Start > All programs >Accessories > right click on Command Prompt and select run as administrator.
  3. When the Command Prompt opens, enter the following command:

     DISKPART and hit enter.
     LIST DISK and hit enter.

Once you enter the LIST DISK command, it will show the disk number of your USB drive.  Note the disk number for the USB drive.

4.  In this step you need to enter all the below commands one by one and hit enter.

     SELECT DISK 1 (Replace DISK 1 with your USB disk number if different)
     CLEAN
     CREATE PARTITION PRIMARY
     SELECT PARTITION 1
     ACTIVE
     FORMAT FS=NTFS QUICK
     ASSIGN
     EXIT

5.  Exit the Command Prompt

6.  Create Boot Media via SCCM wizard.

LTI/ZTI PowerShell: Debugging Scripts (Part 1 of 3)

Posted: 24 Sep 2012 09:00 PM PDT

Adding new functions and features to a perfectly good script is common practice. One example is my evolving Rename-Computer script. I want to modify the way it works (again) but I don't want to rename my computer and join a workgroup every time I test the script.

Using Write-Debug lines

One method I use when testing such a script is to neutralise it by replacing code with debug lines. I can then run the script and simulate the outcome. Here's an example

  Param (   [String]$Name = $TSEnv:OSDComputername,   [String]$WorkGroupName = $TSEnv:JoinWorkgroup  )  Begin{  $DebugPreference="Continue"  }  Process{   # Rename the Computer using WMI   # (Get-WmiObject win32_computersystem).rename($Name)   Write-Debug "RUN COMMAND - Computer was renamed to $Name"  # Add the computer to a new workgroup  # Add-Computer -WorkGroupName $WorkGroupName -WarningAction SilentlyContinue   Write-Debug "RUN COMMAND - Joined the Workgroup $WorkGroupName"  }  End{}  

I've commented out the active commands and added Write-Debug commands below them. I've also activated the DebugPreference feature by adding the line $DebugPreference="Continue" to the start of the script.

With this technique, I can test the logic of my code in a harmless environment while saving myself hours in reboots.

LTI/ZTI PowerShell: Testing Script Parameters

Posted: 23 Sep 2012 09:00 PM PDT

Before running a parameterised script in your deployments, it's important to test that the tab completion is working. To do this, open a PowerShell console and type the script name and a hyphen then press the {tab} key.

Tab Completion

Your script should return the available script parameters and function just like a regular PowerShell cmdlet. This test will prove that your script will pass parameters correctly when run in a task sequence.

You can find out more about script parameters by typing Get-Help About_Parameters in a PowerShell console. Below is a basic construct  for a parameterised script.

  Param{   $Name,   $Value  }  Begin{}  Process{Write-Output "Values are $Name and $Value"}  End{}  

System Center Monitoring Pack for System Center 2012 SP1 Beta – Configuration Manager

Posted: 22 Sep 2012 08:28 AM PDT

if you have implemented System Center 2012 SP1 Beta in your lab environment now you can monitor SCCM 2012 SP1 beta with SCOM. Just download the beta MP from here.

Step into the #Microsoft System Center Virtual Labs for Free #sysctr #SCVMM #Cloud

Posted: 22 Sep 2012 02:17 AM PDT

 

Step into the System Center Virtual Labs for Free

It's simple: no complex setup or installation is required to try out System Center running in the full-featured TechNet Virtual Lab. You get a downloadable manual and a 90-minute block of time for each module. You can sign up for additional 90-minute blocks any time.

Getting Started

System Center 2012 Configuration Manager

System Center Configuration Manager 2007

Reports do not appear after installing Reporting Services Point role on SCCM 2012 Primary

Posted: 21 Sep 2012 11:02 AM PDT

I recently setup a new SCCM 2012 test lab for a customer. The customer wanted to test all aspects of SCCM 2012 including reporting. When I added Reporting Services Point role, I could see that it successfully installed by examining the srsrpsetup.log and looking for Installation was successful. However, the reports never showed up. I decided to take a look at the log for the role itself (srsrp.log). It was here that I found the problem. The log had an error that SQL Server Reporting Services was stopped. I opened up the SQL  Server  Configuration Manager. In it, I could see that the service start mode was set to automatic but the state was Stopped. I started it and the reports immediately started appearing.

SQL Server Reporting Services is stopped

SCCM 2012: Force SCCM Client Site assignment

Posted: 21 Sep 2012 08:16 AM PDT

SCCM 2012 Client is smart enough to do not connect to pre-2012 site servers even being set with SMSSITECODE=AUTO. In reality it may happen even when you specifically set the site name but have pre-2012 sites in the same boundaries.

Of course, the best solution is do not have overlapping boundaries for sites (at least for site assignment, as it is supported in 2012 now), but in some situations (especially during migration) it is not possible unfortunately…

Another approach is to force SCCM Client Site assignment via GPO.

Microsoft provides us with two templates located on installation media in \SMSSETUP\Tools\ConfigMgrADMTEmplates folder. One of them is used to force site assignment to SCCM Client. The idea is to use this template to create a GPO with WMI filters to get it applied to machines with SCCM 2012  client installed only.

1. Create a new GPO and Add Admin Template to it:

image

2. Enable the site assignment settings and save the GPO

image

3. Create WMI filter and assign it to the GPO. Note: the filter looks for the ccmexec.exe file in c:\Windows\CCM folder. If you have the Client installed somewhere else please change accordingly.

image

image

4. Link the GPO to an OU containing your computers

5. Run GPRESULT (GPRESULT –r for Windows 7) to see if GPO is applied

image

SCCM 2012 Migration Doc

Posted: 21 Sep 2012 01:42 AM PDT

This Post will help you to Download PDF document for basic concepts and graphical representation of SCCM 2012 Migration structure.

 

Download Room S426_427_PMGT378_Techdays 2012 – Day 2 – SCCM Migration.pdf for free – Ebookbrowse.com – Ebook Search & Free Ebook Downloads.

#SCCM / #ConfigMgr 2012 SP1 Beta Console Version Compatibility Issue

Posted: 20 Sep 2012 10:30 PM PDT

Quick post on console connectivity issue with SP1 Beta and RTM version. Error Configuration Manager

CBT Nugget SCCM 2012 Training Video is available for download from CBT Nugget

Posted: 20 Sep 2012 05:33 AM PDT

This Post Will help you to download CBT Nugget System center Configuration manager 2012 video from CBT Nugget Site .

I would recommend you to get the premium download from CBT Nugget SCCM 2012 training video's  to learn the full features Presented by respected CBT Nuggets trainer and Microsoft MVP Greg Shields, this series delivers a broad and deep exposure into Microsoft's ConfigMgr 2012.

http://www.cbtnuggets.com/it-training-videos/series/mcrsft_config_mngr

Technorati Tags: ,,,,,,

Rod Trent posted an update in the group System Center Service Manager: Service Manager 2012 webinar on November 14th with […]

Posted: 08 Nov 2012 11:59 AM PST

Rod Trent wrote a new post, Service Manager 2012 webinar on November 14th with real-world implementation

Posted: 08 Nov 2012 11:58 AM PST

ThumbnailOur first Service Manager 2012 webinar was a huge success.  Attendance was phenomenal and the positive responses about the quality of information was overwhelming.  Our 2nd Service Manager 2012 webinar is […]

Comments: 0

No hay comentarios:

Publicar un comentario

SCCM by Davis