Wachtwoord vergeten?

Wachtwoord vergeten
Vul hier uw email adres in. U ontvangt dan een nieuw wachtwoord.

Systems Management Server 2003 gebruiken om de ValidatePath-module te implementeren

Gepost op 27-10-2004 - Microsoft Office - 0 reacties


De informatie in dit artikel is van toepassing op:

  • Microsoft ASP.NET 1.1
  • Microsoft Systems Management Server 2003 Enterprise Edition

Samenvatting

Met VPModule.msi (ValidatePath Module) wordt een HTTP-module met de naam Microsoft.Web.ValidatePathModule.dll op doelcomputers geïnstalleerd. Tijdens de installatie worden ook de exemplaren van het bestand Machine.config op alle geïnstalleerde versies van .NET Framework bijgewerkt met een nieuwe vermelding voor de HTTP-module. Klik op het volgende artikelnummer in de Microsoft Knowledge Base voor meer informatie over het bestand VPModule.msi:

887289 HTTP-module om te controleren op standaardisatieproblemen met ASP.NET

Inleiding

MBSA (Microsoft Baseline Security Analyzer) kan niet vaststellen of de installatie van het bestand VPModule.msi op afzonderlijke systemen vereist is. Daardoor kunt u de beheerfunctie voor software-updates van SMS 2003 (Microsoft Systems Management Server) niet voor compatibiliteitsonderzoek gebruiken. Wij raden gebruikers die met SMS 2003 werken aan de software op de standaardmanier te distribueren voor het gebruik van het bestand VPModule.msi.
Het script waarmee wordt vastgesteld of VPModule.msi is geïnstalleerd, heeft de volgende werkmodi:
  • Alleen scannen (Scan only)
  • Scannen en installeren (Scan and install)

Alleen scannen (Scan only)

In de modus Alleen scannen wordt het detectiescript uitgevoerd en wordt vastgesteld of de module op een bepaald systeem moet worden geïnstalleerd. Er worden statusretourcodes gegenereerd die door SMS worden gebruikt en die in compatibiliteitsrapporten kunnen worden verwerkt.

Opmerking De sectie 'Meer informatie' bevat een aantal voorbeeldrapporten. Daar vindt u tevens een beschrijving van de inhoud van de MOF-bestanden (Managed Object Format) die vereist zijn om deze rapporten te genereren.

Het detectiescript kan op elke SMS Advanced Client-computer worden gebruikt. Als het detectiescript wordt uitgevoerd op een clientcomputer waarvoor het bestand VPModule.msi niet vereist is, wordt het script zonder verdere meldingen afgesloten.

Scannen en installeren (Scan and install)

In de modus Scannen en installeren wordt de systeemcompatibiliteit door het detectiescript vastgesteld. Als het bestand VPModule.msi niet op een systeem voorkomt, start het script de uitvoering van een MSI-bestand om het bestand VPModule.msi te installeren. Het MSI-bestand dat door SMS wordt gebruikt, retourneert statusberichten. Deze berichten kunnen worden gebruikt om rapporten te genereren waarin de gebruiksvoortgang in de hele organisatie wordt weergegeven.

Opmerking Nadat u een MSI-pakket hebt uitgevoerd, verschijnt de vermelding 'Microsoft ASP.NET ValidatePath Module' bij Software in het Configuratiescherm. U hoeft een systeem niet opnieuw op te starten om een MSI-pakket uit te voeren.

Fase 1: voorbereiding

De oplossing voor compatibiliteitsdetectie en installatie bestaat uit een VPModuleScanner.js-detectiescript en een VPModule.msi-bestand. U moet een SMS-pakket maken dat beide bestanden bevat. Als hulpmiddel bij het maken van het SMS-pakket en de programmaobjecten voor dit detectiescript en de HTTP-module, bevat deze sectie de inhoud van een PDF-bestand (Package Definition File).

