CmdLets/Connect-LibraryApplicationShare.ps1
|
Function Connect-LibraryApplicationShare { [CmdletBinding(DefaultParameterSetName="App")] Param( [Parameter(Mandatory=$True,ParameterSetName="App")] $Applications, [Parameter(Mandatory=$True,ParameterSetName="Path")] $Path ) Begin {} Process { Switch ($PSCmdlet.ParameterSetName){ "App"{ $Paths = ($Applications | Where-object {$_.Source.Copy.Source -like "\\*" }).Source.Copy.Source | Sort-Object -Unique } "Path"{ $Paths = $Path } } ForEach ($Path in $Paths){ $UNC = "\\" $Path.Substring(2).Split("\")[0..1] | ForEach-Object { Write-Debug "Joining $UNC and $_" $UNC = Join-Path $UNC $_ } Do { If (Get-SMBMapping -RemotePath $UNC -ErrorAction SilentlyContinue){ Write-Verbose "Connected: $UNC" $Connected = $true } else { $Connected = $false Write-Host "Please provide SMB Share Credentials" -ForegroundColor DarkYellow Write-Host "`t$UNC" -ForegroundColor Blue $cred = Get-Credential -Message "Please provide SMB Credentials" New-SMBMapping -RemotePath $UNC -UserName $Cred.UserName -Password $Cred.GetNetworkCredential().Password } } While (!($Connected)) } } End {} } |