Hi
When I adapted a script I’ve been playing with into psappdeploy script it seems to be doing something strange…
I run the script to connect all network shares that the user has access to. This is used when connecting via DNS VPN.
if I keep the script outside PSADT, it works. when I add it to PSADT, the very last thing it does is remove all drives that were just mapped.
I’m using v3.6.8
here is the script:
If ($deploymentType -ine "Uninstall") {
##*===============================================
##* PRE-INSTALLATION
##*===============================================
[string]$installPhase = "Pre-Installation"
## Show Welcome Message, close Internet Explorer if required, allow up to 3 deferrals, verify there is enough disk space to complete the install, and persist the prompt
#Show-InstallationWelcome -CloseApps "iexplore" -AllowDefer -DeferTimes 3 -CheckDiskSpace -PersistPrompt
## Show Progress Message (with the default message)
#Show-InstallationProgress
## <Perform Pre-Installation tasks here>
#start by removing all the old drives if present..
net use * /d /y
Show-DialogBox -Title "VPN Drivemapping" -Text "Vi Begynder at mappe dine netværksdrev om lidt. Husk du skal logge ind i Network Connect, når programmet starter om lidt" -Icon "Information"
$getJuniper78 = "C:\Program Files (x86)\Juniper Networks\Network Connect 7.8\dsNetworkConnect.exe"
$getJuniper79 = "C:\Program Files (x86)\Juniper Networks\Network Connect 7.9\dsNetworkConnect.exe"
$getJuniper80 = "C:\Program Files (x86)\Juniper Networks\Network Connect 8.0\dsNetworkConnect.exe"
$getJuniper81 = "C:\Program Files (x86)\Juniper Networks\Network Connect 8.1\dsNetworkConnect.exe"
$TestJuniper78=test-path $getJuniper78
$TestJuniper79=test-path $getJuniper79
$TestJuniper80=test-path $getJuniper80
$TestJuniper81=test-path $getJuniper81
$DriveletterF="DOMAIN\SG - GPO - DriveMaps - ARD - Logistik"
$DriveletterG="DOMAIN\SG - GPO - DriveMaps - QUB - Marketing"
$DriveletterH="DOMAIN\SG - GPO - DriveMaps - ARD - HR"
$DriveletterI="DOMAIN\SG - GPO - DriveMaps - ARD - Jokan"
$DriveletterJ="DOMAIN\SG - GPO - DriveMaps - ARD - Jokan"
$DriveletterK="DOMAIN\SG - GPO - DriveMaps - ARD - Teknik"
$DriveletterL="DOMAIN\SG - GPO - DriveMaps - ARD - QLS"
$DriveletterM="DOMAIN\SG - GPO - DriveMaps - ARD - Management"
$DriveletterN="DOMAIN\SG - GPO - DriveMaps - ARD - Salg"
## = er også DOMAIN\SG - GPO - DriveMaps - ARD - EPLAN
$DriveletterQ="DOMAIN\SG - GPO - DriveMaps - QUB - Common"
#R er disabled i GPO
#$DriveletterR="DOMAIN\SG - GPO - DriveMaps - ARD - Teknik"
$DriveletterS="DOMAIN\SG - GPO - DriveMaps - ARD - Service"
$DriveletterT="DOMAIN\SG - GPO - DriveMaps - ARD - Projekt og tilbud"
$DriveletterU="DOMAIN\SG - GPO - DriveMaps - ARD - Faelles"
#V er disabled i GPO
#$DriveletterV="DOMAIN\SG - GPO - DriveMaps - QUB - GroupManagement"
$DriveletterW="DOMAIN\SG - GPO - DriveMaps - ARD - SupplyChain"
$DriveletterX="DOMAIN\SG - GPO - DriveMaps - ARD - Financial Management"
#Y er disabled i GPO
#$DriveletterY="DOMAIN\SG - GPO - DriveMaps - QUB - Datarum - Arden"
#username of loggedon user
$username=get-content env:username
## Start Juniper and prompt user for username & password
if ($TestJuniper81)
{
& $getJuniper81 -asJob
}
elseif (!$testJuniper81 -and $testJuniper80)
{
& $getJuniper80 -asJob
}
if (!$TestJuniper80)
{
& $getJuniper81 -asJob
}
elseif (!$TestJuniper81)
{
& $getJuniper80 -asJob
}
# Ping until domain responds
do {$ping=test-connection -computer "sardad01.domain.local" -quiet} until($ping)
#make user aware that stuff is happening
Show-InstallationProgress -StatusMessage "Drevmapning igang"
##Homedir is the same for everyone
$testdrive = Get-PSDrive -Name P
if(!$testdrive)
{
new-psdrive -Name "P" -PSProvider FileSystem -Root "\\domain.local\arden\Homedir$\$username" -Persist
}
else
{
Remove-PSDrive -Name P
new-psdrive -Name "P" -PSProvider FileSystem -Root "\\domain.local\arden\Homedir$\$username" -Persist
}
##*===============================================
##* INSTALLATION
##*===============================================
[string]$installPhase = "Installation"
## Handle Zero-Config MSI Installations
If ($useDefaultMsi) {
[hashtable]$ExecuteDefaultMSISplat = @{ Action = "Install"; Path = $defaultMsiFile }; If ($defaultMstFile) { $ExecuteDefaultMSISplat.Add("Transform", $defaultMstFile) }
Execute-MSI @ExecuteDefaultMSISplat; If ($defaultMspFiles) { $defaultMspFiles | ForEach-Object { Execute-MSI -Action "Patch" -Path $_ } }
}
## <Perform Installation tasks here>
Function Get-AllUserGroups {
[cmdletbinding()]
param()
$Groups = [System.Security.Principal.WindowsIdentity]::GetCurrent().Groups
foreach ($Group in $Groups) {
$GroupSID = $Group.Value
$GroupName = New-Object System.Security.Principal.SecurityIdentifier($GroupSID)
$GroupDisplayName = $GroupName.Translate([System.Security.Principal.NTAccount])
$GroupDisplayName
}
}
$groups=Get-AllUserGroups | Where-Object {$_ -like "*SG - GPO - DriveMaps*" }
##we have to handle the Double O
if ($groups -contains "DOMAIN\SG - GPO - DriveMaps - ARD - Økonomi")
{
$testdrive = Get-PSDrive -Name O
if(!$testdrive)
{
new-psdrive -Name "O" -PSProvider FileSystem -Root "\\domain.local\arden\økonomi" -Persist
}
else
{
Remove-PSDrive -Name O -Force
new-psdrive -Name "O" -PSProvider FileSystem -Root "\\domain.local\arden\økonomi" -Persist
}
}
ElseIf($groups -contains "DOMAIN\SG - GPO - DriveMaps - ARD - EPLAN")
{
$testdrive = Get-PSDrive -Name O
if(!$testdrive)
{
new-psdrive -Name "O" -PSProvider FileSystem -Root "\\domain.local\Arden\EPLAN" -Persist
}
else
{
Remove-PSDrive -Name O -Force
new-psdrive -Name "O" -PSProvider FileSystem -Root "\\domain.local\Arden\EPLAN" -Persist
}
}
Foreach ($group in $groups)
{
#write-host $group
if ($group -eq $driveletterF)
{
$testDrive=Get-PSDrive -Name "F"
if (!$testDrive)
{
new-psdrive -Name "F" -PSProvider FileSystem -Root "\\domain.local\arden\logistik" -Persist
}
else
{
Remove-PSDrive -Name F -Force
new-psdrive -Name "F" -PSProvider FileSystem -Root "\\domain.local\arden\logistik" -Persist
}
}
if ($group -eq $driveletterG)
{
$testDrive=Get-PSDrive -name G
if (!$testDrive)
{
new-psdrive -Name "G" -PSProvider FileSystem -Root "\\domain.local\arden\marketing" -Persist
}
else
{
Remove-PSDrive -Name G -Force
new-psdrive -Name "G" -PSProvider FileSystem -Root "\\domain.local\arden\marketing" -Persist
}
}
if ($group -eq $driveletterH)
{
$testDrive=Get-PSDrive -Name H
if (!$testDrive)
{
new-psdrive -Name "H" -PSProvider FileSystem -Root "\\domain.local\arden\HR" -Persist
}
else
{
Remove-PSDrive -Name H -Force
new-psdrive -Name "H" -PSProvider FileSystem -Root "\\domain.local\arden\HR" -Persist
}
}
if ($group -eq $driveletterI)
{
$testDrive = Get-PSDrive -Name I
if (!$testDrive)
{
new-psdrive -Name "I" -PSProvider FileSystem -Root "\\domain.local\Arden\CatiaProjekt" -Persist
}
else
{
Remove-PSDrive -Name I -Force
new-psdrive -Name "I" -PSProvider FileSystem -Root "\\domain.local\Arden\CatiaProjekt" -Persist
}
}
if ($group -eq $driveletterJ)
{
$testDrive = Get-PSDrive -Name J
if (!$testDrive)
{
new-psdrive -Name "J" -PSProvider FileSystem -Root "\\domain.local\Arden\Jokan" -Persist
}
else
{
Remove-PSDrive -Name J -Force
new-psdrive -Name "J" -PSProvider FileSystem -Root "\\domain.local\Arden\Jokan" -Persist
}
}
if ($group -eq $driveletterK)
{
$testDrive = Get-PSDrive -Name K
if (!$testDrive)
{
new-psdrive -Name "K" -PSProvider FileSystem -Root "\\domain.local\arden\Teknik" -Persist
}
else
{
Remove-PSDrive -Name K -Force
new-psdrive -Name "K" -PSProvider FileSystem -Root "\\domain.local\arden\Teknik" -Persist
}
}
if ($group -eq $driveletterL)
{
$testDrive = Get-PSDrive -Name L
if (!$testDrive)
{
new-psdrive -Name "L" -PSProvider FileSystem -Root "\\domain.local\arden\QLS" -Persist
}
else
{
Remove-PSDrive -Name L -Force
new-psdrive -Name "L" -PSProvider FileSystem -Root "\\domain.local\arden\QLS" -Persist
}
}
if ($group -eq $driveletterM)
{
$testDrive = Get-PSDrive -Name M
if (!$testDrive)
{
new-psdrive -Name "M" -PSProvider FileSystem -Root "\\domain.local\arden\ardenmanagement" -Persist
}
else
{
Remove-PSDrive -Name M -Force
new-psdrive -Name "M" -PSProvider FileSystem -Root "\\domain.local\arden\ardenmanagement" -Persist
}
}
if ($group -eq $driveletterN)
{
$testDrive = Get-PSDrive -Name N
if (!$testDrive)
{
new-psdrive -Name "N" -PSProvider FileSystem -Root "\\domain.local\arden\salg" -Persist
}
else
{
Remove-PSDrive -Name N -Force
new-psdrive -Name "N" -PSProvider FileSystem -Root "\\domain.local\arden\salg" -Persist
}
}
if ($group -eq $driveletterQ)
{
$testDrive = Get-PSDrive -Name Q
if(!$testDrive)
{
new-psdrive -Name "Q" -PSProvider FileSystem -Root "\\domain.local\qubiqa\Qubiqa_Common" -Persist
}
else
{
Remove-PSDrive -Name Q -Force
new-psdrive -Name "Q" -PSProvider FileSystem -Root "\\domain.local\qubiqa\Qubiqa_Common" -Persist
}
}
if ($group -eq $driveletterS)
{
$testDrive = Get-PSDrive -Name S
if(!$testDrive)
{
new-psdrive -Name "S" -PSProvider FileSystem -Root "\\domain.local\arden\service" -Persist
}
else
{
Remove-PSDrive -Name S -Force
new-psdrive -Name "S" -PSProvider FileSystem -Root "\\domain.local\arden\service" -Persist
}
}
if ($group -eq $driveletterT)
{
$testDrive = Get-PSDrive -Name T
if(!$testdrive)
{
new-psdrive -Name "T" -PSProvider FileSystem -Root "\\domain.local\arden\ProjektTilbud" -Persist
}
else
{
Remove-PSDrive -Name T -Force
new-psdrive -Name "T" -PSProvider FileSystem -Root "\\domain.local\arden\ProjektTilbud" -Persist
}
}
if ($group -eq $driveletterU)
{
$testDrive = Get-PSDrive -Name U
if(!$testDrive)
{
new-psdrive -Name "U" -PSProvider FileSystem -Root "\\domain.local\arden\Faelles" -Persist
}
else
{
Remove-PSDrive -Name U -Force
new-psdrive -Name "U" -PSProvider FileSystem -Root "\\domain.local\arden\Faelles" -Persist
}
}
if ($group -eq $driveletterW)
{
$testDrive = Get-PSDrive -Name W
if(!$testDrive)
{
new-psdrive -Name "W" -PSProvider FileSystem -Root "\\domain.local\arden\ardensupplychain" -Persist
}
else
{
Remove-PSDrive -Name W -Force
new-psdrive -Name "W" -PSProvider FileSystem -Root "\\domain.local\arden\ardensupplychain" -Persist
}
}
if ($group -eq $driveletterX)
{
$testDrive = Get-PSDrive -Name X
if(!$testDrive)
{
new-psdrive -Name "X" -PSProvider FileSystem -Root "\\domain.local\arden\ArdenFinancialManagement" -Persist
}
else
{
Remove-PSDrive -Name X -Force
new-psdrive -Name "X" -PSProvider FileSystem -Root "\\domain.local\arden\ArdenFinancialManagement" -Persist
}
}
}
##*===============================================
##* POST-INSTALLATION
##*===============================================
[string]$installPhase = "Post-Installation"
## <Perform Post-Installation tasks here>
## Display a message at the end of the install
Show-InstallationPrompt -Message "Så er drevmapning afsluttet. Go Arbejdslyst" -ButtonRightText "OK" -Icon Information -NoWait