October 2008 - Posts
Hotfix in question: The Win32_Environment WMI class does not return the value of the PATH environment variable if the variable consists of more than 1,024 characters on a Windows XP-based computer.
http://support.microsoft.com/kb/955988
This affects all version of Windows XP. Requires SP2 or newer. This hotfix updates this error and provides a newer version of Cimwin32.dll. This hotfix gives the newest version of WMI. Newer then all the rest.
We also ran into the issue that our MOF modification provided by www.sccmexpert.com was gathering the path. However, it was only gathering up to 255 characters. I am looking for a method beyond directly modifying the SQL tables on the primaries and their parents.
What is it? It is a completely free Developers Operating System for use exclusively with Cloud server farms. This is the first try by Microsoft to do something completely different. The idea is to get people to play and work with the product. That way in the future this can be sold for a profit.
Makes sense to me, develop a good OS so it will be adopted.
Source: http://www.microsoft.com/azure/default.mspx
Offical Annoucement: http://www.microsoft.com/presspass/press/2008/oct08/10-27PDCDay1PR.mspx
Channel 9 Video: http://channel9.msdn.com/posts/Charles/Manuvir-Das-Introducing-Windows-Azure/
Some features include:
- Hyper-V 2.0
- Live Migration
- Logical Processor Support
- Hot Add Remove Storage
- SLAT – Second Level Translation
- Dynamic Memory – across VMs
- Boot from VHD
- Terminal Services
- New API
- Connection Broker Extensibility
- Dynamic CPU allocation
- IP address virtualization
- Best Practices Analyzer
- Full MSI support
- New Management Features
- PowerShell 2.0
- Power Management
- Direct Access – No more VPN needed
- Branchoffice Cache
- Server Core - .NET, ASP.NET, PowerShell 2.0
Source: http://bink.nu/news/windows-server-2008-r2-overview-feature-overview.aspx
Source: http://blogs.technet.com/windowsserver/archive/2008/10/28/announcing-windows-server-2008-r2.aspx
Expected Feb – Apr of 2009
Source: http://blogs.technet.com/office_sustained_engineering/archive/2008/10/22/announcing-service-pack-2-sp2-for-the-2007-microsoft-office-system.aspx
For Office Desktop Programs:
· Improved Outlook Calendaring Reliability
· Improved Outlook Performance
· Enabling Object Model support for Charts in PowerPoint and Word
· Improved cryptographic functionality by supporting all cryptographic algorithms offered by the operating system
· Improved functionality in Excel’s charting mechanism
· Ability to ungroup SmartArt graphics (and as a result, the ability to add animations to them in PowerPoint)
· Ability for Visio to export UML models to an XML file compliant with the XMI standard
· Tool that enables the uninstall of Office client Service Packs
For Servers:
· Performance and manageability improvements to variations in Enterprise Content Management (ECM) including STSADM commands for repairing links between source and target pages
· Improvements around processing status approvals from Office Project Web Access into Office Project Professional 2007
· Improvements to read-only content databases and index rebuild timer jobs in Windows SharePoint Services 3.0

