рдХрдорд╛рдВрдб рд▓рд╛рдЗрди (IIS) рд╕реЗ FTP рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ

рдпрд╣рд╛рдВ рд╢реБрд░реВ рд╣реБрдИ IIS рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЗ рдЕрдзреНрдпрдпрди рдХреЛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реБрдП, рдореИрдВ рдЗрд╕ рдмрд╛рдд рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдХреИрд╕реЗ FTP рдХреЛ IIS рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╕рдВрд╕реНрдХрд░рдг 7 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░, IIS рдиреЗ рдпреВрдирд┐рд╡рд░реНрд╕рд▓ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдЯреВрд▓ AppCmd тАЛтАЛрдкреЗрд╢ рдХрд┐рдпрд╛ред рдФрд░ рдЕрдм рдЖрдк рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рдПрдлрд╝рдЯреАрдкреА рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдареАрдХ рдЙрд╕реА рддрд░рд╣ рдЬреИрд╕реЗ рдЖрдк рдЕрднреА (рдЖрдИрдЖрдИрдПрд╕ 7 рд╕реЗ рд╢реБрд░реВ) рд╡реЗрдмрд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рд╕рд╛рде рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рджреЗрдЦреЗрдВред

рдПрдлрд╝рдЯреАрдкреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ


рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХ рдШрдЯрдХреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА IIS рд╕реНрдерд╛рдкрд┐рдд рд╣реИ рдФрд░ рд╣рдореЗрдВ рдХреЗрд╡рд▓ FTP рд╕реЗрд╡рд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо pkgmgr рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ:
pkgmgr /iu:IIS-FTPServer;IIS-FTPSvc;IIS-FTPExtensibility; 


рдПрдлрд╝рдЯреАрдкреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ


IIS рдЕрдм рдкрд╣рд▓реЗ FTP рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред AppCmd тАЛтАЛрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рдкрде рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:% windir% \ system32 \ inetsrv \ appcmd.exe, рдпрд╛ рдкрде рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЗ рд▓рд┐рдП рдкрде рд▓рд┐рдЦреЗрдВред рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЕрдкрдиреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рд╕реАрдзреЗ appcmd рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛:

 cd %windir%\system32\inetsrv set ftproot=%systemdrive%\inetpub\ftproot set ftpsite=MyFtp if not exist "%ftproot%" (mkdir "%ftproot%") appcmd add site /name:%ftpsite% /bindings:ftp://*:21 /physicalpath:"%ftproot%" appcmd set config -section:system.applicationHost/sites /[name='%ftpsite%'].ftpServer.security.authentication.AnonimouseAuthentication.enabled:true appcmd set config -section:system.applicationHost/sites /[name='%ftpsite%'].ftpServer.security.ssl.controlChannelPolicy:"SslAllow" appcmd set config -section:system.applicationHost/sites /[name='%ftpsite%'].ftpServer.security.ssl.dataChannelPolicy:"SslAllow" appcmd set config -section:system.applicationHost/sites /[name='%ftpsite%'].ftpServer.directoryBrowse.showFlags:DisplayVirtualDirectories appcmd set config -section:system.applicationHost/sites /[name='%ftpsite%'].ftpServer.userIsolation.mode:StartInUsersDirectory appcmd set config %ftpsite% /section:system.ftpserver/security/authorization /+[accessType='Allow',permissions='Read',roles='',users='*'] /commit:apphost 

рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд┐рд╕реНрдЯрдо рдбреНрд░рд╛рдЗрд╡ рдкрд░ inetpub\ftproot , рдФрд░ рдЗрд╕реЗ рд╣рдорд╛рд░реА MyFrp рд╕рд╛рдЗрдЯ рдХреЗ рд░реВрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдХрд░реЗрдЧреАред рдЕрдирд╛рдо рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдордиреЗ рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рд╣реИред рдФрд░ SSL рдХреЛ рдЕрдиреБрдорддрд┐ рдореЛрдб рдореЗрдВ рд░рдЦреЗрдВ (рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рд╣реИ)ред рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐, рд╣рдордиреЗ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкрдарди рдЕрдиреБрдорддрд┐рдпрд╛рдБ рд╡рд┐рддрд░рд┐рдд рдХреА рд╣реИрдВред рдЕрдм рд╣рдореЗрдВ рдмрд╕ рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдкрд░ рд╡рд░реНрдЪреБрдЕрд▓ рдлреЛрд▓реНрдбрд░ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реИ рдФрд░ рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╢реЛрдлреНрд▓реИрдЧреНрд╕: рдбрд┐рд╕реНрдкреНрд▓реЗрд╡рд░реНрдЯреНрдпреВрдЕрд▓рдбрд╛рдпрд░реЗрдХреНрдЯрд░реАрдЬ рдкреИрд░рд╛рдореАрдЯрд░ рд╣рдореЗрдВ рди рдХреЗрд╡рд▓ рд░реВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА, рдмрд▓реНрдХрд┐ рд╡рд░реНрдЪреБрдЕрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рднреА рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред
рдФрд░ рдЗрд╕рд▓рд┐рдП, рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝реЗрдВ:
 appcmd add vdir /app.name:"%ftpsite%/" /path:/path1 /physicalPath:D:\path1 appcmd add vdir /app.name:"%ftpsite%/" /path:/path2 /physicalPath:\\MEDIASERVER\path2 


рдЪреЗрдХ


рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдФрд░ ftp рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:
 c:\Users\User>ftp server Connected to SERVER.domain.corp. 220 Microsoft FTP Service User (SERVER.domain.corp:(none)): anonymous 331 Anonymous access allowed, send identity (e-mail name) as password. Password: 230-User logged in. Win32 error: The operation completed successfully. Error details: File system returned an error. 230 End ftp> dir 200 EPRT command successful. 125 Data connection already open; Transfer starting. 06-01-12 04:33PM <DIR> path1 06-01-12 04:33PM <DIR> path2 226 Transfer complete. ftp: 93 bytes received in 0,00Seconds 93000,00Kbytes/sec. ftp> 


рдХреНрдпреЛрдВ рдирд╣реАрдВ PowerShell


рдкрд╛рд╡рд░рд╢реЗрд▓ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреБрдЫ рдЫреЛрдЯреЗ рдХреЙрд╕реНрдореЗрдЯрд┐рдХ рдмрджрд▓рд╛рд╡реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рддреЛ рдЖрдкрдХреЛ рдПрдлрд╝рдЯреАрдкреА рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
 Add-WindowsFeature Web-Ftp-Server,Web-Ftp-Service,Web-Ftp-Ext 

рдПрдлрд╝рдЯреАрдкреА рд╕рд╛рдЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП:

 $ftproot="$env:systemdrive\inetpub\ftproot" $ftpsite="MyFtp" if (-not (test-path $ftproot)){ new-item -path $ftproot -type directory } new-item -path IIS:/sites/$ftpsite -type site -bindings @{protocol='ftp';bindingInformation=':21:'} -physicalpath:$ftproot 


рдЗрд╕реА рддрд░рд╣, рдЖрдк рдЖрднрд╛рд╕реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:
 new-item -path IIS:/sites/$ftpsite/path1 -type virtualdirectory -physicalpath d:\share 

рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕рдордЭрджрд╛рд░ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╣рд▓ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рд╡рд╣ рд╕рдм рдЬреЛ рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдФрд░ рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ред рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рдиреЗ рдореБрдЭреЗ рдЗрд╕ рддрдереНрдп рдХреЗ рдкреНрд░рдХрд╛рд╢ рдореЗрдВ рдкреНрд░реЗрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдХрд┐ рдПрдкреАрдПрдЪрдУрдПрд╕рдЯреА рд╕реНрддрд░ рдкрд░ рдХреБрдЫ рдмрджрд▓рд╛рд╡ рдХрд┐рдП рдЬрд╛рдПрдВред
рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рд╕реБрдЭрд╛рд╡ рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рд╣реИрдВ - рд╣рдореЗрд╢рд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред рдЦреБрд╢реА рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝реВрдВрдЧрд╛ред

Source: https://habr.com/ru/post/In145598/


All Articles