Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Creazione VD in IIS 5.0 tramite VB script

    ciao

    ho la necessita di creare piu di 30 VD in una IIS 5.0 in diversi server...
    lo script sotto fa tutto tranne settare la proprieta Execute_Permissions: Script only
    se setto:
    vDir.AccessExecute = true ----->script and excutables
    vDir.AccessExecute = false ----->none

    MAPER SETTARE Script only??????

    GRAZIE

    codice:
    Option Explicit
    
    On Error Resume Next
    
    Dim oArgs, ArgNum
    
    Dim ArgComputer, ArgWebSites, ArgVirtualDirs, ArgDirNames(), ArgDirPaths(), DirIndex
    Dim ArgComputers
    
    Set oArgs = WScript.Arguments
    ArgComputers = Array("LocalHost")
    
    ArgNum = 0
    While ArgNum < oArgs.Count
    
    	If (ArgNum + 1) >= oArgs.Count Then
    		Call DisplayUsage
    	End If	
    
    	Select Case LCase(oArgs(ArgNum))
    		Case "--computer","-c":
    			ArgNum = ArgNum + 1
    			ArgComputers = Split(oArgs(ArgNum), ",", -1)
    		Case "--website","-w":
    			ArgNum = ArgNum + 1
    			ArgWebSites = oArgs(ArgNum)
    		Case "--virtualdir","-v":
    			ArgNum = ArgNum + 1
    			ArgVirtualDirs = Split(oArgs(ArgNum), ",", -1)
    		Case "--help","-?"
    			Call DisplayUsage
    	End Select	
    
    	ArgNum = ArgNum + 1
    Wend
    
    ArgNum = 0
    DirIndex = 0
    
    ReDim ArgDirNames((UBound(ArgVirtualDirs)+1) \ 2)
    ReDim ArgDirPaths((UBound(ArgVirtualDirs)+1) \ 2)
    
    if isArray(ArgVirtualDirs) then
    	While ArgNum <= UBound(ArgVirtualDirs)
    		ArgDirNames(DirIndex) = ArgVirtualDirs(ArgNum)
    		If (ArgNum + 1) > UBound(ArgVirtualDirs) Then
    			WScript.Echo "Error understanding virtual directories"
    			Call DisplayUsage
    		End If	
    		ArgNum = ArgNum + 1
    		ArgDirPaths(DirIndex) = ArgVirtualDirs(ArgNum)
    		ArgNum = ArgNum + 1
    		DirIndex = DirIndex + 1
    	Wend
    end if 
    
    If (ArgWebSites = "") Or (IsArray(ArgDirNames) = False or IsArray(ArgDirPaths) = False) Then
    	Call DisplayUsage
    Else
    	Dim compIndex
    	for compIndex = 0 to UBound(ArgComputers)
    		Call ASTCreateVirtualWebDir(ArgComputers(compIndex),ArgWebSites,ArgDirNames,ArgDirPaths)
    	next
    End If
    
    '---------------------------------------------------------------------------------
    Sub Display(Msg)
    	WScript.Echo Now & ". Error Code: " & Hex(Err) & " - " & Msg
    End Sub
    
    Sub Trace(Msg)
    	WScript.Echo Now & " : " & Msg	
    End Sub
    
    Sub DisplayUsage()
    	WScript.Echo "Usage: mkwebdir [--computer|-c COMPUTER1,COMPUTER2]"
    	WScript.Echo "                <--website|-w WEBSITE1>"
    	WScript.Echo "                <--virtualdir|-v NAME1,PATH1,NAME2,PATH2,...>"
    	WScript.Echo "                [--help|-?]"	
    
    	WScript.Echo ""
    	WScript.Echo "Note, WEBSITE is the Web Site on which the directory will be created."
    	WScript.Echo "The name can be specified as one of the following, in the priority specified:"
    	WScript.Echo " Server Number (i.e. 1, 2, 10, etc.)"
    	WScript.Echo " Server Description (i.e ""My Server"")"
    	WScript.Echo " Server Host name (i.e. ""www.domain.com"")"
    	WScript.Echo " IP Address (i.e., 127.0.0.1)"
    	WScript.Echo ""
    	WScript.Echo ""
    	WScript.Echo "Example : mkwebdir -c MyComputer -w ""Default Web Site"""
    	WScript.Echo "           -v ""dir1"",""c:\inetpub\wwwroot\dir1"",""dir2"",""c:\inetpub\wwwroot\dir2"""
    
    	WScript.Quit
    End Sub
    '---------------------------------------------------------------------------------
    
    
    Sub ASTCreateVirtualWebDir(ComputerName,WebSiteName,DirNames,DirPaths)
    	Dim Computer, webSite, WebSiteID, vRoot, vDir, DirNum
    	On Error Resume Next
    	
    	set webSite = findWeb(ComputerName, WebSiteName)
    	if IsObject(webSite) then
    		set vRoot = webSite.GetObject("IIsWebVirtualDir", "Root")
    		Trace "Accessing root for " & webSite.ADsPath
    		If (Err <> 0) Then
    			Display "Unable to access root for " & webSite.ADsPath
    		Else
    			DirNum = 0
    			If (IsArray(DirNames) = True) And (IsArray(DirPaths) = True) And (UBound(DirNames) = UBound(DirPaths)) Then
    				While DirNum < UBound(DirNames)
    					'Create the new virtual directory
    					Set vDir = vRoot.Create("IIsWebVirtualDir",DirNames(DirNum))
    					
    					If (Err <> 0) Then
    						Display "Unable to create " & vRoot.ADsPath & "/" & DirNames(DirNum) &"."
    					Else
    						'Set the new virtual directory path
    						vDir.AccessRead = true
    						vDir.AccessExecute = true   
    						vDir.Path = DirPaths(DirNum)
    						If (Err <> 0) Then
    							Display "Unable to bind path " & DirPaths(DirNum) & " to " & vRootName & "/" & DirNames(DirNum) & ". Path may be invalid."
    						Else
    							'Save the changes
    							vDir.SetInfo
    							If (Err <> 0) Then
    								Display "Unable to save configuration for " & vRootName & "/" & DirNames(DirNum) &"."
    							Else
    								Trace "Web virtual directory " & vRootName & "/" & DirNames(DirNum) & " created successfully."
    							End If
    						End If
    					End If
    					Err = 0
    					DirNum = DirNum + 1
    				Wend
    			End If
    		End If
    	else
    		Display "Unable to find "& WebSiteName &" on "& ComputerName
    	End if
    	Trace "Done."
    End Sub
    
    function getBinding(bindstr)
    
    	Dim one, two, ia, ip, hn
    	
    	one=Instr(bindstr,":")
    	two=Instr((one+1),bindstr,":")
    	
    	ia=Mid(bindstr,1,(one-1))
    	ip=Mid(bindstr,(one+1),((two-one)-1))
    	hn=Mid(bindstr,(two+1))
    	
    	getBinding=Array(ia,ip,hn)
    end function
    
    Function findWeb(computer, webname)
    	On Error Resume Next
    
    	Dim websvc, site
    	dim webinfo
    	Dim aBinding, binding
    
    	set websvc = GetObject("IIS://"&computer&"/W3svc")
    	if (Err <> 0) then
    		exit function
    	end if
    	' First try to open the webname.
    	set site = websvc.GetObject("IIsWebServer", webname)
    	if (Err = 0) and (not isNull(site)) then
    		if (site.class = "IIsWebServer") then
    			' Here we found a site that is a web server.
    			set findWeb = site
    			exit function
    		end if
    	end if
    	err.clear
    	for each site in websvc
    		if site.class = "IIsWebServer" then
    			'
    			' First, check to see if the ServerComment
    			' matches
    			'
    			If site.ServerComment = webname Then
    				set findWeb = site
    				exit function
    			End If
    			aBinding=site.ServerBindings
    			if (IsArray(aBinding)) then
    				if aBinding(0) = "" then
    					binding = Null
    				else
    					binding = getBinding(aBinding(0))
    				end if
    			else 
    				if aBinding = "" then
    					binding = Null
    				else
    					binding = getBinding(aBinding)
    				end if
    			end if
    			if IsArray(binding) then
    				if (binding(2) = webname) or (binding(0) = webname) then
    					set findWeb = site
    					exit function
    				End If
    			end if 
    		end if
    	next
    End Function
    ..: Serie A :..
    ..: FORZA PALERMOOOOoooo.....

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    VBScript è figlio di VB, che viene trattato nel forum "VisualBasic e .NET Framework".

    Sposto.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Ciao,

    trovato la soluzione basta utilizzare il parametro/funzione:

    AccessScript = true
    settando invece executepermission = true/false mette in none o Script and Executable.
    ..: Serie A :..
    ..: FORZA PALERMOOOOoooo.....

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.