Category Archives: Automation

Elevating powershell scripts, and staying in the script folder

Sometimes you want to be able to just double click your powershell scripts and see them work….putting this code at the top of your script will do just that by detecting if the script is running as administrator with administrative priviledges. If not, the script will launch a new instance of itself with an elevation prompt.

$scriptPath = split-path -parent $MyInvocation.MyCommand.Definition
If (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator"))
{
 $arguments = "& '" + $myinvocation.mycommand.definition + "'"
 Start-Process powershell -Verb runAs -ArgumentList $arguments
 Break
 }
 cd $scriptPath

Automatic IIS FTP server installation on Windows 7

For a certain application, a locally installed FTP server was required. Scripting this seemed easy, and plenty of examples could be found but none worked properly. So I’m sharing my method with you. Below code installs FTP. The final 3 lines enable anonymous authentication and create a Default FTP site that points to c:\temp

Hope it helps someone! Do note the reboot is actually mandatory.

dism.exe /Online /Enable-Feature /FeatureName:IIS-FTPExtensibility /FeatureName:IIS-FTPServer /FeatureName:IIS-FTPSvc /FeatureName:IIS-IIS6ManagementCompatibility /FeatureName:IIS-ManagementConsole /FeatureName:IIS-ManagementScriptingTools /FeatureName:IIS-ManagementService /FeatureName:IIS-Metabase /FeatureName:IIS-WebServer /FeatureName:IIS-WebServerManagementTools /FeatureName:IIS-WebServerRole /FeatureName:IIS-WindowsAuthentication
<REBOOT HERE>
%windir%\system32\inetsrv\AppCmd set config -section:system.applicationHost/sites /siteDefaults.ftpServer.security.authentication.anonymousAuthentication.enabled:"True" /commit:apphost
%windir%\system32\inetsrv\AppCmd add site /name:"Default FTP Site" /bindings:ftp://localhost:21 /physicalpath:c:\temp\
%windir%\system32\inetsrv\AppCmd ADD vdir /app.name:"Default FTP Site/" /physicalpath:c:\temp