Files
SauvegardePST/Perl/bin/IISVirtualDir.pl
2025-08-27 09:03:01 +02:00

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();