Kopieer de volgende tekst, plak deze in een Notepad-bestand en sla dit op met de extensie .SMS. Gebruik bijvoorbeeld Aspnet.sms.
[PDF]Version=2.0[Package Definition]Publisher=MicrosoftName=ASP .NET Scan and Install PackageVersion=1.0Language=ALLPrograms=Scan,Install,UnInstall[Scan]Name=ASP .NET ScanCommandLine=wscript //B vpmodulescanner.JS -o %TEMP%\aspnet.logUserInputRequired=FalseEstimatedRunTime=5AdminRightsRequired=TrueCanRunWhen=AnyUserStatusSupportedClients=Win NT (I386)Win NT (I386) MinVersion1=5.00.0000.0Win NT (I386) MaxVersion1=5.00.9999.9999Win NT (I386) MinVersion2=5.10.0000.0Win NT (I386) MaxVersion2=5.10.9999.9999Win NT (I386) MinVersion3=5.20.0000.0Win NT (I386) MaxVersion3=5.20.9999.9999[Install]Name=ASP .NET InstallCommandLine=wscript //B vpmodulescanner.JS -o %TEMP%\aspnet.log -installUserInputRequired=FalseEstimatedRunTime=5AdminRightsRequired=TrueCanRunWhen=AnyUserStatusSupportedClients=Win NT (I386)Win NT (I386) MinVersion1=5.00.0000.0Win NT (I386) MaxVersion1=5.00.9999.9999Win NT (I386) MinVersion2=5.10.0000.0Win NT (I386) MaxVersion2=5.10.9999.9999Win NT (I386) MinVersion3=5.20.0000.0Win NT (I386) MaxVersion3=5.20.9999.9999[UnInstall]Name=ASP .NET UnInstallCommandLine=msiexec /q /x "VPModule.msi"UserInputRequired=FalseEstimatedRunTime=5AdminRightsRequired=TrueCanRunWhen=AnyUserStatusSupportedClients=Win NT (I386)Win NT (I386) MinVersion1=5.00.0000.0Win NT (I386) MaxVersion1=5.00.9999.9999Win NT (I386) MinVersion2=5.10.0000.0Win NT (I386) MaxVersion2=5.10.9999.9999Win NT (I386) MinVersion3=5.20.0000.0Win NT (I386) MaxVersion3=5.20.9999.9999
Voer de volgende stappen uit om het pakket en de programmaobjecten te maken:
  1. Klik in de Administrator-console van SMS op Packages.
  2. Klik met de rechtermuisknop op Packages, klik op New en klik op Package from Definition.

    De wizard Create Package from Definition wordt gestart. Gebruik deze wizard om het pakket en de programmaobjecten te maken. U wordt gevraagd het bestand met de pakketdefinitie, dat u in een eerder stadium hebt gemaakt, op te geven. U kunt bovendien de bronbestanden (VPModuleScanner.js en VPModule.msi) selecteren om het maken van het pakket te voltooien.
  3. Wanneer u de stappen in de wizard hebt voltooid, wordt een nieuw Microsoft ASP.NET-pakket voor scannen en installeren gemaakt.

Fase 2: compatibiliteitsscan

Wij raden u aan eerst vast te stellen op hoeveel systemen het bestand VPModule.msi van toepassing is en op welke systemen het bestand vereist is.

Als u de compatibiliteitsscan wilt uitvoeren, gebruikt u eerst het ASP.NET-programma Scan om een aankondiging te maken. U vindt het programma in het Microsoft ASP.NET-pakket Scan and Install.

Test de aankondiging eerst op een pilot-groep uit, voordat u deze op grotere schaal gaat implementeren.

Wanneer u de compatibiliteitsscan op een clientsysteem hebt uitgevoerd, wordt een van de volgende retourcodes weergegeven:
0VPModule Installed
20000VPModule required
20001.NET Framework configuration file not found
20002.NET Framework version not supported by the VPModule. (Deze retourcode wordt alleen geretourneerd door systemen met tussentijdse builds van .NET Framework.)
20003VPModule requirement status could not be confirmed


Belangrijk Afsluitcode 20000 wordt geretourneerd door systemen waarop het bestand VPModule.msi is vereist. Afsluitcode 20000 is een foutcode. In de rapporten over de standaardsoftwaredistributie worden deze systemen in de categorie Failed (Mislukt) geplaatst. Een juiste representatie van de compatibiliteitsstatus is beschikbaar via de voorbeeldrapporten.

