Home
Operating System
Windows
Linux
Tutorial
Windows Server
About
☰
FTP SERVER ( WINDOWS SERVER )
# Create FTP Folder & Test Files
New-Item -Path "C:\FTPShare" -ItemType Directory -Force icacls "C:\FTPShare" /grant "IUSR:(OI)(CI)RX" Set-Location "C:\FTPShare" "file.txt", "file2.txt" | ForEach-Object { New-Item -Path "." -Name $_ -ItemType File -Value "This is the file text." -Force }
✏️ Edit
📋 Copy
Copied!
# Install IIS + FTP Features
Install-WindowsFeature ` Web-Server, ` Web-Mgmt-Console, ` Web-Ftp-Server, ` Web-Ftp-Service, ` Web-Ftp-Ext
✏️ Edit
📋 Copy
Copied!
# Load IIS Module & Create FTP Site
Import-Module WebAdministration New-WebFtpSite ` -Name "MyFTP" ` -Port 21 ` -PhysicalPath "C:\FTPShare"
✏️ Edit
📋 Copy
Copied!
# Anonymous Authentication
& "$env:windir\System32\inetsrv\appcmd.exe" set config ` -section:system.applicationHost/sites ` "/[name='MyFTP'].ftpServer.security.authentication.anonymousAuthentication.enabled:True" ` /commit:apphost
✏️ Edit
📋 Copy
Copied!
# Basic Authentication
& "$env:windir\System32\inetsrv\appcmd.exe" set config ` -section:system.applicationHost/sites ` "/[name='MyFTP'].ftpServer.security.authentication.basicAuthentication.enabled:False" ` /commit:apphost
✏️ Edit
📋 Copy
Copied!
## Clears all existing authorization rules
Clear-WebConfiguration ` -Filter "system.ftpServer/security/authorization" ` -Location "MyFTP"
✏️ Edit
📋 Copy
Copied!
# Adds access rule
Add-WebConfiguration ` -Filter "system.ftpServer/security/authorization" ` -Location "MyFTP" ` -Value @{ accessType = "Allow" users = "?" permissions = "Read" }
✏️ Edit
📋 Copy
Copied!
# users or roles=(group)
# SSL Policies ( Allow non-SSL )
& "$env:windir\System32\inetsrv\appcmd.exe" set config ` -section:system.applicationHost/sites ` "/[name='MyFTP'].ftpServer.security.ssl.controlChannelPolicy:SslAllow" ` /commit:apphost & "$env:windir\System32\inetsrv\appcmd.exe" set config ` -section:system.applicationHost/sites ` "/[name='MyFTP'].ftpServer.security.ssl.dataChannelPolicy:SslAllow" ` /commit:apphost & "$env:windir\System32\inetsrv\appcmd.exe" set config ` -section:system.applicationHost/sites ` "/siteDefaults.ftpServer.security.ssl.controlChannelPolicy:SslAllow" ` /commit:apphost & "$env:windir\System32\inetsrv\appcmd.exe" set config ` -section:system.applicationHost/sites ` "/siteDefaults.ftpServer.security.ssl.dataChannelPolicy:SslAllow" ` /commit:apphost
✏️ Edit
📋 Copy
Copied!
# Configure Firewall
New-NetFirewallRule ` -DisplayName "FTP Port 21" ` -Direction Inbound ` -Protocol TCP ` -LocalPort 21 ` -Action Allow ` -ErrorAction SilentlyContinue
✏️ Edit
📋 Copy
Copied!
# Restart Service
Restart-Service FTPSVC
✏️ Edit
📋 Copy
Copied!
# Verify FTP
Get-Website -Name "MyFTP"
✏️ Edit
📋 Copy
Copied!
Labels
all
(21 )
autocad
(3 )
css
(2 )
linux
(5 )
op_system
(18 )
website
(4 )
windows
(14 )
windowsServer
(17 )