Difference between revisions of "Push Install WPKG with Psexec"
Mellerbeck (Talk | contribs) m (save) |
Mellerbeck (Talk | contribs) |
||
Line 1: | Line 1: | ||
− | + | It is usefull to first grab a list of all of the computers in your domain. This vb script will do so (copy and past it into notepad and then save as getcomputers.vbs) | |
+ | |||
+ | ***********Script************* | ||
+ | |||
+ | Const ADS_SCOPE_SUBTREE = 2 | ||
+ | |||
+ | set fs = CreateObject("Scripting.FileSystemObject") | ||
+ | set textstream = fs.CreateTextFile("hosts.xml", True) | ||
+ | Set rootDSE = GetObject("LDAP://RootDSE") | ||
+ | domainContainer = rootDSE.Get("defaultNamingContext") | ||
+ | |||
+ | Set objConnection = CreateObject("ADODB.Connection") | ||
+ | Set objCommand = CreateObject("ADODB.Command") | ||
+ | objConnection.Provider = "ADsDSOObject" | ||
+ | objConnection.Open "Active Directory Provider" | ||
+ | |||
+ | Set objCOmmand.ActiveConnection = objConnection | ||
+ | objCommand.CommandText = _ | ||
+ | "Select Name, distinguishedName from 'LDAP://" & domainContainer & "' " _ | ||
+ | & "Where objectClass='computer'" | ||
+ | objCommand.Properties("Page Size") = 1000 | ||
+ | objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE | ||
+ | Set objRecordSet = objCommand.Execute | ||
+ | objRecordSet.MoveFirst | ||
+ | |||
+ | Do Until objRecordSet.EOF | ||
+ | 'Wscript.Echo "Computer Name: " & objRecordSet.Fields("Name").Value | ||
+ | 'Wscript.Echo "distinguishedName: " & objRecordSet.Fields("distinguishedName").Value | ||
+ | arrPath = Split(objRecordSet.Fields("distinguishedName").Value, ",") | ||
+ | strOU = "" | ||
+ | for each a in arrPath | ||
+ | if left(a,2) = "OU" Then | ||
+ | strOU = "/" & right(a,len(a) - 3) & strOU | ||
+ | End If | ||
+ | Next | ||
+ | 'Wscript.Echo "Path: " & StrOU | ||
+ | textstream.WriteLine objRecordSet.Fields("Name").Value | ||
+ | objRecordSet.MoveNext | ||
+ | Loop | ||
+ | textstream.close | ||
+ | Wscript.Echo "Finished..." | ||
+ | |||
+ | ************End Script*************** | ||
+ | |||
+ | Ok, so that will save a file called hosts.xml. Edit it to remove any computer names that you don't want to install WPKG on. Copy this file to your root c:\ | ||
+ | |||
+ | Download PStools. http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx | ||
+ | |||
+ | To make it easy, install it to the root of your c:\ drive. | ||
+ | |||
+ | Download the WPKG clientt http://www1.wpkg.org/files/client/stable/WPKG%20Client%201.2.1.msi | ||
+ | |||
+ | and copy it over to a remote share. Also, copy over your settings file to the same remote share. | ||
+ | |||
+ | When you are ready to install, execute this psexec command: (Replacing yourdomain, adminuser, yourpassword, and yourserver with your values) | ||
+ | |||
+ | c:\psexec -y yourdomain\adminuser -p yourpassword @hosts.xml -s -d msiexec /i "\\yourserver\wpkg\WPKG Client 1.2.1.msi" /qb SETTINGSFILE=\\yourserver\wpkg\settings.xml | ||
+ | |||
+ | This will then install WPKG on any of these clients that happen to be on at the time :) |
Revision as of 18:32, 17 December 2008
It is usefull to first grab a list of all of the computers in your domain. This vb script will do so (copy and past it into notepad and then save as getcomputers.vbs)
- Script*************
Const ADS_SCOPE_SUBTREE = 2
set fs = CreateObject("Scripting.FileSystemObject") set textstream = fs.CreateTextFile("hosts.xml", True) Set rootDSE = GetObject("LDAP://RootDSE") domainContainer = rootDSE.Get("defaultNamingContext") Set objConnection = CreateObject("ADODB.Connection") Set objCommand = CreateObject("ADODB.Command") objConnection.Provider = "ADsDSOObject" objConnection.Open "Active Directory Provider" Set objCOmmand.ActiveConnection = objConnection objCommand.CommandText = _ "Select Name, distinguishedName from 'LDAP://" & domainContainer & "' " _ & "Where objectClass='computer'" objCommand.Properties("Page Size") = 1000 objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE Set objRecordSet = objCommand.Execute objRecordSet.MoveFirst Do Until objRecordSet.EOF 'Wscript.Echo "Computer Name: " & objRecordSet.Fields("Name").Value 'Wscript.Echo "distinguishedName: " & objRecordSet.Fields("distinguishedName").Value arrPath = Split(objRecordSet.Fields("distinguishedName").Value, ",") strOU = "" for each a in arrPath if left(a,2) = "OU" Then strOU = "/" & right(a,len(a) - 3) & strOU End If Next 'Wscript.Echo "Path: " & StrOU textstream.WriteLine objRecordSet.Fields("Name").Value objRecordSet.MoveNext Loop textstream.close Wscript.Echo "Finished..."
- End Script***************
Ok, so that will save a file called hosts.xml. Edit it to remove any computer names that you don't want to install WPKG on. Copy this file to your root c:\
Download PStools. http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx
To make it easy, install it to the root of your c:\ drive.
Download the WPKG clientt http://www1.wpkg.org/files/client/stable/WPKG%20Client%201.2.1.msi
and copy it over to a remote share. Also, copy over your settings file to the same remote share.
When you are ready to install, execute this psexec command: (Replacing yourdomain, adminuser, yourpassword, and yourserver with your values)
c:\psexec -y yourdomain\adminuser -p yourpassword @hosts.xml -s -d msiexec /i "\\yourserver\wpkg\WPKG Client 1.2.1.msi" /qb SETTINGSFILE=\\yourserver\wpkg\settings.xml
This will then install WPKG on any of these clients that happen to be on at the time :)