Gebruik de voorbeeldrapporten in de categorie ASP.NET Scan - Advertisement Status om de voortgang van het gebruik en de uitvoering van het detectiescript te volgen.

Het genereren van rapporten wordt verderop in dit artikel beschreven.

Fase 3: installatie van de module

Zodra bekend is hoeveel systemen niet compatibel zijn, kan het bestand VPModule.msi door SMS-beheerders worden gebruikt.

Maak een SMS-aankondiging die is gebaseerd op het ASP.NET-programma Install. Bij de aankondiging wordt een MSI-pakket gebruikt waarmee de oplossingsmodule wordt geïnstalleerd. Het MSI-pakket wordt onbeheerd op een systeem uitgevoerd, waarna het systeem niet opnieuw hoeft te worden opgestart.

Belangrijk Afsluitcode 20000 wordt geretourneerd door systemen waarop het bestand VPModule.msi is vereist. Afsluitcode 20000 is een foutcode. In de rapporten over de standaardsoftwaredistributie worden deze systemen in de categorie Failed (Mislukt) geplaatst. Een juiste representatie van de compatibiliteitsstatus is beschikbaar via de voorbeeldrapporten.

Gebruik de voorbeeldrapporten in de categorie ASP.NET Scan - Advertisement Status om de voortgang van het gebruik en de uitvoering van het detectiescript te volgen.

Optie Uninstall

Het MSI-pakket heeft ook een optie voor het ongedaan maken van de installatie. Installeer de optie Uninstall alleen op systemen waarop de oplossingsmodule is geïnstalleerd.


De systemen waarop de oplossingsmodule is geïnstalleerd identificeert u met behulp van een query met de volgende conditie:
select * from SMS_R_System inner join SMS_G_System_ADD_REMOVE_PROGRAMS on SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceID = SMS_R_System.ResourceId where SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName = "Microsoft ASP.NET ValidatePath Module"

Voorbeeldrapporten

Deze sectie bevat een aantal voorbeeldrapporten waarmee compatibiliteitsonderzoek wordt ondersteund. Als u de rapporten wilt implementeren, kopieert u de volgende tekst en plakt u deze in een Notepad-bestand, dat u vervolgens opslaat met de extensie .MOF. Gebruik bijvoorbeeld Aspnet.mof.

Opmerking Vergeet niet de site-code in de eerste regel van het bestand aan te passen aan de site-code van de primaire site waar deze rapporten worden geïnstalleerd. Als u deze rapporten bijvoorbeeld installeert op SMS Primary Site A01, moet de eerste regel luiden:
#pragma namespace("\.\root\sms\site_A01")

Wanneer het bestand is gegenereerd, moet u dit compileren. Voer de compilatie uit op de primaire site-server van SMS waar de rapporten moeten worden geïnstalleerd en de SMS-provider zich bevindt. Typ hiervoor het volgende achter de opdrachtprompt:

mofcomp.exe aspnet.mof