Can you say building blocks like DNA?
Anyone notice the menu option Open IME in various Microsoft products? Like in the IE7 search or address bar? Right click in either the editable region. Chances are when you select it nothing will happen. What is IME?
IME = Microsoft Global Input Methods Editors
Great, what is it for? IME is a program that allows complex character and symbol entry, East Asian characters, using a standard western keyboard.
Knowing is half the battle.
Reference: http://www.microsoft.com/windows/ie/ie6/downloads/recommended/ime/default.mspx
Recently discovered my Exchange mailbox was huge. Not my Inbox, rather my calendar. The following is how to determine the size of calendar items.
- Open Outlook
- Open Calendar
- View >> Arrange By >> Current View >> By Category
You will now have a grid view of your calendar items. No size column
- Right click on any column header >> Customize Current View
- Fields…
- Select available fields from: Drop down to All Mail Fields
- Available fields: select Size
- Add à
Success. You can now sort by calendar event size.
Once upon a time to do a WMI query you had to use one of the following:
- WMIC
- Cumbersome
- Must be an administrator
- WBEMTEST
- Make the popup windows stop
- CIM Studio
Now we have PowerShell. PowerShell allows a lot of formatting, but check out how easy it is to query WMI:
Note: Crtl+C breaks a query in PowerShell
1) Create the Query Object
$q = New-Object System.Management.ObjectQuery
2) Enter your Query
$q.QueryString = "Select * from Win32_MemoryDevice"
3) Create your searcher and pass the query
$s = New-Object System.Management.ManagementObjectSearcher($q)
4) Set your WMI Path
$s.Scope.Path = "\root\CIMv2"
Note: the proceeding slash for local machines
5) Run the query!
$s.Get()
Grab some useful info
$s.Get() | select Caption, EndingAddress
|
Caption |
EndingAddress |
| Memory Device |
2097151 |
| Memory Device |
2097151 |
Now lets do that again for a SMS 2003 or ConfigMgr 2007 WQL query!
1) Create the Query Object
$q = New-Object System.Management.ObjectQuery
2) Enter your Query
$q.QueryString = "Select * from SMS_R_System"
3) Create your searcher and pass the query
$s = New-Object System.Management.ManagementObjectSearcher($q)
4) Set your WMI Path
$s.Scope.Path = "\\ServerName\root\sms\site_SiteCode"
Note: the remote machine name. This is how you query remote workstations or server via WMI and PowerShell
5) Run the query!
$s.Get()
Grab some useful info
$s.Get() | Select Name, ClientVersion, OperatingSystemNameandVersion
Tip: this can potentially return a ton of information. You can reduce the returns by the following.
1 | foreach {$s.get()} | select name, resourceID
Source: "/\/\o\/\/ [MVP]" http://groups.google.nl/group/microsoft.public.windows.server.scripting/browse_thread/thread/7c0e03c992d507ac/2d8706e707d27965?lnk=st&q=get-content+of+large+files.&rnum=1&hl=en#2d8706e707d27965
Summary: Doing a WQL query via PowerShell is very easy assuming you have the rights to read the WMI.
The following is a continuation of: http://myitforum.com/cs2/blogs/scassells/archive/2008/05/20/powershell-sms-2003-configmgr-2007-scripting.aspx
COM object for the SMS 2003 control panel API
$a = New-Object -comobject cpapplet.cpappletmgr
Expose the member variables via Get-Member or GM $a | gm
| Name |
MemberType |
Definition |
| GetClientActions |
Method |
IClientActions GetClientActions () |
| GetClientComponents |
Method |
IClientComponents GetClientComponents () |
| GetClientProperties |
Method |
IClientProperties GetClientProperties () |
$a.GetClientActions() | Format-table ActionID, Name
| ActionID |
Name |
| {00000000-0000-0000-0000-000000000102} |
Software Inventory Collection Cycle |
| {00000000-0000-0000-0000-000000000107} |
MSI Product Source Update Cycle |
| {00000000-0000-0000-0000-000000000101} |
Hardware Inventory Collection Cycle |
| {00000000-0000-0000-0000-000000000104} |
Standard File Collection Cycle |
| {00000000-0000-0000-0000-000000000103} |
Discovery Data Collection Cycle |
| {3A88A2F3-0C39-45fa-8959-81F21BF500CE} |
Request & Evaluate User Policy |
| {8EF4D77C-8A23-45c8-BEC3-630827704F51} |
Request & Evaluate Machine Policy |
| {00000000-0000-0000-0000-000000000106} |
Software Metering Usage Report Cycle |
What are the members for GetClientActions()?
$a.GetClientActions() | gm
| Name |
MemberType |
Definition |
| PerformAction |
Method |
void PerformAction () |
| ActionID |
Property |
string ActionID () {get} |
| DisplayNameResDLL |
Property |
string DisplayNameResDLL () {get} |
| DisplayNameResID |
Property |
int DisplayNameResID () {get} |
| Name |
Property |
string Name () {get} |
To Trigger these actions:
Perform a software inventory:
$a.GetClientActions() |? {$_.name -like 'Soft*Inv*'} |% {$_.PerformAction()}
Perfom a Hardware Inventory: (no shortcuts)
(New-Object –COMObject CPApplet.cpappletmgr).GetClientActions() |? {$_.Name –like ‘Hardware*’} |% {$_.PerformAction()}
There are two versions of Cscript.exe on a 64-bit version of Windows XP.
x32
- %SystemRoot%\SysWow64\cscript.exe
x64
- %SystemRoot%\System32\cscript.exe
Some scripts will fail if they use the wrong native scripting host.