For the complete documentation index, see llms.txt. This page is also available as Markdown.

Como instalar e configurar um servidor FTP no Windows através do PowerShell

Se queres saber como instalar e configurar um servidor FTP no Windows através do PowerShell acompanha-nos ao longo deste breve tutorial onde o faremos em passos simples.

Este tutorial complementa o que já fizemos através do ambiente gráfico e a que demos o título de Como instalar e configurar um servidor FTP no Windows (IIS){target="_blank" rel="noopener"}.

NOTA: Diante de todas as linhas foi acrescentada uma cerquilha (#), que é colocada por razões de segurança, uma vez que, em caso de copiar uma destas linhas por erro, ela não será executada (a cerquilha é usada para comentar código, pelo que se torna não executável). Para poder ser executado, deve retirar-se o carácter "#" de todas as linhas.

Como instalar e configurar um servidor FTP no Windows através do PowerShell?

Pré-requisitos ou pré-configuração.

Para concluir de forma satisfatória este tutorial e poder instalar e configurar um servidor FTP no Windows através do PowerShell será necessário:

  • Por um lado, estar registado na Plataforma Plenit com uma organização e estar registado na mesma após fazer Iniciar sessão{target="_blank" rel="noopener"}.

  • Por outro lado, ter subscrito uma Subscrição de Servidores{target="_blank" rel="noopener"}

  • Ter um servidor Windows operativo dentro da subscrição.

Passo 1. Instalar e configurar um servidor FTP no Windows através do PowerShell

A primeira coisa que faremos será instalar a funcionalidade de servidor FTP, para o que se deverá iniciar a consola do PowerShell, ou a do PowerShell ISE. Tal como comento ultimamente, o mais desejável seria usar o ISE (por assim dizer, o IDE da Microsoft), já que nos permite fazer testes, ver onde falha, etc.

Uma vez na consola (ou ISE) do PowerShell, deverão executar os comandos "Install-WindowsFeature" (1).

# Install-WindowsFeature Web-FTP-Server -IncludeAllSubFeature

# Install-WindowsFeature Web-Server -IncludeAllSubFeature -IncludeManagementTools

# Import-Module WebAdministration

Onde:

  • O comando "Install-WindowsFeature" instala a funcionalidade do Windows que lhe passarmos como parâmetro.

  • O modificador "-IncludeAllSubFeature" instala todas as opções que a funcionalidade do Windows tiver.

  • O modificador "-IncludeManagementTools" instala as ferramentas administrativas dessa funcionalidade.

Paso 1. Hacemos el despliegue del servicio de FTP mediante
PowerShell\

Passo 1. Fazemos a implementação do serviço de FTP através do PowerShell

Uma vez feito isto, continuamos a instalação importando o módulo de administração do FTP através de o comando "Import-Module" (2).

Paso 1. Importamos el módulo de administración del FTP mediante
PowerShell\

Passo 1. Importamos o módulo de administração do FTP através do PowerShell

De seguida, configura-se o novo site FTP para prestar serviço.

Este terá uma série de características que deverão ser configuradas, podendo lançar-se diretamente um comando como o seguinte:

*# New-WebFtpSite -Name \ -Port -PhysicalPath *

Onde:

  • O comando "New-WebFtpSite" implementa o novo site de FTP.

  • "-Name " descreve o nome que daremos ao site de FTP.

  • "-Port " é um número que indica por que porta escuta o FTP.

  • "-PhysicalPath " é o caminho do servidor onde estão os dados do FTP.

Desta forma, poderia ficar assim:

# New-WebFtpSite -Name 'FTP Site Nacho' -Port '21' -PhysicalPath 'C:\datos\ftproot'

Poderíamos substituir diretamente aí e teríamos a configuração feita, mas isto é um pouco uma chapuza, pelo que costumam usar-se variáveis para poder melhorar a utilização em ocasiões futuras.

Para ter tudo mais organizado, criaremos algumas variáveis, tal como comentávamos, que serão as seguintes:

  • "-Name " descreve o nome que daremos ao site de FTP, sendo a variável "$Name".

  • "-Port " é um número que indica por que porta escuta o FTP, sendo a variável "$Port".

  • "-PhysicalPath " é o caminho do servidor onde estão os dados do FTP, sendo a variável "$Root".

Tendo isto em conta, configura-se tudo e termina-se executando os seguintes comandos (3):

# $Name = 'FTP Site Nacho'

# $Root = 'C:\datos\ftproot'

# $Port = 21

# New-WebFtpSite -Name $Name -Port $Port -PhysicalPath $Root

Paso 1. Configuramos el site de FTP para el
servicio\

Passo 1. Configuramos o site de FTP para o serviço

Neste momento já foi instalado o servidor de FTP em si, e ficará configurar, adicionar utilizadores, repositórios, assegurando-o, etc.

Neste ponto, para mim, a primeira coisa seria criar um utilizador (e o seu grupo associado) para poder testar que podemos fazer a ligação e não simples. Assim, se depois o assegurarmos fechando portas ou configurando certificados, teremos a certeza de que esta parte estava a funcionar.

Neste caso, primeiro criamos um grupo para os utilizadores com capacidade de ligar ao FTP, uma vez que é melhor criar um grupo ao qual se possam depois adicionar.

Para criar o grupo de FTP (4) usamos:

# $FTPUserGroupName = «Utilizadores de FTP»

# $ADSI = [ADSI]»WinNT://$env:ComputerName»

# $FTPUserGroup = $ADSI.Create(«Group», «$FTPUserGroupName»)

# $FTPUserGroup.SetInfo()

# $FTPUserGroup.Description = «Os membros deste grupo podem ligar ao FTP»

# $FTPUserGroup.SetInfo()

Paso 1. Creamos el grupo de FTP para el
servicio\

Passo 1. Criamos o grupo de FTP para o serviço

Neste caso, faremos utilização dos comandos do ADSI para a implementação do grupo, usando como sempre certas variáveis para tornar a configuração mais simples.

O seguinte seria criar o utilizador com o qual se vão fazer as ligações ao FTP (5).

# $FTPUserName = «ftpnacho»

# $FTPPassword = 'Contrasenya123!'

# $CreateUserFTPUser = $ADSI.Create(«User», «$FTPUserName»)

# $CreateUserFTPUser.SetInfo()

# $CreateUserFTPUser.SetPassword(«$FTPPassword»)

# $CreateUserFTPUser.SetInfo()

Paso 1. Creamos un usuario para las conexiones de
FTP\

Passo 1. Criamos um utilizador para as ligações de FTP

Uma vez feito isto, deve-se adicionar ao grupo de FTP do sistema (6), executando para isso:

# $UserAccount = New-Object System.Security.Principal.NTAccount(«$FTPUserName»)

# $SID = $UserAccount.Translate([System.Security.Principal.SecurityIdentifier])

# $Group = [ADSI]»WinNT://$env:ComputerName/$FTPUserGroupName,Group»

# $User = [ADSI]»WinNT://$SID»

# $Group.Add($User.Path)

Paso 1. Añadimos el usuario de FTP al grupo de FTP del
sistema\

Passo 1. Adicionamos o utilizador de FTP ao grupo de FTP do sistema

Neste momento deve-se ativar a autenticação básica do site FTP e em seguida autorizar o grupo do Windows (7) que contém o utilizador FTP para que possa ter acesso ao site FTP e, portanto, possa fazer utilização do serviço.

Para isso devem executar-se os seguintes comandos:

[# $FTPSitePath][ = ][«IIS:\Sites\][$FTPSiteName][«]

[# $BasicAuth][ = ]['ftpServer.security.authentication.basicAuthentication.enabled']

[[# ]Set-ItemProperty][ -Path ][$FTPSitePath][ -Name ][$BasicAuth][ -Value ][$True]

[# $Param][ = @][{]

[[# ]Filter][ = ][«/system.ftpServer/security/authorization»]

[ [# ]Value = @][{]

[ [# ]accessType = ][«Allow»]

[ [# ]roles = ][«][$FTPUserGroupName][«]

[ [# ]permissions = ][1]

[[# ]}]

[ [# ]PSPath = 'IIS:\']

[ [# ]Location = ][$FTPSiteName]

[[# ]}]

[[# ]Add-WebConfiguration][ @][param]

Paso 1. Configuramos la autenticación básica para nuestro sitio de
FTP\

Passo 1. Configuramos a autenticação básica para o nosso site de FTP

O passo seguinte é alterar a política de SSL e as permissões de ficheiros (NTFS) na pasta raiz do servidor FTP (8), ou seja, onde são guardados todos os ficheiros carregados pelos utilizadores do serviço.

Para isso executamos os seguintes comandos:

# $SSLPolicy = @(

# 'ftpServer.security.ssl.controlChannelPolicy',

# 'ftpServer.security.ssl.dataChannelPolicy'

# )

# Set-ItemProperty -Path $FTPSitePath -Name $SSLPolicy[0] -Value $false

# Set-ItemProperty -Path $FTPSitePath -Name $SSLPolicy[1] -Value $false

Paso 1. Cambiamos la política de SSL y los permisos de ficheros en la
carpeta raíz del servidor
FTP\

Passo 1. Alteramos a política de SSL e as permissões de ficheiros na pasta raiz do servidor FTP

O passo seguinte é executar os seguintes comandos para configurar as permissões NTFS na pasta raiz e assim permitir que possam aceder e trabalhar sobre esta pasta aqueles utilizadores que pertençam ao grupo de FTP.

# $UserAccount = New-Object System.Security.Principal.NTAccount(«$FTPUserGroupName»)

# $AccessRule = [System.Security.AccessControl.FileSystemAccessRule]::new($UserAccount,

# 'ReadAndExecute',

# 'ContainerInherit,ObjectInherit',

# 'None',

# 'Allow'

# )

# $ACL = Get-Acl -Path $FTPRootDir

# $ACL.SetAccessRule($AccessRule)

# $ACL | Set-Acl -Path $FTPRootDir

Por último, para que todas as alterações tenham efeito deve reiniciar a instância do FTP (9), para isso deve executar-se:

# Restart-WebItem «IIS:\Sites\$Name» -Verbose

Paso 1. Reiniciamos el servicio de FTP desde consola de
PowerShell\

Passo 1. Reiniciamos o serviço de FTP a partir da consola do PowerShell

Com isto já terminou o processo de configuração do FTP.

Conclusões e próximos passos:

Ao longo deste tutorial vimos como realizar a** instalação e configurar um servidor FTP no Windows através do PowerShell** dentro de um dos servidores Windows alojados dentro da Plenit.

Se o que leste até agora te pareceu interessante, podes aprofundar mais sobre alguns serviços relacionados; é possível que os seguintes tutoriais te interessem:

Esperamos que, com este pequeno guia, não tenhas problemas ao configurar o teu servidor FTP de forma rápida e funcional, mas, se os tiveres, não hesites em contactar-nos para que possamos dar-te uma ajuda.

Obrigado pela tua confiança.

Última atualização

Isto foi útil?