Hieronder ziet u enkele voorbeeldrapporten:
#pragma namespace("\.\root\sms\site_PPP")//////////////////////////////////////////////////////////////////////////////////////// Please don't modify the following report. This report is already shipped with SMS//////////////////////////////////////////////////////////////////////////////////////instance of SMS_Report as $N108{ Category = "Software Distribution - Advertisement Status"; Comment = "This report shows the status messages reported for a particular computer and advertisement."; DrillThroughColumns = {5}; GraphXCol = 1; GraphYCol = 2; MachineDetail = FALSE; MachineSource = FALSE; Name = "Advertisement status messages for a particular client and advertisement"; NumPrompts = 2; RefreshInterval = 0; ReportParams = {instance of SMS_ReportParameter{ AllowEmpty = FALSE; DefaultValue = ""; PromptText = "Advertisement ID"; SampleValueSQL = "begin\r\n if (@__filterwildcard = '')\r\n select AdvertisementID, AdvertisementName, Comment from v_Advertisement order by AdvertisementName\r\n else\r\n select AdvertisementID, AdvertisementName, Comment from v_Advertisement\r\n WHERE AdvertisementID like @__filterwildcard\r\n order by AdvertisementName\r\nend"; VariableName = "AdvertID";}, instance of SMS_ReportParameter{ AllowEmpty = FALSE; DefaultValue = ""; PromptText = "Computer Name"; SampleValueSQL = "begin\r\n if (@__filterwildcard = '')\r\n SELECT DISTINCT SYS.Netbios_Name0 from v_R_System SYS WHERE SYS.Client0=1 ORDER By SYS.Netbios_Name0\r\n else\r\n SELECT DISTINCT SYS.Netbios_Name0 from v_R_System SYS WHERE SYS.Client0=1\r\n and SYS.Netbios_Name0 like @__filterwildcard\r\n ORDER By SYS.Netbios_Name0\r\nend"; VariableName = "Name";}}; SQLQuery = "/* status message detail, params=machine name, AdvertisementID */\r\n\r\nselect DATEADD(ss,@__timezoneoffset,stat.Time) as Time, info.MessageStateName, info.MessageName, stat.MessageID, stat.RecordID\r\nfrom v_StatusMessage stat\r\njoin v_StatMsgAttributes att on stat.RecordID=att.RecordID and stat.Time=att.AttributeTime\r\nleft join v_AdvertisementStatusInformation info on stat.MessageID=info.MessageID\r\nwhere stat.Component in ('SMS System Offer Data Provider (ODP)', 'Available Programs Manager (APM)', 'Software Distribution','Device Client')\r\n and stat.MachineName=@Name and att.AttributeID=401\r\n and att.AttributeValue=@AdvertID\r\norder by stat.Time"; StatusMessageDetailSource = TRUE;};//////////////////////////////////////////////////////////////////////////////////////// New report for ASP .NET scan Advertisement//////////////////////////////////////////////////////////////////////////////////////instance of SMS_Report as $N410{ Category = "ASP .NET Scan - Advertisement Status"; Comment = "This report will show a list of all resources that are in a specific state for ASP .NET scan advertisement. For example, you can see which resources have successfully run ASP .NET scan program and whether they are compliant or not.\r\n(Client type: 0 = Legacy Client; 1 = Advanced Client)"; DrillThroughColumns = {9, 1}; DrillThroughReportPath = $N108; GraphXCol = 1; GraphYCol = 2; MachineDetail = FALSE; MachineSource = FALSE; Name = "All system resources for ASP .NET scan advertisement in a specific state"; NumPrompts = 2; RefreshInterval = 0; ReportParams = {instance of SMS_ReportParameter{ AllowEmpty = FALSE; DefaultValue = ""; PromptText = "Software Distribution Status"; SampleValueSQL = "begin\r\n if (@__filterwildcard = '')\r\n select distinct MessageStateName from v_AdvertisementStatusInformation where MessageState <= 13 order by MessageStateName\r\n else\r\n select distinct MessageStateName from v_AdvertisementStatusInformation where MessageState <= 13\r\n and MessageStateName like @__filterwildcard\r\n order by MessageStateName\r\nend"; VariableName = "StateName";}, instance of SMS_ReportParameter{ AllowEmpty = FALSE; DefaultValue = ""; PromptText = "Advertisement ID"; SampleValueSQL = "begin\r\n if (@__filterwildcard = '')\r\n select AdvertisementID, AdvertisementName, Comment from v_Advertisement order by AdvertisementName\r\n else\r\n select AdvertisementID, AdvertisementName, Comment from v_Advertisement\r\n WHERE AdvertisementID like @__filterwildcard\r\n order by AdvertisementName\r\nend"; VariableName = "AdvertID";}}; SQLQuery = "declare @State int\r\n\r\nselect @State=MessageState \r\nfrom v_AdvertisementStatusInformation\r\nwhere MessageStateName=@StateName and MessageState < 100\r\n\r\nif @State in (0,1,2,3) /* no status, accepted, rejected, expired */\r\n select sys.Netbios_Name0, sys.User_Domain0, sys.User_Name0, site.SMS_Installed_Sites0, Client_Type0, \r\n LastAcceptanceMessageID, LastAcceptanceMessageIDName, \r\n DATEADD(ss,@__timezoneoffset,LastAcceptanceStatusTime) as LastAcceptanceStatusTime,\r\n AdvertisementID\r\n from v_ClientAdvertisementStatus stat\r\n join v_R_System sys on stat.ResourceID=sys.ResourceID\r\n left join v_RA_System_SMSInstalledSites site on stat.ResourceID=site.ResourceID\r\n where stat.LastAcceptanceState=@State and stat.AdvertisementID=@AdvertID\r\nelse if @StateName = 'Vulnerable' /* Vulnerable */\r\nselect sys.Netbios_Name0, sys.User_Domain0, sys.User_Name0,site.SMS_Installed_Sites0, Client_Type0, \r\n LastStatusMessageID, LastStatusMessageIDName, \r\n DATEADD(ss,@__timezoneoffset,LastStatusTime) as LastStatusTime, \r\n AdvertisementID, LastExecutionResult, LastExecutionContext\r\n from v_ClientAdvertisementStatus stat\r\n join v_R_System sys on stat.ResourceID=sys.ResourceID\r\n left join v_RA_System_SMSInstalledSites site on stat.ResourceID=site.ResourceID\r\n where stat.LastState=11 and stat.AdvertisementID=@AdvertID\r\n and ISNULL(stat.LastExecutionResult, 0)='20000'\r\n else if @State = 11 /* failed */\r\n select sys.Netbios_Name0, sys.User_Domain0, sys.User_Name0,site.SMS_Installed_Sites0, Client_Type0, \r\n LastStatusMessageID, LastStatusMessageIDName, \r\n DATEADD(ss,@__timezoneoffset,LastStatusTime) as LastStatusTime, \r\n AdvertisementID, LastExecutionResult, LastExecutionContext\r\n from v_ClientAdvertisementStatus stat\r\n join v_R_System sys on stat.ResourceID=sys.ResourceID\r\n left join v_RA_System_SMSInstalledSites site on stat.ResourceID=site.ResourceID\r\n where stat.LastState=@State and stat.AdvertisementID=@AdvertID\r\nand ISNULL(stat.LastExecutionResult, 0)!='20000'\r\nelse if @State in (9,12,13) /* running, reboot pending, suceeded */\r\n select sys.Netbios_Name0, sys.User_Domain0, sys.User_Name0, site.SMS_Installed_Sites0, Client_Type0, \r\n LastStatusMessageID, LastStatusMessageIDName,\r\n DATEADD(ss,@__timezoneoffset,LastStatusTime) as LastStatusTime, \r\n AdvertisementID, LastExecutionContext\r\n from v_ClientAdvertisementStatus stat\r\n join v_R_System sys on stat.ResourceID=sys.ResourceID\r\n left join v_RA_System_SMSInstalledSites site on stat.ResourceID=site.ResourceID\r\n where stat.LastState=@State and stat.AdvertisementID=@AdvertID\r\nelse\r\n select sys.Netbios_Name0, sys.User_Domain0, sys.User_Name0, site.SMS_Installed_Sites0, Client_Type0, \r\n CASE LastStatusMessageID WHEN 65535 THEN 10002 ELSE LastStatusMessageID END as LastStatusMessageID, \r\n LastStatusMessageIDName,\r\n DATEADD(ss,@__timezoneoffset,LastStatusTime) as LastStatusTime, \r\n AdvertisementID\r\n from v_ClientAdvertisementStatus stat\r\n join v_R_System sys on stat.ResourceID=sys.ResourceID\r\n left join v_RA_System_SMSInstalledSites site on stat.ResourceID=site.ResourceID\r\n where stat.LastState=@State and stat.AdvertisementID=@AdvertID"; StatusMessageDetailSource = FALSE; XColLabel = ""; YColLabel = "";};//////////////////////////////////////////////////////////////////////////////////////// New report for ASP .NET scan Advertisement//////////////////////////////////////////////////////////////////////////////////////instance of SMS_Report as $N411{ Category = "ASP .NET Scan - Advertisement Status"; Comment = "This report shows the status summary of all resources that have been targeted by an ASP .NET Scan advertisement. The summary is broken into two parts. Acceptance status will summarize how many resources have received, rejected, or not yet received the advertisement. Delivery status will summarize the resources that have run or attempted to run the scan program and are vulnerable."; DrillThroughColumns = {1, 4}; DrillThroughReportPath = $N410; GraphXCol = 1; GraphYCol = 2; MachineDetail = FALSE; MachineSource = FALSE; Name = "ASP .NET scan Status of a specific advertisement"; NumPrompts = 1; RefreshInterval = 0; ReportParams = {instance of SMS_ReportParameter{ AllowEmpty = FALSE; DefaultValue = ""; PromptText = "Advertisement ID"; SampleValueSQL = "begin \n if (@__filterwildcard = '') \n select AdvertisementID, AdvertisementName, Comment from v_Advertisement order by AdvertisementName \n else \n select AdvertisementID, AdvertisementName, Comment from v_Advertisement \n WHERE AdvertisementID like @__filterwildcard \n order by AdvertisementName \nend"; VariableName = "AdvertID";}}; SecurityKey = ""; SQLQuery = "declare @Total int \ndeclare @Accepted int \n \nselect @Total=count(*), @Accepted=sum(case LastState when 0 then 0 else 1 end) \nfrom v_ClientAdvertisementStatus \nwhere AdvertisementID=@AdvertID \n \nselect LastAcceptanceStateName as C013, count(*) as C015, \n ROUND(100.0*count(*)/@Total,1) as C016, \nAdvertisementID \nfrom v_ClientAdvertisementStatus \nwhere AdvertisementID=@AdvertID \ngroup by LastAcceptanceStateName, AdvertisementID \n \nselect LastStateName as C017, count(*) as C015, \n ROUND(100.0*count(*)/@Accepted,1) as C016, \nAdvertisementID \nfrom v_ClientAdvertisementStatus \nwhere AdvertisementID=@AdvertID and (LastState not in (0, 11) OR \n(LastState = 11 and ISNULL(LastExecutionResult, 0) != '20000')) \ngroup by LastStateName, AdvertisementID UNION \n select 'Vulnerable' as C017, count(*) as C015, \n ROUND(100.0*count(*)/@Accepted,1) as C016, AdvertisementID \nfrom v_ClientAdvertisementStatus \nwhere AdvertisementID=@AdvertID and \n(LastState = 11 and ISNULL(LastExecutionResult, 0) = '20000') \ngroup by AdvertisementID"; StatusMessageDetailSource = FALSE;};

