42 lines
1.4 KiB
Perl
42 lines
1.4 KiB
Perl
use strict;
|
|
use warnings;
|
|
use Win32::OLE;
|
|
|
|
my($ServerNumber, $Name, $Path, $Browse, $Read, $Write, $Execute,
|
|
$Script, $AuthAnon, $AuthNTLM, $NoDelete) = @ARGV;
|
|
|
|
$Browse = 0 unless defined $Browse;
|
|
$Read = 1 unless defined $Read;
|
|
$Write = 0 unless defined $Write;
|
|
$Execute = 1 unless defined $Execute;
|
|
$Script = 0 unless defined $Script;
|
|
# if unspecified, enable anonymous access (this is the IIS default)
|
|
$AuthAnon = 1 unless defined $AuthAnon;
|
|
# if unspecified, enable NTLM access (this is the IIS default)
|
|
$AuthNTLM = 1 unless defined $AuthNTLM;
|
|
|
|
my $ADsPath = "IIS://localhost/W3SVC/$ServerNumber/ROOT";
|
|
my $website = Win32::OLE->GetObject($ADsPath) or exit;
|
|
$website->Delete('IISWebVirtualDir', $Name) unless $NoDelete;
|
|
my $virdir = $website->Create('IISWebVirtualDir', $Name) or exit;
|
|
|
|
$virdir->{Path} = $Path;
|
|
$virdir->{AppFriendlyName} = $Name;
|
|
|
|
$virdir->{EnableDirBrowsing} = $Browse;
|
|
$virdir->{AccessRead} = $Read;
|
|
$virdir->{AccessWrite} = $Write;
|
|
$virdir->{AccessExecute} = $Execute;
|
|
$virdir->{AccessScript} = $Script;
|
|
|
|
$virdir->{AccessNoRemoteRead} = 0;
|
|
$virdir->{AccessNoRemoteScript} = 0;
|
|
$virdir->{AccessNoRemoteWrite} = 0;
|
|
$virdir->{AccessNoRemoteExecute} = 0;
|
|
|
|
$virdir->{AuthAnonymous} = $AuthAnon;
|
|
$virdir->{AuthNTLM} = $AuthNTLM;
|
|
|
|
$virdir->AppCreate(1);
|
|
$virdir->SetInfo();
|