param(
[parameter(Position=0,Mandatory=
$true
,HelpMessage=
"Name of Server"
)]
[ValidateNotNullorEmpty()]
[string]
$serverName
,
[parameter(Position=1,Mandatory=
$true
)]
[ValidateNotNullorEmpty()]
[string]
$WebSiteName
,
[parameter(Position=2,Mandatory=
$true
)]
[ValidateNotNullorEmpty()]
[string]
$ServiceUser
,
[parameter(Position=3,Mandatory=
$true
)]
[ValidateNotNullorEmpty()]
[string]
$ServicePassword
,
[parameter(Position=4,Mandatory=
$true
)]
[ValidateNotNullorEmpty()]
[string]
$PhysicalPath
,
[parameter(Position=5,Mandatory=
$false
)]
[ValidateNotNullorEmpty()]
[string]
$WebBinding
,
[parameter(Position=6,Mandatory=
$true
)]
[ValidateNotNullorEmpty()]
[string]
$ManagedRunTimeVersion
)
$session
= New
-PSSession
-ComputerName
$serverName
-Credential
Get-Credential
Invoke
-Command
-Session
$session
-ScriptBlock
{
param(
[string]
$serverName
,
[string]
$strName
,
[string]
$strUser
,
[string]
$strPass
,
[string]
$strPath
,
[string]
$strNewURL
,
[string]
$strRunTime
)
Import
-Module
WebAdministration
New
-WebAppPool
-Name
$strName
Set-ItemProperty
("IIS:\AppPools\" +
$strName
)
-name
processModel.identityType
-value
3
Set-ItemProperty
("IIS:\AppPools\" +
$strName
)
-name
processModel.username
-value
$strUser
Set-ItemProperty
("IIS:\AppPools\" +
$strName
)
-name
processModel.password
-value
$strPass
Set-ItemProperty
("IIS:\AppPools\" +
$strName
)
-name
managedRuntimeVersion
-value
$strRunTime
if (
test-path
$strPath
){
New
-Website
&
Set-ItemProperty
("IIS:\Sites\" +
$strName
)
-name
applicationPool
-value
$strName
Set-ItemProperty
("IIS:\Sites\" +
$strName
)
-name
ApplicationDefaults.applicationPool
-value
$strName
Set-ItemProperty
("IIS:\Sites\" +
$strName
)
-name
..username
-value
$strUser
Set-ItemProperty
("IIS:\Sites\" +
$strName
)
-name
..password
-value
$strPass
}
else{
New-item
-path
$strPath
-type
directory
New
-Website
&
Set-ItemProperty
("IIS:\Sites\" +
$strName
)
-name
applicationPool
-value
$strName
Set-ItemProperty
("IIS:\Sites\" +
$strName
)
-name
ApplicationDefaults.applicationPool
-value
$strName
Set-ItemProperty
("IIS:\Sites\" +
$strName
)
-name
..username
-value
$strUser
Set-ItemProperty
("IIS:\Sites\" +
$strName
)
-name
..password
-value
$strPass
}
}
-args
$serverName
,
$WebSiteName
,
$ServiceUser
,
$ServicePassword
,
$PhysicalPath
,
$WebBinding
,
$ManagedRunTimeVersion
Remove
-PSSession
$session