Referenties

887289 HTTP-module om te controleren op standaardisatieproblemen met ASP.NET

887405 Windows Installer en Groepsbeleid gebruiken om de VPModule in een Active Directory-domein te implementeren

887459 Programmatisch controleren op standaardisatieproblemen met ASP.NET

887290 De modulescanner (VPModulescanner.js) van ASP.NET gebruiken

887787 Er verschijnt een foutbericht van Reporting Services nadat u de ASP.NET ValidatePath-module hebt geïnstalleerd

PrintPrint RSS reactiesRSS reacties BookmarkBookmark

Gekoppelde tags

ASP, ASP.net, DLL, Filter, Foutbericht, .net, Publisher, Query, Record, SQL, Systems Management Server, Update

Reacties
Nog geen reacties geplaatst.

Winkelmandje

Het winkelmandje is leeg

Inloggen
Als u hierboven op de knop 'bestellen' klikt krijgt u een overzicht van de door uw gewenste producten. Indien het overzicht compleet en correct is kunt via de wizard de verdere gegevens invullen en uw bestelling afronden. In het bestelproces kunt u altijd op 'vorige' drukken om terug te gaan in het proces. Bij Perrit staan vertrouwen, privacy en veiligheid op de eerste plaats, wij zullen uw gegevens dan ook met uiterste zorgvuldigheid behandelen en nooit doorgeven aan derden.

Perrit.nl Sherwood Rangers 29 Hengelo

Perrit.nl telefoon: +31 74 750 12 20

Kenniscentrum - Systems Management Server 2003 gebruiken om de ValidatePath-module te implementeren
Perrit Kenniscentrum - Systems Management Server 2003 gebruiken om de ValidatePath-module te implementeren