Goto Microsoft for the detail for the complete tier model
Think about it …
For every 1603 in the World
Goto Microsoft for the detail for the complete tier model
Think about it …
A method to create and install the basic Office containing only the English language and the add more languages later through separate deployments.
1 2 3 4 5 6 7 8 9 10 11 |
<Configuration ID="GUID"> <Add OfficeClientEdition="64" Channel="Broad"> <Product ID="O365ProPlusRetail"> <Language ID="en-us" /> <ExcludeApp ID="Groove" /> <ExcludeApp ID="OneDrive" /> </Product> </Add> <Display Level="None" AcceptEULA="TRUE" /> <Logging Level="Standard" Path="%TEMP%" /> </Configuration> |
Below is an example of a language.xml file, here are some Scandinavian languages added.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<Configuration ID="GUID"> <Add OfficeClientEdition="64" Channel="Broad"> <Product ID="LanguagePack"> <Language ID="sv-se" /> <Language ID="da-dk" /> <Language ID="nb-no" /> <Language ID="fi-fi" /> <Language ID="is-is" /> </Product> </Add> <Display Level="None" AcceptEULA="TRUE" /> <Logging Level="Standard" Path="%TEMP%" /> </Configuration> |
It’s also possible to use the MatchOS parameter. This will install the same language for Office as running on the OS. Use the fallback or AllowCdnFallback if running in an multi-language environment to minimize the number of languages.
1 2 3 4 5 6 7 8 9 10 |
<Configuration ID="GUID"> <Add OfficeClientEdition="64" Channel="Broad" AllowCdnFallback="True"> <Product ID="LanguagePack"> <Language ID="MatchOS" /> <Fallback="en-us" /> </Product> </Add> <Display Level="None" AcceptEULA="TRUE" /> <Logging Level="Standard" Path="%TEMP%" /> </Configuration> |
Ways to traverse directories in PowerShell, just like the old-skool “dir /s” command, with a little PowerShell spice on top.
1 2 3 4 |
Get-ChildItem -Recurse Get-ChildItem -Recurse | Select-Object Name Get-ChildItem -Filter *.png -Recurse Get-ChildItem -Include *.txt, *.png -Recurse | Select-Object FullName |
Today I’ve encountered something new in my work on the Windows x64 platform.
First:
On a 64 bit Windows 10 platform you have:
Now:
In working with Quest Kace, I’ve discovered a new “folder”. Well it not a folder as such.
I’ve created a script where I need to reset the Windows Update Agent and force it to register with WSUS.
As soon as the script executed from Kace, if failed at the ‘wuauclt.exe’ command: ‘File not found’. I then added the full path to the file ‘C:\Windows\System32\wuauclt.exe’ – Still: ‘File not found’. I used PSexec and looked inside the ‘C:\Windows\System32’ folder, and to my surprise there were no ‘wuauclt.exe’ file, but I could see it in a regular CMD running as admin or as a regular user.
Then an old colleague told me about the ‘SysNative’ folder, as if the whole world knew what that was!
On a 64 bit platform, there is a new “folder” called ‘SysNative’, that points around the ‘File System Redirector’ and will give you access to the correct system folder, in my case ‘System32’.
So, I changed my script to use the new “folder” ‘%WinDir%\SysNative\wuauclt.exe’, and it worked like a charm.
Well, you learn something new everyday!
In Windows 10, the way to set the a default program or a file association is done with a .xml file and a Group Policy setting, when the computer is joined a domain – otherwise you do it manually.
On a reference computer, setup the program and file association as needed and then export the result:
1 |
DISM /Online /Export-DefaultAppAssociations:<path>\appAssoc.xml |
Edit the .xml file to contain the settings you wish to apply to your computer clients. It is not recommended that you use it “as-is”.
Below is my default appAssoc.xml file containing Outlook and Internet Explorer as default apps on a computer.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
<?xml version="1.0" encoding="UTF-8"?> <DefaultAssociations> <Association Identifier=".eml" ProgId="Outlook.File.eml.15" ApplicationName="Outlook 2016" /> <Association Identifier=".hol" ProgId="Outlook.File.hol.15" ApplicationName="Outlook 2016" /> <Association Identifier=".ics" ProgId="Outlook.File.ics.15" ApplicationName="Outlook 2016" /> <Association Identifier=".msg" ProgId="Outlook.File.msg.15" ApplicationName="Outlook 2016" /> <Association Identifier=".oft" ProgId="Outlook.File.oft.15" ApplicationName="Outlook 2016" /> <Association Identifier=".pst" ProgId="Outlook.File.pst.15" ApplicationName="Outlook 2016" /> <Association Identifier=".vcf" ProgId="Outlook.File.vcf.15" ApplicationName="Outlook 2016" /> <Association Identifier=".vcs" ProgId="Outlook.File.vcs.15" ApplicationName="Outlook 2016" /> <Association Identifier="feed" ProgId="Outlook.URL.feed.15" ApplicationName="Outlook 2016" /> <Association Identifier="feeds" ProgId="Outlook.URL.feed.15" ApplicationName="Outlook 2016" /> <Association Identifier="mailto" ProgId="Outlook.URL.mailto.15" ApplicationName="Outlook 2016" /> <Association Identifier="stssync" ProgId="Outlook.URL.stssync.15" ApplicationName="Outlook 2016" /> <Association Identifier="webcal" ProgId="Outlook.URL.webcal.15" ApplicationName="Outlook 2016" /> <Association Identifier="webcals" ProgId="Outlook.URL.webcal.15" ApplicationName="Outlook 2016" /> <Association Identifier=".htm" ProgId="htmlfile" ApplicationName="Internet Explorer" /> <Association Identifier=".html" ProgId="htmlfile" ApplicationName="Internet Explorer" /> <Association Identifier=".mht" ProgId="IE.AssocFile.MHT" ApplicationName="Internet Explorer" /> <Association Identifier=".mhtml" ProgId="IE.AssocFile.MHT" ApplicationName="Internet Explorer" /> <Association Identifier=".partial" ProgId="IE.AssocFile.PARTIAL" ApplicationName="Internet Explorer" /> <Association Identifier=".svg" ProgId="IE.AssocFile.SVG" ApplicationName="Internet Explorer" /> <Association Identifier=".url" ProgId="IE.AssocFile.URL" ApplicationName="Internet Browser" /> <Association Identifier=".website" ProgId="IE.AssocFile.WEBSITE" ApplicationName="Internet Explorer" /> <Association Identifier=".xht" ProgId="IE.AssocFile.XHT" ApplicationName="Internet Explorer" /> <Association Identifier=".xhtml" ProgId="IE.AssocFile.XHT" ApplicationName="Internet Explorer" /> <Association Identifier="ftp" ProgId="IE.FTP" ApplicationName="Internet Explorer" /> <Association Identifier="http" ProgId="IE.HTTP" ApplicationName="Internet Explorer" /> <Association Identifier="https" ProgId="IE.HTTPS" ApplicationName="Internet Explorer" /> <Association Identifier="mk" ProgId="IE.HTTP" ApplicationName="Internet Explorer" /> <Association Identifier="res" ProgId="IE.HTTP" ApplicationName="Internet Explorer" /> </DefaultAssociations> |
If you wish to add an Adobe product as default PDF reader, Adobe has created a ‘how to’ guide … Read it here
Now copy the .xml file to a network location where all your computers can get a hold on the file, eg. %NETLOGON%\ClientApps\appAssoc.xml
In an relevant Group Policy, go to [Computer Configuration], [Administrative Templates], [Windows Components], [File Explore] and select the [Set a default associations configuration file] setting. Enable it and hereafter enter the path and file name, of the location of the .xml file.
At next reboot the new program and file association should be effective.
Ever needed to know if a reboot is pending on your computer? Try this Microsoft/Scripting Guy PowerShell script, and you’ll know!
Copy the code below and save as .ps1 file, and execute at your convenience.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 |
Function Get-PendingReboot { <# .SYNOPSIS Gets the pending reboot status on a local or remote computer. .DESCRIPTION This function will query the registry on a local or remote computer and determine if the system is pending a reboot, from either Microsoft Patching or a Software Installation. For Windows 2008+ the function will query the CBS registry key as another factor in determining pending reboot state. "PendingFileRenameOperations" and "Auto Update\RebootRequired" are observed as being consistant across Windows Server 2003 & 2008. CBServicing = Component Based Servicing (Windows 2008) WindowsUpdate = Windows Update / Auto Update (Windows 2003 / 2008) CCMClientSDK = SCCM 2012 Clients only (DetermineIfRebootPending method) otherwise $null value PendFileRename = PendingFileRenameOperations (Windows 2003 / 2008) .PARAMETER ComputerName A single Computer or an array of computer names. The default is localhost ($env:COMPUTERNAME). .PARAMETER ErrorLog A single path to send error data to a log file. .EXAMPLE PS C:\> Get-PendingReboot -ComputerName (Get-Content C:\ServerList.txt) | Format-Table -AutoSize Computer CBServicing WindowsUpdate CCMClientSDK PendFileRename PendFileRenVal RebootPending -------- ----------- ------------- ------------ -------------- -------------- ------------- DC01 False False False False DC02 False False False False FS01 False False False False This example will capture the contents of C:\ServerList.txt and query the pending reboot information from the systems contained in the file and display the output in a table. The null values are by design, since these systems do not have the SCCM 2012 client installed, nor was the PendingFileRenameOperations value populated. .EXAMPLE PS C:\> Get-PendingReboot Computer : WKS01 CBServicing : False WindowsUpdate : True CCMClient : False PendComputerRename : False PendFileRename : False PendFileRenVal : RebootPending : True This example will query the local machine for pending reboot information. .EXAMPLE PS C:\> $Servers = Get-Content C:\Servers.txt PS C:\> Get-PendingReboot -Computer $Servers | Export-Csv C:\PendingRebootReport.csv -NoTypeInformation This example will create a report that contains pending reboot information. .LINK Component-Based Servicing: http://technet.microsoft.com/en-us/library/cc756291(v=WS.10).aspx PendingFileRename/Auto Update: http://support.microsoft.com/kb/2723674 http://technet.microsoft.com/en-us/library/cc960241.aspx http://blogs.msdn.com/b/hansr/archive/2006/02/17/patchreboot.aspx SCCM 2012/CCM_ClientSDK: http://msdn.microsoft.com/en-us/library/jj902723.aspx .NOTES Author: Brian Wilhite Email: bcwilhite (at) live.com Date: 29AUG2012 PSVer: 2.0/3.0/4.0/5.0 Updated: 01DEC2014 UpdNote: Added CCMClient property - Used with SCCM 2012 Clients only Added ValueFromPipelineByPropertyName=$true to the ComputerName Parameter Removed $Data variable from the PSObject - it is not needed Bug with the way CCMClientSDK returned null value if it was false Removed unneeded variables Added PendFileRenVal - Contents of the PendingFileRenameOperations Reg Entry Removed .Net Registry connection, replaced with WMI StdRegProv Added ComputerPendingRename #> [CmdletBinding()] param( [Parameter(Position=0,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] [Alias("CN","Computer")] [String[]]$ComputerName="$env:COMPUTERNAME", [String]$ErrorLog ) Begin { }## End Begin Script Block Process { Foreach ($Computer in $ComputerName) { Try { ## Setting pending values to false to cut down on the number of else statements $CompPendRen,$PendFileRename,$Pending,$SCCM = $false,$false,$false,$false ## Setting CBSRebootPend to null since not all versions of Windows has this value $CBSRebootPend = $null ## Querying WMI for build version $WMI_OS = Get-WmiObject -Class Win32_OperatingSystem -Property BuildNumber, CSName -ComputerName $Computer -ErrorAction Stop ## Making registry connection to the local/remote computer $HKLM = [UInt32] "0x80000002" $WMI_Reg = [WMIClass] "\\$Computer\root\default:StdRegProv" ## If Vista/2008 & Above query the CBS Reg Key If ([Int32]$WMI_OS.BuildNumber -ge 6001) { $RegSubKeysCBS = $WMI_Reg.EnumKey($HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\") $CBSRebootPend = $RegSubKeysCBS.sNames -contains "RebootPending" } ## Query WUAU from the registry $RegWUAURebootReq = $WMI_Reg.EnumKey($HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\") $WUAURebootReq = $RegWUAURebootReq.sNames -contains "RebootRequired" ## Query PendingFileRenameOperations from the registry $RegSubKeySM = $WMI_Reg.GetMultiStringValue($HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\","PendingFileRenameOperations") $RegValuePFRO = $RegSubKeySM.sValue ## Query ComputerName and ActiveComputerName from the registry $ActCompNm = $WMI_Reg.GetStringValue($HKLM,"SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName\","ComputerName") $CompNm = $WMI_Reg.GetStringValue($HKLM,"SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName\","ComputerName") If ($ActCompNm -ne $CompNm) { $CompPendRen = $true } ## If PendingFileRenameOperations has a value set $RegValuePFRO variable to $true If ($RegValuePFRO) { $PendFileRename = $true } ## Determine SCCM 2012 Client Reboot Pending Status ## To avoid nested 'if' statements and unneeded WMI calls to determine if the CCM_ClientUtilities class exist, setting EA = 0 $CCMClientSDK = $null $CCMSplat = @{ NameSpace='ROOT\ccm\ClientSDK' Class='CCM_ClientUtilities' Name='DetermineIfRebootPending' ComputerName=$Computer ErrorAction='Stop' } ## Try CCMClientSDK Try { $CCMClientSDK = Invoke-WmiMethod @CCMSplat } Catch [System.UnauthorizedAccessException] { $CcmStatus = Get-Service -Name CcmExec -ComputerName $Computer -ErrorAction SilentlyContinue If ($CcmStatus.Status -ne 'Running') { Write-Warning "$Computer`: Error - CcmExec service is not running." $CCMClientSDK = $null } } Catch { $CCMClientSDK = $null } If ($CCMClientSDK) { If ($CCMClientSDK.ReturnValue -ne 0) { Write-Warning "Error: DetermineIfRebootPending returned error code $($CCMClientSDK.ReturnValue)" } If ($CCMClientSDK.IsHardRebootPending -or $CCMClientSDK.RebootPending) { $SCCM = $true } } Else { $SCCM = $null } ## Creating Custom PSObject and Select-Object Splat $SelectSplat = @{ Property=( 'Computer', 'CBServicing', 'WindowsUpdate', 'CCMClientSDK', 'PendComputerRename', 'PendFileRename', 'PendFileRenVal', 'RebootPending' )} New-Object -TypeName PSObject -Property @{ Computer=$WMI_OS.CSName CBServicing=$CBSRebootPend WindowsUpdate=$WUAURebootReq CCMClientSDK=$SCCM PendComputerRename=$CompPendRen PendFileRename=$PendFileRename PendFileRenVal=$RegValuePFRO RebootPending=($CompPendRen -or $CBSRebootPend -or $WUAURebootReq -or $SCCM -or $PendFileRename) } | Select-Object @SelectSplat } Catch { Write-Warning "$Computer`: $_" ## If $ErrorLog, log the file to a user specified location/path If ($ErrorLog) { Out-File -InputObject "$Computer`,$_" -FilePath $ErrorLog -Append } } }## End Foreach ($Computer in $ComputerName) }## End Process End { }## End End }## End Function Get-PendingReboot |
Source: Microsoft Script Center
Windows 10 has toombed yet another function within Windows, and now the ‘wuauclt’ command line tools is dead. To replace the old tool, Microsoft has created a brand new Windows Update tool called: ‘usoClient’.
The ‘usoClient’ is a part of the new Windows 10 Update Orchestrator family and is located in the System32 folder, and like ‘wuauclt’ the ‘usoClient’ can do a lot of cool Windows Update stuff.
Switch | Description |
---|---|
StartScan | Use this to Start Scan |
StartDownload | Use this to Start Download of Updates |
StartInstall | Use this to Install Downloaded Updates |
RefreshSettings | Use this to Refresh Settings if any changes were made |
RestartDevice | Use this to Restart the device to finish the installation of Updates |
ScanInstallWait | Use this to Combine Scan-Download-Install |
ResumeUpdate | Use this to Resume Update Installation On Boot |
The ‘day-to-day’ Update Orchestrator actions are controlled from Task Scheduler -> Microsoft -> Windows -> UpdateOrchestrator
Happy updating.
Source: omgdebugging.com
Custom xml file for a Microsoft Office 365 Click-to-run additional language installation. This will add selected languages to an already existing Office 365 installation.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<Configuration> <Add OfficeClientEdition="32" Channel="Monthly"> <Product ID="LanguagePack"> <Language ID="sv-se" /> <Language ID="fr-fr" /> <Language ID="de-de" /> <Language ID="pt-br" /> <Language ID="da-dk" /> <Language ID="nb-no" /> </Product> </Add> <Display Level="None" AcceptEULA="TRUE" /> <Logging Level="Standard" Path="%TEMP%" /> </Configuration> |
Note: The first language in the list will be the language that the existing Office Start Menu items will be transformed into. In this example, the Start Menu shortcuts for Skype for Business, OneDrive for Business and the Tools folder will be translated into Swedish.
Custom download and install xml file for a Microsoft Office 365 Click-to-run installation. This is configured to use the new Microsoft Office update channel and is SCCM integrated and without OneDrive.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<Configuration> <Add OfficeClientEdition="32" Channel="Monthly" OfficeMgmtCOM="TRUE"> <Product ID="O365ProPlusRetail"> <Language ID="en-us" /> <Language ID="de-de" /> <ExcludeApp ID="OneDrive" /> </Product> </Add> <Updates Channel="Monthly" Enabled="TRUE" /> <Display Level="None" AcceptEULA="TRUE" /> <Logging Level="Standard" Path="%TEMP%" /> <Property Name="FORCEAPPSHUTDOWN" Value="FALSE" /> <Property Name="SharedComputerLicensing" Value="0" /> <Property Name="PinIconsToTaskbar" Value="FALSE" /> </Configuration> |
Note: And as usual, the ability to pin the Office icons to the taskbar, is only available for the users that is running the installation.
Custom remove.xml for uninstalling the Microsoft Office ProPlus 365 Click-to-run product.
1 2 3 4 5 6 7 |
<Configuration> <Remove> <Product ID="O365ProPlusRetail"> <Language ID="en-us" /> </Product> </Remove> </Configuration> |
To remove all Click-to-run installations.
1 2 3 |
<Configuration> <Remove All="TRUE" /> </Configuration> |
This is a two-part job. First configure the setup installation package for the client computer and afterwards create a Group Policy with additional settings.
Run “setup.exe /admin” and change the following sections.
Setup:
1 2 3 4 5 |
I accept the terms in the License Agreement = Selected Display Level = None Completion notice = Not selected Suppress modal = Selected No Cancel = Selected |
1 2 3 |
HIDEUPDATEUI = True AUTO_ACTIVATE = 1 SETUP_REBOOT = Never |
Features:
1 2 3 4 5 6 7 8 |
Office, First run Disable First Run Movie = Enabled Disable Office First Run on application boot = Enabled Office, Privacy Disable Opt-In Wizard on first run = Enabled Office, Miscellaneous Disable the Office Start screen for all Office applications = Enabled Suppress recommended settings dialog = Enabled |
Additional content:
1 2 |
HKCU Software\Microsoft\Office\<version>\Common\General ShownFileFmtPrompt = DWORD 1 HKCU Software\Microsoft\Office\<version>\Registration AcceptAllEulas = DWORD 1 |
1 2 3 4 5 6 |
HKCU Software\Microsoft\Office\<version>\Lync SavePassword = DWORD 1 HKCU Software\Microsoft\Office\<version>\Lync TutorialFeatureEnabled = DWORD 1 HKCU Software\Microsoft\Office\<version>\Lync IsBasicTutorialSeenByUser = DWORD 1 HKCU Software\Microsoft\Office\<version>\Lync AutoRunWhenLogonToWindows = DWORD 1 HKCU Software\Microsoft\Office\<version>\Lync MinimizeWindowToNotificationArea = DWORD 1 HKCU Software\Microsoft\Office\<version>\Lync AutoOpenMainWindowWhenStartup = DWORD 1 |
Launch ‘Group Policy Management’ or other Group Policy Management tool.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
User, Microsoft Office\First Run Disable First Run Movie = Enabled Disable Office First Run on application boot = Enabled User, Microsoft Office \Microsoft Save As PDF and XPS add-ins Disable Microsoft Save As PDF and XPS add-ins = Enabled, Disable XPS User, Microsoft Office\Miscellaneous Block signing into Office = OrgID Only Disable the Office Start screen for all Office applications = Enabled Suppress recommended settings dialog = Enabled Show OneDrive Sign In = Disabled User, Microsoft Office\Privacy\Trust Center Automatically receive small updates to improve reliability = Disabled Disable Opt-in Wizard on first run = Enabled Enable Customer Experience Improvement Program = Disabled Send Office Feedback = Disabled User, Microsoft Office\Subscription Activationshow Automatically activate Office with federated organization credentials = Enabled Do not show "Manage Account" link for subscription licenses = Enabled |
Custom config.xml with multiple languages commands for a Microsoft Office 2016 installation.
Note: Adding French, English, Danish, German and Spanish languages and set French language to default
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
<Configuration Product="ProPlus"> <Display AcceptEula="yes" SuppressModal="yes" CompletionNotice="no" Level="none" /> <!-- <Display Level="full" CompletionNotice="yes" SuppressModal="no" AcceptEula="no" /> --> <!-- <Logging Type="standard" Path="%temp%" Template="Microsoft Office Professional Plus Setup(*).txt" /> --> <!-- <USERNAME Value="Customer" /> --> <!-- <COMPANYNAME Value="MyCompany" /> --> <!-- <INSTALLLOCATION Value="%programfiles%\Microsoft Office" /> --> <!-- <LIS CACHEACTION="CacheOnly" /> --> <!-- <LIS SOURCELIST="\\server1\share\Office;\\server2\share\Office" /> --> <!-- <DistributionPoint Location="\\server\share\Office" /> --> <!-- <OptionState Id="OptionID" State="absent" Children="force" /> --> <Setting Id="SETUP_REBOOT" Value="Never" /> <Setting Id="AUTO_ACTIVATE" Value="1" /> <!-- <Command Path="%windir%\system32\msiexec.exe" Args="/i \\server\share\my.msi" QuietArg="/q" ChainPosition="after" Execute="install" /> --> <AddLanguage Id="fr-fr" ShellTransform="yes" /> < AddLanguage Id="en-us" /> <AddLanguage Id="da-dk" /> <AddLanguage Id="de-de" /> <AddLanguage Id="es-es" /> </Configuration> |
Source: Microsoft
Custom config.xml for a Microsoft Office 2016 Proofing Tools kit installation.
Note: Install English and Danish languages only
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 |
<Configuration Product="Proofkit"> <Display AcceptEula="yes" SuppressModal="yes" CompletionNotice="no" Level="none" /> <!-- <Logging Type="standard" Path="%temp%" Template="Microsoft Office Proofkit Setup(*).txt" /> --> <!-- <USERNAME Value="Customer" /> --> <!-- <COMPANYNAME Value="MyCompany" /> --> <!-- <INSTALLLOCATION Value="%programfiles%\Microsoft Office" /> --> <!-- <LIS CACHEACTION="CacheOnly" /> --> <!-- <LIS SOURCELIST="\\server1\share\Office;\\server2\share\Office" /> --> <!-- <DistributionPoint Location="\\server\share\Office" /> --> <!-- <OptionState Id="OptionID" State="absent" Children="force" /> --> <Setting Id="SETUP_REBOOT" Value="Never" /> <!-- <Command Path="%windir%\system32\msiexec.exe" Args="/i \\server\share\my.msi" QuietArg="/q" ChainPosition="after" Execute="install" /> --> <OptionState Id="IMEMain_1028" State="Absent" Children="force" /> <OptionState Id="IMEMain_1041" State="Absent" Children="force" /> <OptionState Id="IMEMain_1042" State="Absent" Children="force" /> <OptionState Id="IMEMain_2052" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1025" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1026" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1027" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1028" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1029" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1030" State="local" Children="force" /> <OptionState Id="ProofingTools_1031" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1032" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1033" State="local" Children="force" /> <OptionState Id="ProofingTools_1035" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1036" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1037" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1038" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1040" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1041" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1042" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1043" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1044" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1045" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1046" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1048" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1049" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1050" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1051" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1053" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1054" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1055" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1056" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1058" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1060" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1061" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1062" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1063" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1069" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1081" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1087" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1094" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1095" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1097" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1099" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1102" State="Absent" Children="force" /> <OptionState Id="ProofingTools_1110" State="Absent" Children="force" /> <OptionState Id="ProofingTools_2052" State="Absent" Children="force" /> <OptionState Id="ProofingTools_2068" State="Absent" Children="force" /> <OptionState Id="ProofingTools_2070" State="Absent" Children="force" /> <OptionState Id="ProofingTools_2074" State="Absent" Children="force" /> <OptionState Id="ProofingTools_2076" State="Absent" Children="force" /> <OptionState Id="ProofingTools_3082" State="Absent" Children="force" /> </Configuration> |
Source: Microsoft
Custom config.xml for a Microsoft Office 2016 installation.
Note: Remember to install KB2999226 before installing Microsoft Office 2016
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
<Configuration Product="ProPlus"> <Display AcceptEula="yes" SuppressModal="yes" CompletionNotice="no" Level="none" /> <!-- <Display Level="full" CompletionNotice="yes" SuppressModal="no" AcceptEula="no" /> --> <!-- <Logging Type="standard" Path="%temp%" Template="Microsoft Office Professional Plus Setup(*).txt" /> --> <!-- <USERNAME Value="Customer" /> --> <!-- <COMPANYNAME Value="MyCompany" /> --> <!-- <INSTALLLOCATION Value="%programfiles%\Microsoft Office" /> --> <!-- <LIS CACHEACTION="CacheOnly" /> --> <!-- <LIS SOURCELIST="\\server1\share\Office;\\server2\share\Office" /> --> <!-- <DistributionPoint Location="\\server\share\Office" /> --> <!-- <OptionState Id="OptionID" State="absent" Children="force" /> --> <Setting Id="SETUP_REBOOT" Value="Never" /> <Setting Id="AUTO_ACTIVATE" Value="1" /> <!-- <Command Path="%windir%\system32\msiexec.exe" Args="/i \\server\share\my.msi" QuietArg="/q" ChainPosition="after" Execute="install" /> --> </Configuration> |
Source: Microsoft
Add and remove local printer and driver through the command line. Can be used in scripts or packages. Before adding the printer, setup port and restart the Print Spooler service.
1 2 |
rundll32 printui.dll PrintUIEntry /if /b "ETIAM Print-in" /f "%ProgramFiles%\Etiam\Print-In\Driver\Print-in.inf" /r "PrintIn Port" /m "ETIAM Print-in" /q rundll32 printui.dll PrintUIEntry /Xs /n "ETIAM Print-in" comment "ETIAM virtual printer" location "http://www.etiam.com" /q |
1 2 |
rundll32 printui.dll PrintUIEntry /dl /n "ETIAM Print-in" /q rundll32 printui.dll PrintUIEntry /dd /m "ETIAM Print-in" /q |
Goto Microsoft for details about Enterprise Mobility (EMS)
– In the cloud …