From 93a63bd7619556e9ea214750c4ca20379594933c Mon Sep 17 00:00:00 2001 From: Nahuel Desimone Date: Fri, 23 Jul 2021 11:37:10 -0300 Subject: [PATCH 1/9] Se copia un archivo de prueba de un origen a un destino --- scripts/fileTransfer_UNCPaths.ps1 | 34 +++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 scripts/fileTransfer_UNCPaths.ps1 diff --git a/scripts/fileTransfer_UNCPaths.ps1 b/scripts/fileTransfer_UNCPaths.ps1 new file mode 100644 index 0000000..f207533 --- /dev/null +++ b/scripts/fileTransfer_UNCPaths.ps1 @@ -0,0 +1,34 @@ +$credOrigen = Get-Credential + +$rutaOrigen = "\\ave-svr-bk01\c$\Inventario\Avellaneda" + +$svrOrigen = New-PSDrive -Name "Origen" -Root $rutaOrigen -PSProvider "FileSystem" -Credential $credOrigen + +$rutaDestino = "\\novocap.com\Payroll" + +$nombreArchivoACopiar = "Prueba.docx" + +$archivoACopiar = Get-ChildItem -Path $svrOrigen.Root | Where-Object {$_.Name -eq $nombreArchivoACopiar} + +try { + + Copy-Item -Path $archivoACopiar.FullName -Destination $rutaDestino + + $archivoEnDestino = Get-ChildItem -Path $rutaDestino | Where-Object {$_.Name -eq $archivoACopiar.Name} + + [String] $hashArchivoOrigen = (Get-FileHash -Path $archivoACopiar.FullName -ErrorAction SilentlyContinue).Hash + [String] $hashArchivoDestino = (Get-FileHash -Path $archivoEnDestino.FullName -ErrorAction SilentlyContinue).Hash + + if ($hashArchivoOrigen -eq $hashArchivoDestino) { + Write-Host "OK, la integridad del archivo es correcta" + } + else { + [String] $differentHashError = ("[ERROR] - File integrity error: {0}" -f $DestinationFile) + Write-Error -Message $differentHashError -ErrorAction Stop + } +} + +# Catch the error when the file is being used +catch [Microsoft.PowerShell.Commands.WriteErrorException] { + Write-Host "Error, el archivo se encuentra en uso" +} From b0fed64b18f7681b3835d2de85e6014e1cb392c4 Mon Sep 17 00:00:00 2001 From: Nahuel Desimone Date: Fri, 23 Jul 2021 12:10:14 -0300 Subject: [PATCH 2/9] =?UTF-8?q?Se=20crea=20un=20directorio=20llamado=20Pub?= =?UTF-8?q?lic=20dentro=20de=20Modules,=20y=20all=C3=AD=20se=20aloja=20el?= =?UTF-8?q?=20archivo=20.ps1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- {scripts => Modules/Public}/fileTransfer_UNCPaths.ps1 | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {scripts => Modules/Public}/fileTransfer_UNCPaths.ps1 (100%) diff --git a/scripts/fileTransfer_UNCPaths.ps1 b/Modules/Public/fileTransfer_UNCPaths.ps1 similarity index 100% rename from scripts/fileTransfer_UNCPaths.ps1 rename to Modules/Public/fileTransfer_UNCPaths.ps1 From 11e4d585a7797f7965470483d62e02281e263555 Mon Sep 17 00:00:00 2001 From: Nahuel Desimone Date: Fri, 23 Jul 2021 12:36:28 -0300 Subject: [PATCH 3/9] =?UTF-8?q?Se=20piden=20como=20parametros=20las=20ruta?= =?UTF-8?q?s=20de=20origen,=20destino=20y=20archivo=20a=20copiar.=20Tambi?= =?UTF-8?q?=C3=A9n=20se=20escribe=20todo=20el=20c=C3=B3digo=20en=20ingl?= =?UTF-8?q?=C3=A9s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Modules/Public/fileTransfer_UNCPaths.ps1 | 46 +++++++++++++++++------- 1 file changed, 33 insertions(+), 13 deletions(-) diff --git a/Modules/Public/fileTransfer_UNCPaths.ps1 b/Modules/Public/fileTransfer_UNCPaths.ps1 index f207533..5e30c19 100644 --- a/Modules/Public/fileTransfer_UNCPaths.ps1 +++ b/Modules/Public/fileTransfer_UNCPaths.ps1 @@ -1,26 +1,46 @@ -$credOrigen = Get-Credential +[CmdletBinding()] + +param ( + [Parameter(Mandatory = $true)] + [string] + $OriginPath, + [Parameter(Mandatory = $true)] + [string] + $DestinationPath, + [Parameter(Mandatory = $true)] + [string] + $FileNameToCopy +) + +if ($null -ne $OriginPath){ + $originPath = (Get-Item -Path $OriginPath).FullName +} +if ($null -ne $DestinationPath){ + $destinationPath = (Get-Item -Path $DestinationPath).FullName +} +if ($null -ne $FileToCopy){ + $fileNameToCopy = (Get-Item -Path $FileNameToCopy).FullName +} -$rutaOrigen = "\\ave-svr-bk01\c$\Inventario\Avellaneda" +$credential = Get-Credential -$svrOrigen = New-PSDrive -Name "Origen" -Root $rutaOrigen -PSProvider "FileSystem" -Credential $credOrigen -$rutaDestino = "\\novocap.com\Payroll" +$originSVR = New-PSDrive -Name "OriginSVR" -Root $rutaOrigen -PSProvider "FileSystem" -Credential $credential -$nombreArchivoACopiar = "Prueba.docx" -$archivoACopiar = Get-ChildItem -Path $svrOrigen.Root | Where-Object {$_.Name -eq $nombreArchivoACopiar} +$fileToCopy = Get-ChildItem -Path $originSVR.Root | Where-Object {$_.Name -eq $fileNameToCopy} try { - Copy-Item -Path $archivoACopiar.FullName -Destination $rutaDestino + Copy-Item -Path $fileToCopy.FullName -Destination $destinationPath - $archivoEnDestino = Get-ChildItem -Path $rutaDestino | Where-Object {$_.Name -eq $archivoACopiar.Name} + $fileInDestination = Get-ChildItem -Path $destinationPath | Where-Object {$_.Name -eq $fileToCopy.Name} - [String] $hashArchivoOrigen = (Get-FileHash -Path $archivoACopiar.FullName -ErrorAction SilentlyContinue).Hash - [String] $hashArchivoDestino = (Get-FileHash -Path $archivoEnDestino.FullName -ErrorAction SilentlyContinue).Hash + [String] $originFileHash = (Get-FileHash -Path $fileToCopy.FullName -ErrorAction SilentlyContinue).Hash + [String] $destinationFileHash = (Get-FileHash -Path $fileInDestination.FullName -ErrorAction SilentlyContinue).Hash - if ($hashArchivoOrigen -eq $hashArchivoDestino) { - Write-Host "OK, la integridad del archivo es correcta" + if ($originFileHash -eq $destinationFileHash) { + Write-Host "OK, the integrity is correct" } else { [String] $differentHashError = ("[ERROR] - File integrity error: {0}" -f $DestinationFile) @@ -30,5 +50,5 @@ try { # Catch the error when the file is being used catch [Microsoft.PowerShell.Commands.WriteErrorException] { - Write-Host "Error, el archivo se encuentra en uso" + Write-Host "Error, the file es being used" } From fc3db664c856bc5ad8385755764636866745080d Mon Sep 17 00:00:00 2001 From: Nahuel Desimone Date: Fri, 23 Jul 2021 13:12:54 -0300 Subject: [PATCH 4/9] Se crea la carpeta File.Transfer dentro de directorio Modules, y dentro de File.Transfer se encuentra la carpeta Public con el script --- Modules/File.Transfer/Public/Public.psd1 | Bin 0 -> 8596 bytes Modules/File.Transfer/Public/Public.psm1 | 42 ++++++++++++++++++ .../Public/fileTransfer_UNCPaths.ps1 | 1 + 3 files changed, 43 insertions(+) create mode 100644 Modules/File.Transfer/Public/Public.psd1 create mode 100644 Modules/File.Transfer/Public/Public.psm1 rename Modules/{ => File.Transfer}/Public/fileTransfer_UNCPaths.ps1 (99%) diff --git a/Modules/File.Transfer/Public/Public.psd1 b/Modules/File.Transfer/Public/Public.psd1 new file mode 100644 index 0000000000000000000000000000000000000000..211350c8dd28a78bd6d0bd94c21516c7ad904163 GIT binary patch literal 8596 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 literal 0 HcmV?d00001 diff --git a/Modules/File.Transfer/Public/Public.psm1 b/Modules/File.Transfer/Public/Public.psm1 new file mode 100644 index 0000000..7705917 --- /dev/null +++ b/Modules/File.Transfer/Public/Public.psm1 @@ -0,0 +1,42 @@ +# Get functions and types to import +$scriptsToConfigure = @(Get-ChildItem -Path $PSScriptRoot -File -Filter "*.ps1" -ErrorAction SilentlyContinue) +$classesToImport = @( Get-ChildItem -Path $PSScriptRoot\Classes -File -Filter "*.cs" -ErrorAction SilentlyContinue | Sort-Object Name ) +$privateFunctionsToImport = @( Get-ChildItem -Path $PSScriptRoot\Private -File -Filter "*.ps1" -ErrorAction SilentlyContinue | Sort-Object Name ) +$publicFunctionsToImport = @( Get-ChildItem -Path $PSScriptRoot\Public -File -Filter "*.ps1" -ErrorAction SilentlyContinue | Sort-Object Name ) +$scriptsToImport = $privateFunctionsToImport + $publicFunctionsToImport + +# Special Module's configurations +foreach ($script in $scriptsToConfigure) { + try { + if($script.BaseName -eq $script.Directory.Name) + { & $script.FullName } + } + catch { + Write-Warning -Message "Failed to configure the module with $($script.FullName) script: $_" + return + } +} + +# Add types based on C# Classes +foreach ($class in $classesToImport) { + try { + $classType = Get-Content -Path $class.FullName -Raw + Add-Type -TypeDefinition $classType + } + catch { + Write-Warning -Message "Failed to import the class $($class.FullName): $_" + return + } +} + +# Import functions +foreach ($function in $scriptsToImport) { + try { . $function.FullName } + catch { + Write-Warning -Message "Failed to import the script $($function.FullName): $_" + return + } +} + +# Export public functions +Export-ModuleMember -Function $publicFunctionsToImport.BaseName diff --git a/Modules/Public/fileTransfer_UNCPaths.ps1 b/Modules/File.Transfer/Public/fileTransfer_UNCPaths.ps1 similarity index 99% rename from Modules/Public/fileTransfer_UNCPaths.ps1 rename to Modules/File.Transfer/Public/fileTransfer_UNCPaths.ps1 index 5e30c19..2e91565 100644 --- a/Modules/Public/fileTransfer_UNCPaths.ps1 +++ b/Modules/File.Transfer/Public/fileTransfer_UNCPaths.ps1 @@ -30,6 +30,7 @@ $originSVR = New-PSDrive -Name "OriginSVR" -Root $rutaOrigen -PSProvider "FileSy $fileToCopy = Get-ChildItem -Path $originSVR.Root | Where-Object {$_.Name -eq $fileNameToCopy} + try { Copy-Item -Path $fileToCopy.FullName -Destination $destinationPath From dea900b9a84cf0dd2415e31fa8d41293757f40eb Mon Sep 17 00:00:00 2001 From: Nahuel Desimone Date: Fri, 23 Jul 2021 13:25:41 -0300 Subject: [PATCH 5/9] =?UTF-8?q?Se=20modifica=20la=20variable=20del=20root?= =?UTF-8?q?=20en=20el=20cmdlet=20New-PSDrive=20ya=20que=20qued=C3=B3=20con?= =?UTF-8?q?=20el=20nombre=20en=20espa=C3=B1ol?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Modules/File.Transfer/Public/fileTransfer_UNCPaths.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/File.Transfer/Public/fileTransfer_UNCPaths.ps1 b/Modules/File.Transfer/Public/fileTransfer_UNCPaths.ps1 index 2e91565..5ec35a8 100644 --- a/Modules/File.Transfer/Public/fileTransfer_UNCPaths.ps1 +++ b/Modules/File.Transfer/Public/fileTransfer_UNCPaths.ps1 @@ -25,7 +25,7 @@ if ($null -ne $FileToCopy){ $credential = Get-Credential -$originSVR = New-PSDrive -Name "OriginSVR" -Root $rutaOrigen -PSProvider "FileSystem" -Credential $credential +$originSVR = New-PSDrive -Name "OriginSVR" -Root $originPath -PSProvider "FileSystem" -Credential $credential $fileToCopy = Get-ChildItem -Path $originSVR.Root | Where-Object {$_.Name -eq $fileNameToCopy} From 34c4fc4decf8df829f26e7cd66d3176e3f07e59e Mon Sep 17 00:00:00 2001 From: Christian Grimberg Date: Fri, 23 Jul 2021 17:34:05 -0300 Subject: [PATCH 6/9] :bug: Module import errors are printed in console. --- .gitignore | 16 ++++++++- Modules/File.Transfer/File.Transfer.psm1 | 42 ++++++++++++++++++++++++ Modules/Template/Template.psm1 | 4 +-- 3 files changed, 59 insertions(+), 3 deletions(-) create mode 100644 Modules/File.Transfer/File.Transfer.psm1 diff --git a/.gitignore b/.gitignore index 91f3e39..3aec8dc 100644 --- a/.gitignore +++ b/.gitignore @@ -24,4 +24,18 @@ $RECYCLE.BIN/ # ========== # Data files # ========== -*.cro \ No newline at end of file +*.cro + +# ================ +# Encryption Files +# ================ + +# Credential files +*.key + +# ============ +# Module Files +# ============ + +# Manifiest files +/Modules/*/*.psd1 \ No newline at end of file diff --git a/Modules/File.Transfer/File.Transfer.psm1 b/Modules/File.Transfer/File.Transfer.psm1 new file mode 100644 index 0000000..801d0f2 --- /dev/null +++ b/Modules/File.Transfer/File.Transfer.psm1 @@ -0,0 +1,42 @@ +# Get functions and types to import +$scriptsToConfigure = @(Get-ChildItem -Path $PSScriptRoot -File -Filter "*.ps1" -ErrorAction SilentlyContinue) +$classesToImport = @( Get-ChildItem -Path $PSScriptRoot\Classes -File -Filter "*.cs" -ErrorAction SilentlyContinue | Sort-Object Name ) +$privateFunctionsToImport = @( Get-ChildItem -Path $PSScriptRoot\Private -File -Filter "*.ps1" -ErrorAction SilentlyContinue | Sort-Object Name ) +$publicFunctionsToImport = @( Get-ChildItem -Path $PSScriptRoot\Public -File -Filter "*.ps1" -ErrorAction SilentlyContinue | Sort-Object Name ) +$scriptsToImport = $privateFunctionsToImport + $publicFunctionsToImport + +# Special Module's configurations +foreach ($script in $scriptsToConfigure) { + try { + if($script.BaseName -eq $script.Directory.Name) + { & $script.FullName } + } + catch { + Write-Warning -Message "Failed to configure the module with $($script.FullName) script: $_" + return + } +} + +# Add types based on C# Classes +foreach ($class in $classesToImport) { + try { + $classType = Get-Content -Path $class.FullName -Raw + Add-Type -TypeDefinition $classType + } + catch { + Write-Error -Message "Failed to import the class $($class.FullName): $_" + return + } +} + +# Import functions +foreach ($function in $scriptsToImport) { + try { . $function.FullName } + catch { + Write-Error -Message "Failed to import the script $($function.FullName): $_" + return + } +} + +# Export public functions +Export-ModuleMember -Function $publicFunctionsToImport.BaseName diff --git a/Modules/Template/Template.psm1 b/Modules/Template/Template.psm1 index 7705917..801d0f2 100644 --- a/Modules/Template/Template.psm1 +++ b/Modules/Template/Template.psm1 @@ -24,7 +24,7 @@ foreach ($class in $classesToImport) { Add-Type -TypeDefinition $classType } catch { - Write-Warning -Message "Failed to import the class $($class.FullName): $_" + Write-Error -Message "Failed to import the class $($class.FullName): $_" return } } @@ -33,7 +33,7 @@ foreach ($class in $classesToImport) { foreach ($function in $scriptsToImport) { try { . $function.FullName } catch { - Write-Warning -Message "Failed to import the script $($function.FullName): $_" + Write-Error -Message "Failed to import the script $($function.FullName): $_" return } } From d4851db794b10ff728ca2cf0c33663f26a43c3c8 Mon Sep 17 00:00:00 2001 From: Christian Grimberg Date: Fri, 30 Jul 2021 00:20:18 -0300 Subject: [PATCH 7/9] :+1: Add script blocks into script with parameters. --- Modules/File.Transfer/Public/Public.psd1 | Bin 8596 -> 0 bytes Modules/File.Transfer/Public/Public.psm1 | 42 ---------- .../Public/fileTransfer_UNCPaths.ps1 | 73 ++++++++---------- 3 files changed, 34 insertions(+), 81 deletions(-) delete mode 100644 Modules/File.Transfer/Public/Public.psd1 delete mode 100644 Modules/File.Transfer/Public/Public.psm1 diff --git a/Modules/File.Transfer/Public/Public.psd1 b/Modules/File.Transfer/Public/Public.psd1 deleted file mode 100644 index 211350c8dd28a78bd6d0bd94c21516c7ad904163..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8596 zcmeI1OHW%@6ot>YQvbu17?4zjBqYtFRiz*v2@;7S2x$kI7-PVxG1QnmTII)P*g*$X zXC1U%-&sDn=U)37laNZ4A_Vt!9(%97_UrJ^-*e&1@I{ylMR*iip&z(X!Wkf z9O&IsjcjTC^VYB&OW|g?7Osao`n#m-Qn-=LWR3gb*Z3w$^Qa;@`V`Wxl%t3ewj@_O z97?K}@!8|5TJJ`g8QC4pIn}kTr=(|F&wZ_L{MhMe0;-EqzAcSC77mZ}*T^#dd;QLb zmGEtN9(E)rD4y!RuXPTEIVdbftDI`zqqtv3-v{~v%8cduYBcjO&gg}OXxE;e7PKdp z>1*tM9QC{+11sd#y;gZz)as|&|HjDb3FXJ(FG+*6i8Y0gwDetB091@=j!nraW0GU> z?EP$GYGkfU`|{V!OENqWzt*%%H?oUar`i>p97*a{d<$ohfH^A@zD!=jd#}csKWUv~ ztv4UO9@z?RcWQWSNRCB)Khs``9moLkg(L)vev}A*YsW7Mp?$4Ch|DR3Dn7~gDy!?**SkV-A>7mbo%pV$>vcWd2;b=KJCuOy@s?{^1gKiGw9X&l_ozS2I?>+8ky#x{FsmfxTK(`QJl1M( zHDUEQu81eMv_4U4F)Zu1D$hpb6TWk%k$8R1YFKunwTTS}^3>r>2q9N}mT|hG9jjo#x@7Lv86pCa2E-or`95Bv}|R`oHPQyi@8(~F4jOV@tX6>n;37nlpLk|iA3 zne7pL<(n-t&DX2@lMiw~--tfTDj=E1BS)a4u?SSg3)|&LtigAPzuIP9*(4_dsJ1AQrBsgxg3pVW#4%kl`=QmrySFy7gZI}o0vtdupce9 zC|_Pv-BW~heQ_*$rLTkVlip$Hi!!aydawb8r1@RFArq#k*-`Xx-BRWhq99p_dH5DC@VUjmF*JFWINjDT49sM20qQv*(Y~bkcTB!(| zLY&I;OxJ^``Bsc_L?CB{E2<1O!&Z#H3C)Z6{r}Y()_NAym&GzT3cotC{ZRL=Y;1LB z>2~Cls~;+cD=~-B8BjU>sOsW&yjvFTd%C|B5jXd99)o>isJWWgp*VzQe(w&&9>xAd?m`@+XQCP-kH9^o zVFzP1X|?3bxt^uhY-zsH2baBC^=|F%3+=0wK4?ulQ;U*I@Mfx~>3X^4eRip{10j+ zk1qp>ybeB9E;v?=lk@kYC=k8iWRAdVN!^=(!^@HOCS~{I z+*Mliztd-3NV)?XUPz~U49Ppbdd#3>ASYGNR^T=KN_BS0bS#s{17~bdCm*LS(&sIX zM_XFGe!_6A5-rAgm!c^-*->cL__7|eXzBzU;Y$5G;dL!$;$NI3G)MODq;a_dcoD%m zF?V-kOtOcPwO{BfQHqF2H4lf0Cq&!hm}MM|>BlXbncot6#AD`xeXiW*^k}_nceeqrDyUP5F@(b7d_#9?NLWdg~s}@;85@1=vwW$EJ4aebrhWw z67s2svKOvph&M%(73s4ly{Ny?v_!kUle5)ldyU(xUBhs?t*VIQf8%zV4`0=K^=IM+ z{AtD9ZBBfgt<0S9b!U}`GY91P%$g7La-XFbzv+xAk;d+`+J_pEN{7?qGKbJ{ZL7Pf zSGRRQi=YuDVzCwXI%>QO9vVSKyQ79Ir|@#Uj>EXEcTGIS;qYRL(Fg&wD&m zF~WZ%$Luu2S;D!oS?c_pIZ4nIBh&Zk66Vs_Kc`DlR`csZfC!xSX_8}AT7r!|j%Yw8 zNqQ#^xza@%YJIHez9UEQ(^L+N+KY2KIuh3(MgS|2G0DzYidw%Lev7gt-{HNx66e8F zWkXim7GKfYm8wqx$o95)iASo{t6GANPb-)S4z^5rCT}cVIW(VCP?;NTbSWjGi_HJq zROp$Xs@zSZ(&#zOSd&KGjLpc!S#&ST@5;jOnwSmx%c>vFq;s-6V>!J=dsis#RVP)F zFok-CUFi70Y7naw-q@bKc%sUG>&)JyLAuUqUgIs^ z)%*m7>G2CW`2CPoCPkmL9una%8}B807;!q$o4$GpYvBn@b4E3MVykaQyTw?Hg)ZEdb^iiSAg-?f diff --git a/Modules/File.Transfer/Public/Public.psm1 b/Modules/File.Transfer/Public/Public.psm1 deleted file mode 100644 index 7705917..0000000 --- a/Modules/File.Transfer/Public/Public.psm1 +++ /dev/null @@ -1,42 +0,0 @@ -# Get functions and types to import -$scriptsToConfigure = @(Get-ChildItem -Path $PSScriptRoot -File -Filter "*.ps1" -ErrorAction SilentlyContinue) -$classesToImport = @( Get-ChildItem -Path $PSScriptRoot\Classes -File -Filter "*.cs" -ErrorAction SilentlyContinue | Sort-Object Name ) -$privateFunctionsToImport = @( Get-ChildItem -Path $PSScriptRoot\Private -File -Filter "*.ps1" -ErrorAction SilentlyContinue | Sort-Object Name ) -$publicFunctionsToImport = @( Get-ChildItem -Path $PSScriptRoot\Public -File -Filter "*.ps1" -ErrorAction SilentlyContinue | Sort-Object Name ) -$scriptsToImport = $privateFunctionsToImport + $publicFunctionsToImport - -# Special Module's configurations -foreach ($script in $scriptsToConfigure) { - try { - if($script.BaseName -eq $script.Directory.Name) - { & $script.FullName } - } - catch { - Write-Warning -Message "Failed to configure the module with $($script.FullName) script: $_" - return - } -} - -# Add types based on C# Classes -foreach ($class in $classesToImport) { - try { - $classType = Get-Content -Path $class.FullName -Raw - Add-Type -TypeDefinition $classType - } - catch { - Write-Warning -Message "Failed to import the class $($class.FullName): $_" - return - } -} - -# Import functions -foreach ($function in $scriptsToImport) { - try { . $function.FullName } - catch { - Write-Warning -Message "Failed to import the script $($function.FullName): $_" - return - } -} - -# Export public functions -Export-ModuleMember -Function $publicFunctionsToImport.BaseName diff --git a/Modules/File.Transfer/Public/fileTransfer_UNCPaths.ps1 b/Modules/File.Transfer/Public/fileTransfer_UNCPaths.ps1 index 5ec35a8..45a17fa 100644 --- a/Modules/File.Transfer/Public/fileTransfer_UNCPaths.ps1 +++ b/Modules/File.Transfer/Public/fileTransfer_UNCPaths.ps1 @@ -1,5 +1,4 @@ [CmdletBinding()] - param ( [Parameter(Mandatory = $true)] [string] @@ -11,45 +10,41 @@ param ( [string] $FileNameToCopy ) - -if ($null -ne $OriginPath){ - $originPath = (Get-Item -Path $OriginPath).FullName -} -if ($null -ne $DestinationPath){ - $destinationPath = (Get-Item -Path $DestinationPath).FullName -} -if ($null -ne $FileToCopy){ - $fileNameToCopy = (Get-Item -Path $FileNameToCopy).FullName -} - -$credential = Get-Credential - - -$originSVR = New-PSDrive -Name "OriginSVR" -Root $originPath -PSProvider "FileSystem" -Credential $credential - - -$fileToCopy = Get-ChildItem -Path $originSVR.Root | Where-Object {$_.Name -eq $fileNameToCopy} - - -try { +{ + if ($null -ne $OriginPath){ + $originPath = (Get-Item -Path $OriginPath).FullName + } - Copy-Item -Path $fileToCopy.FullName -Destination $destinationPath - - $fileInDestination = Get-ChildItem -Path $destinationPath | Where-Object {$_.Name -eq $fileToCopy.Name} - - [String] $originFileHash = (Get-FileHash -Path $fileToCopy.FullName -ErrorAction SilentlyContinue).Hash - [String] $destinationFileHash = (Get-FileHash -Path $fileInDestination.FullName -ErrorAction SilentlyContinue).Hash - - if ($originFileHash -eq $destinationFileHash) { - Write-Host "OK, the integrity is correct" + if ($null -ne $DestinationPath){ + $destinationPath = (Get-Item -Path $DestinationPath).FullName } - else { - [String] $differentHashError = ("[ERROR] - File integrity error: {0}" -f $DestinationFile) - Write-Error -Message $differentHashError -ErrorAction Stop + + if ($null -ne $FileToCopy){ + $fileNameToCopy = (Get-Item -Path $FileNameToCopy).FullName + } + + $credential = Get-Credential + $originSVR = New-PSDrive -Name "OriginSVR" -Root $originPath -PSProvider "FileSystem" -Credential $credential + $fileToCopy = Get-ChildItem -Path $originSVR.Root | Where-Object {$_.Name -eq $fileNameToCopy} + + try { + Copy-Item -Path $fileToCopy.FullName -Destination $destinationPath + + $fileInDestination = Get-ChildItem -Path $destinationPath | Where-Object {$_.Name -eq $fileToCopy.Name} + + [String] $originFileHash = (Get-FileHash -Path $fileToCopy.FullName -ErrorAction SilentlyContinue).Hash + [String] $destinationFileHash = (Get-FileHash -Path $fileInDestination.FullName -ErrorAction SilentlyContinue).Hash + + if ($originFileHash -eq $destinationFileHash) { + Write-Host "OK, the integrity is correct" + } + else { + [String] $differentHashError = ("[ERROR] - File integrity error: {0}" -f $DestinationFile) + Write-Error -Message $differentHashError -ErrorAction Stop + } + } + # Catch the error when the file is being used + catch [Microsoft.PowerShell.Commands.WriteErrorException] { + Write-Host "Error, the file es being used" } -} - -# Catch the error when the file is being used -catch [Microsoft.PowerShell.Commands.WriteErrorException] { - Write-Host "Error, the file es being used" } From 1540245b97f9ad63a152daf211ee90b21ad20546 Mon Sep 17 00:00:00 2001 From: Christian Grimberg Date: Fri, 30 Jul 2021 00:22:03 -0300 Subject: [PATCH 8/9] :-1: Remove mandatory clause in script parameters. --- Modules/File.Transfer/Public/fileTransfer_UNCPaths.ps1 | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/Modules/File.Transfer/Public/fileTransfer_UNCPaths.ps1 b/Modules/File.Transfer/Public/fileTransfer_UNCPaths.ps1 index 45a17fa..0fc6e19 100644 --- a/Modules/File.Transfer/Public/fileTransfer_UNCPaths.ps1 +++ b/Modules/File.Transfer/Public/fileTransfer_UNCPaths.ps1 @@ -1,13 +1,10 @@ [CmdletBinding()] param ( - [Parameter(Mandatory = $true)] - [string] + [String] $OriginPath, - [Parameter(Mandatory = $true)] - [string] + [String] $DestinationPath, - [Parameter(Mandatory = $true)] - [string] + [String] $FileNameToCopy ) { From 1a70bfe5a6b508be96f8502ac6b1ca500a83e11b Mon Sep 17 00:00:00 2001 From: Christian Grimberg Date: Sat, 31 Jul 2021 23:03:10 -0300 Subject: [PATCH 9/9] :wrench: Change script to function. --- ...sfer_UNCPaths.ps1 => New-FileTransfer.ps1} | 42 ++++++++++--------- 1 file changed, 23 insertions(+), 19 deletions(-) rename Modules/File.Transfer/Public/{fileTransfer_UNCPaths.ps1 => New-FileTransfer.ps1} (70%) diff --git a/Modules/File.Transfer/Public/fileTransfer_UNCPaths.ps1 b/Modules/File.Transfer/Public/New-FileTransfer.ps1 similarity index 70% rename from Modules/File.Transfer/Public/fileTransfer_UNCPaths.ps1 rename to Modules/File.Transfer/Public/New-FileTransfer.ps1 index 0fc6e19..044f32b 100644 --- a/Modules/File.Transfer/Public/fileTransfer_UNCPaths.ps1 +++ b/Modules/File.Transfer/Public/New-FileTransfer.ps1 @@ -1,43 +1,47 @@ -[CmdletBinding()] -param ( - [String] - $OriginPath, - [String] - $DestinationPath, - [String] - $FileNameToCopy -) -{ +function New-FileTransfer { + [CmdletBinding()] + param ( + [Parameter(Mandatory)] + [String] + $OriginPath, + [Parameter(Mandatory)] + [String] + $DestinationPath, + [Parameter(Mandatory)] + [String] + $FileNameToCopy + ) + if ($null -ne $OriginPath){ $originPath = (Get-Item -Path $OriginPath).FullName } - + if ($null -ne $DestinationPath){ $destinationPath = (Get-Item -Path $DestinationPath).FullName } - + if ($null -ne $FileToCopy){ $fileNameToCopy = (Get-Item -Path $FileNameToCopy).FullName } - + $credential = Get-Credential $originSVR = New-PSDrive -Name "OriginSVR" -Root $originPath -PSProvider "FileSystem" -Credential $credential $fileToCopy = Get-ChildItem -Path $originSVR.Root | Where-Object {$_.Name -eq $fileNameToCopy} - + try { Copy-Item -Path $fileToCopy.FullName -Destination $destinationPath - + $fileInDestination = Get-ChildItem -Path $destinationPath | Where-Object {$_.Name -eq $fileToCopy.Name} - + [String] $originFileHash = (Get-FileHash -Path $fileToCopy.FullName -ErrorAction SilentlyContinue).Hash [String] $destinationFileHash = (Get-FileHash -Path $fileInDestination.FullName -ErrorAction SilentlyContinue).Hash if ($originFileHash -eq $destinationFileHash) { - Write-Host "OK, the integrity is correct" + Write-Host "OK, the integrity is correct" } else { - [String] $differentHashError = ("[ERROR] - File integrity error: {0}" -f $DestinationFile) - Write-Error -Message $differentHashError -ErrorAction Stop + [String] $differentHashError = ("[ERROR] - File integrity error: {0}" -f $DestinationFile) + Write-Error -Message $differentHashError -ErrorAction Stop } } # Catch the error when the file is being used