Skip to content

Instantly share code, notes, and snippets.

@Colby-PDQ
Last active August 22, 2023 13:46
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Colby-PDQ/5dc03fef9252cf6c784b5c3ec5b56c5b to your computer and use it in GitHub Desktop.
Save Colby-PDQ/5dc03fef9252cf6c784b5c3ec5b56c5b to your computer and use it in GitHub Desktop.
PDQ Deploy packages for installing PDQ Deploy and Inventory in Client mode
<?xml version="1.0" encoding="utf-8"?>
<AdminArsenal.Export Code="PDQDeploy" Name="PDQ Deploy" Version="18.4.0.0" MinimumVersion="18.0">
<Package>
<CurrentLibraryPackageVersionId value="null" />
<PackageDefinition name="Definition">
<Conditions type="list">
<PackageStepCondition>
<Architecture>Both</Architecture>
<Version>All</Version>
<TypeName>OperatingSystem</TypeName>
</PackageStepCondition>
<PackageStepCondition>
<IsUserLoggedOn>AlwaysRun</IsUserLoggedOn>
<TypeName>LoggedOnUser</TypeName>
</PackageStepCondition>
<PackageStepCondition>
<ConditionMode>None</ConditionMode>
<InventoryCollectionId value="null" />
<InventoryCollectionName></InventoryCollectionName>
<TypeName>Collection</TypeName>
</PackageStepCondition>
<PackageStepCondition>
<ConditionMode>DoesNotExist</ConditionMode>
<Hive>HKEY_LOCAL_MACHINE</Hive>
<IncludeSubKeys value="false" />
<Key>SOFTWARE\Admin Arsenal\PDQ Deploy\Protocol</Key>
<MatchToWow6432 value="false" />
<TextCompare>Equals</TextCompare>
<Value>Server</Value>
<ValueCompare>NoMatch</ValueCompare>
<ValueName>Mode</ValueName>
<ValueType>Text</ValueType>
<TypeName>Registry</TypeName>
</PackageStepCondition>
</Conditions>
<CopyMode>Default</CopyMode>
<DelayedApprovalTimeSpan>7.00:00:00</DelayedApprovalTimeSpan>
<DownloadApprovalMode>Manual</DownloadApprovalMode>
<InventoryScanProfileId value="null" />
<IsDownloadApprovalModeInherited value="true" />
<ScanAfterDeployment value="null" />
<Steps type="list">
<PowerShellStep>
<CustomCommandLine></CustomCommandLine>
<Files></Files>
<Script>Stop-Process -Name "PDQDeployConsole" -Force
Stop-Process -Name "PDQInventoryConsole" -Force</Script>
<SuccessCodes>0</SuccessCodes>
<RunAs value="null" />
<Conditions type="list">
<PackageStepCondition>
<Architecture>Both</Architecture>
<Version>All</Version>
<TypeName>OperatingSystem</TypeName>
</PackageStepCondition>
<PackageStepCondition>
<IsUserLoggedOn>AlwaysRun</IsUserLoggedOn>
<TypeName>LoggedOnUser</TypeName>
</PackageStepCondition>
<PackageStepCondition>
<ConditionMode>None</ConditionMode>
<InventoryCollectionId value="null" />
<InventoryCollectionName></InventoryCollectionName>
<TypeName>Collection</TypeName>
</PackageStepCondition>
</Conditions>
<ErrorMode>Continue</ErrorMode>
<Title>Kill</Title>
<TypeName>PowerShell</TypeName>
<IsEnabled value="true" />
<IsPostStep value="false" />
<IsPreStep value="false" />
</PowerShellStep>
<InstallStep>
<CustomCommandLine></CustomCommandLine>
<FileName>\\$(PDQDeployServerHostName)\ADMIN$\Downloaded Installations\Admin Arsenal\PDQ Deploy\$(PDQDeployVersion)\PDQDeploy.msi</FileName>
<Files></Files>
<IncludeDirectory value="false" />
<LeaveInstallFile value="false" />
<MsiOperation>Install</MsiOperation>
<MsiQuiet value="true" />
<MsiRestart>Never</MsiRestart>
<Parameters></Parameters>
<SuccessCodes>0,1641,3010,2359302</SuccessCodes>
<RunAs value="null" />
<Conditions type="list">
<PackageStepCondition>
<Architecture>Both</Architecture>
<Version>All</Version>
<TypeName>OperatingSystem</TypeName>
</PackageStepCondition>
<PackageStepCondition>
<IsUserLoggedOn>AlwaysRun</IsUserLoggedOn>
<TypeName>LoggedOnUser</TypeName>
</PackageStepCondition>
<PackageStepCondition>
<ConditionMode>None</ConditionMode>
<InventoryCollectionId value="null" />
<InventoryCollectionName></InventoryCollectionName>
<TypeName>Collection</TypeName>
</PackageStepCondition>
</Conditions>
<ErrorMode>StopDeploymentFail</ErrorMode>
<Title>Install Deploy Client</Title>
<TypeName>Install</TypeName>
<IsEnabled value="true" />
<IsPostStep value="false" />
<IsPreStep value="false" />
</InstallStep>
<PowerShellStep>
<CustomCommandLine></CustomCommandLine>
<Files></Files>
<Script>$Product = "PDQ Deploy"
$ServerName = "$(PDQDeployServerHostName)"
$ServerPort = "$(PDQDeployServerPort)"
New-Item -Force -Path "HKLM:\SOFTWARE\Admin Arsenal" -Name "$Product" -ErrorAction SilentlyContinue | Out-Null
New-Item -Force -Path "HKLM:\SOFTWARE\Admin Arsenal\$Product" -Name "Protocol" -ErrorAction SilentlyContinue | Out-Null
Start-Sleep -Seconds 5
New-ItemProperty -Force -Path "HKLM:\SOFTWARE\Admin Arsenal\$Product\Protocol" -Name "Mode" -PropertyType "String" -Value "Client" | Out-Null
New-ItemProperty -Force -Path "HKLM:\SOFTWARE\Admin Arsenal\$Product\Protocol" -Name "ServerHostName" -PropertyType "String" -Value "$ServerName" | Out-Null
New-ItemProperty -Force -Path "HKLM:\SOFTWARE\Admin Arsenal\$Product\Protocol" -Name "ServerPort" -PropertyType "Dword" -Value "$ServerPort" | Out-Null</Script>
<SuccessCodes>0</SuccessCodes>
<RunAs value="null" />
<Conditions type="list">
<PackageStepCondition>
<Architecture>Both</Architecture>
<Version>All</Version>
<TypeName>OperatingSystem</TypeName>
</PackageStepCondition>
<PackageStepCondition>
<IsUserLoggedOn>AlwaysRun</IsUserLoggedOn>
<TypeName>LoggedOnUser</TypeName>
</PackageStepCondition>
<PackageStepCondition>
<ConditionMode>None</ConditionMode>
<InventoryCollectionId value="null" />
<InventoryCollectionName></InventoryCollectionName>
<TypeName>Collection</TypeName>
</PackageStepCondition>
</Conditions>
<ErrorMode>StopDeploymentFail</ErrorMode>
<Title>Set registry values</Title>
<TypeName>PowerShell</TypeName>
<IsEnabled value="true" />
<IsPostStep value="false" />
<IsPreStep value="false" />
</PowerShellStep>
</Steps>
<Timeout value="60" />
<UseCustomTimeout value="false" />
<RunAs value="null" />
</PackageDefinition>
<Description></Description>
<NewLibraryPackageVersionId value="null" />
<OriginalId value="null" />
<Version>9</Version>
<IsAutoDownload value="false" />
<FolderId value="null" />
<LibraryPackageVersionId value="null" />
<Name>Deploy Client mode</Name>
<Path>Deploy Client mode</Path>
<PackageDisplaySettings name="DisplaySettings">
<DisplayType>Normal</DisplayType>
<IconKey>Icon-Package</IconKey>
<SortOrder value="12" />
</PackageDisplaySettings>
</Package>
</AdminArsenal.Export>
<?xml version="1.0" encoding="utf-8"?>
<AdminArsenal.Export Code="PDQDeploy" Name="PDQ Deploy" Version="18.4.0.0" MinimumVersion="18.0">
<Package>
<CurrentLibraryPackageVersionId value="null" />
<PackageDefinition name="Definition">
<Conditions type="list">
<PackageStepCondition>
<Architecture>Both</Architecture>
<Version>All</Version>
<TypeName>OperatingSystem</TypeName>
</PackageStepCondition>
<PackageStepCondition>
<IsUserLoggedOn>AlwaysRun</IsUserLoggedOn>
<TypeName>LoggedOnUser</TypeName>
</PackageStepCondition>
<PackageStepCondition>
<ConditionMode>None</ConditionMode>
<InventoryCollectionId value="null" />
<InventoryCollectionName></InventoryCollectionName>
<TypeName>Collection</TypeName>
</PackageStepCondition>
<PackageStepCondition>
<ConditionMode>DoesNotExist</ConditionMode>
<Hive>HKEY_LOCAL_MACHINE</Hive>
<IncludeSubKeys value="false" />
<Key>SOFTWARE\Admin Arsenal\PDQ Inventory\Protocol</Key>
<MatchToWow6432 value="false" />
<TextCompare>Equals</TextCompare>
<Value>Server</Value>
<ValueCompare>NoMatch</ValueCompare>
<ValueName>Mode</ValueName>
<ValueType>Text</ValueType>
<TypeName>Registry</TypeName>
</PackageStepCondition>
</Conditions>
<CopyMode>Default</CopyMode>
<DelayedApprovalTimeSpan>7.00:00:00</DelayedApprovalTimeSpan>
<DownloadApprovalMode>Manual</DownloadApprovalMode>
<InventoryScanProfileId value="null" />
<IsDownloadApprovalModeInherited value="true" />
<ScanAfterDeployment value="null" />
<Steps type="list">
<PowerShellStep>
<CustomCommandLine></CustomCommandLine>
<Files></Files>
<Script>Stop-Process -Name "PDQDeployConsole" -Force
Stop-Process -Name "PDQInventoryConsole" -Force</Script>
<SuccessCodes>0</SuccessCodes>
<RunAs value="null" />
<Conditions type="list">
<PackageStepCondition>
<Architecture>Both</Architecture>
<Version>All</Version>
<TypeName>OperatingSystem</TypeName>
</PackageStepCondition>
<PackageStepCondition>
<IsUserLoggedOn>AlwaysRun</IsUserLoggedOn>
<TypeName>LoggedOnUser</TypeName>
</PackageStepCondition>
<PackageStepCondition>
<ConditionMode>None</ConditionMode>
<InventoryCollectionId value="null" />
<InventoryCollectionName></InventoryCollectionName>
<TypeName>Collection</TypeName>
</PackageStepCondition>
</Conditions>
<ErrorMode>Continue</ErrorMode>
<Title>Kill</Title>
<TypeName>PowerShell</TypeName>
<IsEnabled value="true" />
<IsPostStep value="false" />
<IsPreStep value="false" />
</PowerShellStep>
<InstallStep>
<CustomCommandLine></CustomCommandLine>
<FileName>\\$(PDQInventoryServerHostName)\ADMIN$\Downloaded Installations\Admin Arsenal\PDQ Inventory\$(PDQInventoryVersion)\PDQInventory.msi</FileName>
<Files></Files>
<IncludeDirectory value="false" />
<LeaveInstallFile value="false" />
<MsiOperation>Install</MsiOperation>
<MsiQuiet value="true" />
<MsiRestart>Never</MsiRestart>
<Parameters></Parameters>
<SuccessCodes>0,1641,3010,2359302</SuccessCodes>
<RunAs value="null" />
<Conditions type="list">
<PackageStepCondition>
<Architecture>Both</Architecture>
<Version>All</Version>
<TypeName>OperatingSystem</TypeName>
</PackageStepCondition>
<PackageStepCondition>
<IsUserLoggedOn>AlwaysRun</IsUserLoggedOn>
<TypeName>LoggedOnUser</TypeName>
</PackageStepCondition>
<PackageStepCondition>
<ConditionMode>None</ConditionMode>
<InventoryCollectionId value="null" />
<InventoryCollectionName></InventoryCollectionName>
<TypeName>Collection</TypeName>
</PackageStepCondition>
</Conditions>
<ErrorMode>StopDeploymentFail</ErrorMode>
<Title>Install Inventory Client</Title>
<TypeName>Install</TypeName>
<IsEnabled value="true" />
<IsPostStep value="false" />
<IsPreStep value="false" />
</InstallStep>
<PowerShellStep>
<CustomCommandLine></CustomCommandLine>
<Files></Files>
<Script>$Product = "PDQ Inventory"
$ServerName = "$(PDQInventoryServerHostName)"
$ServerPort = "$(PDQInventoryServerPort)"
New-Item -Force -Path "HKLM:\SOFTWARE\Admin Arsenal" -Name "$Product" -ErrorAction SilentlyContinue | Out-Null
New-Item -Force -Path "HKLM:\SOFTWARE\Admin Arsenal\$Product" -Name "Protocol" -ErrorAction SilentlyContinue | Out-Null
Start-Sleep -Seconds 5
New-ItemProperty -Force -Path "HKLM:\SOFTWARE\Admin Arsenal\$Product\Protocol" -Name "Mode" -PropertyType "String" -Value "Client" | Out-Null
New-ItemProperty -Force -Path "HKLM:\SOFTWARE\Admin Arsenal\$Product\Protocol" -Name "ServerHostName" -PropertyType "String" -Value "$ServerName" | Out-Null
New-ItemProperty -Force -Path "HKLM:\SOFTWARE\Admin Arsenal\$Product\Protocol" -Name "ServerPort" -PropertyType "Dword" -Value "$ServerPort" | Out-Null</Script>
<SuccessCodes>0</SuccessCodes>
<RunAs value="null" />
<Conditions type="list">
<PackageStepCondition>
<Architecture>Both</Architecture>
<Version>All</Version>
<TypeName>OperatingSystem</TypeName>
</PackageStepCondition>
<PackageStepCondition>
<IsUserLoggedOn>AlwaysRun</IsUserLoggedOn>
<TypeName>LoggedOnUser</TypeName>
</PackageStepCondition>
<PackageStepCondition>
<ConditionMode>None</ConditionMode>
<InventoryCollectionId value="null" />
<InventoryCollectionName></InventoryCollectionName>
<TypeName>Collection</TypeName>
</PackageStepCondition>
</Conditions>
<ErrorMode>StopDeploymentFail</ErrorMode>
<Title>Set registry values</Title>
<TypeName>PowerShell</TypeName>
<IsEnabled value="true" />
<IsPostStep value="false" />
<IsPreStep value="false" />
</PowerShellStep>
</Steps>
<Timeout value="60" />
<UseCustomTimeout value="false" />
<RunAs value="null" />
</PackageDefinition>
<Description></Description>
<NewLibraryPackageVersionId value="null" />
<OriginalId value="null" />
<Version>10</Version>
<IsAutoDownload value="false" />
<FolderId value="null" />
<LibraryPackageVersionId value="null" />
<Name>Inventory Client mode</Name>
<Path>Inventory Client mode</Path>
<PackageDisplaySettings name="DisplaySettings">
<DisplayType>Normal</DisplayType>
<IconKey>Icon-Package</IconKey>
<SortOrder value="13" />
</PackageDisplaySettings>
</Package>
</AdminArsenal.Export>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment