Video Screencast Help
Endpoint Management Community Blog
Showing posts tagged with Server Management Suite
Showing posts in English
R-Vijay | 10 Dec 2007 | 11 comments

Using Wisecomcapture is always the best option to use when registering a DLL. See this article for some background.

But, if there is a case when the DLL doesn't exist in the package and there is a necessity to register a file manually, this tip should prove handy.

To manually register a .DLL using regsvr32.exe in a .MSI package:

Step 1: Go to MSI Script in the WSI project.
Add an Execute Program from Destination custom action after InstallFinalize in the Execute Immediate tab.
The Execute Program From Destination dialog appears.

Step 2: Fill in the following information:
Custom Action Name: <registerdll>
Working Directory: Enter SystemFolder
EXE and Command Line: Enter the full path to regsvr32.exe and the full path to .DLL.
Example: [SystemFolder]regsvr32.exe [WindowsFolder]123.DLL

Step 3: Accept all other defaults and click OK.


R-Vijay | 07 Dec 2007 | 0 comments

The internal version number for Windows Vista is 6.0. The GetVersion function returns this version number. The problem is, some applications will return a higher version number. This means trouble. Learn how to steer clear, here.

Symptoms of OS Version

  • Applications that check for OS version will get higher version number.
  • Application installers may prevent themselves from installing the app and apps may prevent themselves from starting.
  • Applications may warn users and continue to function properly.

Mitigation Techniques for OS Version

  • For apps and installers that check for OS version, a Compatibility mode is provided in Windows Vista
  • Users can right right-click the shortcut or the EXE and apply the Windows XP SP2 compatibility mode from the Compatibility tab. This applies multiple shims including "WinXPSP2VersionLie"
  • Better: Apply the shim "WinXPSP2VersionLie"
  • In many cases, applications...
kmieciooo | 06 Dec 2007 | 2 comments

Sometimes there is a need to slow down a software deployment. I had it once -- when deploying encryption software. In my case the problem was main encryption server -- which was not able to process more than 50 events from clients.

Here's how to sloooooow your deployment down a bit.

I was wondering how to deploy it slower to my more than 1000 machines. SQL helped me with simple solution -- which is -- using a SELECT TOP query in the target collection.

Simply create your target collection using the SELECT TOP ... query and it will be updated in next collection update cycle.

Enjoy your slow uptake ;-)

dougj | 20 Nov 2007 | 2 comments

After much research, we have found that it is possible to capture the configured speed of network cards. This is found in the root\WMI namespace in the MSNdis_LinkSpeed class.

Note that the link speed is the configured speed regardless of whether it is automatically or manually configured.

Also, the speed is in KB and the right-most digit is a single decimal. That means that 100000 is 10,000.0 KB/S.

Here is a sample custom inventory source:

<InventoryClass name='linkspeed' manufacturer='Altiris' description='' version='1.0' platform='Win32' mifClass='Altiris|MyCustomClass|1.0'>
<xml xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema">
<s:Schema id="RowsetSchema">
<s:ElementType name="row" content="eltOnly" rs:updatable="true">
<s:AttributeType name="c0" rs:name="Active" rs:number="...
dougj | 08 Nov 2007 | 4 comments

It has been found that, on occassion, AeXSNPlus can return more than one serial number. One such case is when a laptop is plugged into a docking station and snplus captures one serial number for the laptop and a second for the docking station. It is possible for the docking station serial number to be incorrectly reported as the laptop's serial number.

A filter for aexsnplus.exe can be created to ensure the docking station serial number is excluded.

Suppose that the docking serial number begins with "00C0".

  1. Create an ini file with the following contents and place it in the Inventory Solution package directory. By default, this is: C:\Program Files\Altiris\Notification Server\NSCap\Bin\Win32\X86\Inventory Solution. We'll assume that the ini file is named 'exclude_dockingstation.ini'.
  2. Modify the aexinvsoln*.ini file(s) that contains the applicable aexsnplus.exe...
R-Vijay | 19 Oct 2007 | 0 comments

Gacutil must not be called from a custom action. Gacutil is not designed to be used during installation.

Gacutil.exe works, but it is a developer tool, and developer tools go into SDKs and not runtime packages typically. It isn't really appropriate to put more tools into the runtime because that causes it to get larger, which makes it more difficult for applications to redistribute because of increased download size, etc.

In general, installing an assembly to the GAC is an application deployment activity, and is most often done during application setup. One should use Windows Installer to install your application. Starting with version 2.0, Windows Installer has built-in functionality to install assemblies to the GAC - the MsiAssembly and MsiAssemblyName tables in particular.

Its always better to use a MSI as an installer and directly authoring files, registry and GAC installation steps using built-in Windows Installer functionality instead of using a batch...

R-Vijay | 15 Oct 2007 | 3 comments

Here's a command you can use to assign permissions to a registry key. You can write this action using VBScript or WiseScript. As this script needs admin privileges to work, run this action in system context in deffered execution.

SetACL.exe -on "hklm\software\microsoft\policies" -ot reg -actn ace
-ace "n:domain1\user1;p:full"

This command sets 'full' permissions on the registry key 'HKEY_LOCAL_MACHINE\Software\Microsoft\Policies' for user 'user1' in domain 'domain1'.

Vijay Raj

R-Vijay | 02 Oct 2007 | 1 comment

You can use the Windows Installer to detect missing components or files and then reinstall features containing the missing components. Because the installer installs features, and not components, it must first resolve to which component a missing file belongs and then install the feature containing that component.

If more than one feature is linked to that component, the installer installs the feature requiring the least disk space. Calling MsiGetComponentPath verifies that the key file of a component is present; however, it is still possible that other files belonging to the component are missing.

In this case, call MsiInstallMissingFile. The installer then resolves to which component the file belongs and installs the feature that is linked to the component that requires the least disk space. If the MsiGetComponentPath function...

dougj | 28 Sep 2007 | 0 comments

Here's a sample vbscript to use in Custom Inventory for Windows to convert a datetime stamp to NSDatetime format. It doesn't have all possible error checking, but it does have the main conversion logic. The entire vbscript will create an NSI file directly.

 Attribute definition: 

  objTextFile.WriteLine("<s:AttributeType name=""c1"" rs:name=""DateCreated"" rs:number=""2"" rs:keycolumn=""true"" mifAttrId='2'>")
  objTextFile.WriteLine("  <s:datatype dt:type=""dateTime""/>")

Call to function in rs:data section: 

  "c1="""  + nsDate(CStr(objFile.DateCreated)) + """" _ 

Function to convert the date: 

function nsDate(curDate)
  'remove " AM" and " PM" from the end of the value
  cd = Mid(curDate,1,len(curDate)-3)
 'Separate date & time values
  pos=InStr(cd," ")
Andrew Souter | 27 Sep 2007 | 3 comments

There is a known problem that sometimes arises when using Summary report definition. The COUNT does not report correctly but when drilling down the next level of the report is correct. For example the summary level of the report might show 58 computers of a particular operating system but when you drill down there are 65 computers listed, which is the correct number.

The issue usually surfaces when selecting data from multiple tables. To limit the data to the resource type selected, a view called vResourceEx is used. When fields are selected from the other tables the combining of the data from the view and the other tables is not done properly. It is simple to correct the problem with just a few steps using the Advanced edit button which opens the Report Query Builder.

  1. Open a summary report
  2. Click Edit this report....