Актуализация ветки Dev #2
@@ -160,14 +160,15 @@ function Upload-ToSFTP {
|
|||||||
[string]$WinSCPExe
|
[string]$WinSCPExe
|
||||||
)
|
)
|
||||||
|
|
||||||
# Password is already a plain string, use it directly
|
# If password came URL-encoded (e.g., %23 for #), decode once
|
||||||
$plainPassword = $Pass
|
if ($Pass -match '%[0-9A-Fa-f]{2}') {
|
||||||
|
$Pass = [System.Net.WebUtility]::UrlDecode($Pass)
|
||||||
|
}
|
||||||
|
|
||||||
# Escape special characters in password that could break URL or WinSCP syntax
|
# Escape special characters in password that could break URL or WinSCP syntax
|
||||||
# Replace @ with %40, : with %3A, # with %23, $ with %24, & with %26
|
$escapedPassword = $Pass
|
||||||
$escapedPassword = $plainPassword
|
|
||||||
$escapedPassword = $escapedPassword -replace '@', '%40'
|
$escapedPassword = $escapedPassword -replace '@', '%40'
|
||||||
$escapedPassword = $escapedPassword -replace ':', '%3A'
|
$escapedPassword = $escapedPassword -replace ':', '%3A'
|
||||||
$escapedPassword = $escapedPassword -replace '#', '%23'
|
$escapedPassword = $escapedPassword -replace '#', '%23'
|
||||||
$escapedPassword = $escapedPassword -replace '\$', '%24'
|
$escapedPassword = $escapedPassword -replace '\$', '%24'
|
||||||
$escapedPassword = $escapedPassword -replace '`', '%60'
|
$escapedPassword = $escapedPassword -replace '`', '%60'
|
||||||
|
|||||||
Reference in New Issue
Block a user