*Groups* Erweiterte Groups-Suche Einstellungen *Groups-Suchergebnis 1* für *comp.os.vms license_list.com* *OpenVMS Security Tools* ? Watch interactive users, log their keystrokes and help them remotely. ? www.networkingdynamics.com Anzeigen *Fix Tab-delimited Files* ? Move, copy, search, delete in huge Tab-delimited files. Free download! ? crystalsoftware.com.au Suchergebnis 1 Von:Paul Sture (p_sture@elias.decus.ch ) Betrifft:Re: VMS Hobbyist User Guide: table of contents View: Complete Thread (6 Beiträge) Original Format Newsgroups:*comp.os.vms* Datum:2002-08-12 11:26:06 PST In article <1020812035636.35213A-100000@Ives.egh.com>, John Santos writes: > > I have loaded all the licenses on my systems, even for > products I have no intention of using. It's easier just > to save the email into a .COM file, remove the non-DCL > at the beginning and end, and execute it. In theory, > paring down the licenses to only what is needed would make > the license manager more efficient, but I haven't noticed > any license check slowness even on a MicroVAX 3600. Maybe > on an MV-II, it would be worth the trouble. > > I do keep the command file around, and when the licenses > expire after a year, I mung it to disable and remove > all the licenses instead of adding them. (After obtaining > a new set of licenses from Montagar, of course.) Same > with the ASAP/CSA/HP??? licenses at work. > Here's a handy procedure for creating a one line per product list of the license database. I initially created it so that I could import license details into a PC database and identify duplicates. A swift bit of editing of the output leaves you with a command procedure for deleting expired Hobbyist licenses (I did a search on the date to identify which records I wanted to delete, and followed up with an EVE learn sequence. Here it is. Please note that all the usual disclaimers apply, and I have only tested it on Alpha systems from V6.2 onwards. Please beware wrapping problems! $! *LICENSE_LIST.COM* $! ---------------- $! $! This procedure performs a full listing of the license file $! and uses it to produce a tab delimited text file with one $! record per licensed product. $! $! Paul Sture 12-Aug-2002 $! ---------------------- $! $! Freeware. Use at your own risk. $! $ set noon $ say = "write sys$output" $ on control_y then goto abort $ node = f$getsyi("NODENAME") $ tab[0,7] = 9 $ license list /full /output='node'_lic.tmp $ open /read in 'node'_lic.tmp $ open /write out 'node'_license.txt $ outrec = "Node" + tab + "Issuer" + tab + "Authorization" + - tab + "Product_Name" + - tab + "Producer" + - tab + "Units" + - tab + "Version" + - tab + "Release_Date" + - tab + "PAK_Termination_Date" + - tab + "Availability" $ outrec = outrec + - tab + "Activity" + - tab + "Options" + - tab + "Hardware_ID" + - tab + "Revision_Level" + - tab + "Status" + - tab + "Command" + - tab + "Modified_by_user" + - tab + "Modified_on" + - tab + "Include" $ write out outrec $ outrec = "" $ data_to_write = "N" $get_first: $ read /end=exit in data $ data = f$edit (data,"TRIM,COMPRESS") $ if f$locate("-------",data) .eq. f$length(data) then goto get_first $! $! Start of the license details $! $at_license_delimiter: $ Issuer = "" $ Authorization = "" $ Product_Name = "" $ Producer = "" $ Units = "" $ Version = "" $ Release_Date = "" $ PAK_Termination_Date = "" $ Availability = "" $ Activity = "" $ Options = "" $ Hardware_ID = "" $ Revision_Level = "" $ Status = "" $ Command = "" $ Modified_by_user = "" $ Modified_on = "" $ Include = "" $get_line_details: $ read /end=eof in data $ data = f$edit(data,"TRIM,COMPRESS") $ if f$locate("-------",data) .ne. f$length(data) .or. - data .eqs. "[End Of List]" then - goto write_license_record $ item = f$element(0,":",data) $ if item .eqs. "Issuer" then - issuer = f$edit(f$element(1,":",data),"TRIM") $ if item .eqs. "Authorization" then - ( Authorization = f$edit(f$element(1,":",data),"TRIM") $ if item .eqs. "Product Name" then - Product_Name = f$edit(f$element(1,":",data),"TRIM") $ if item .eqs. "Producer" then - Producer = f$edit(f$element(1,":",data),"TRIM") $ if item .eqs. "Units" then - Units = f$edit(f$element(1,":",data),"TRIM") $ if item .eqs. "Version" then - Version = f$edit(f$element(1,":",data),"TRIM") $ if item .eqs. "Release Date" then - Release_Date = f$edit(f$element(1,":",data),"TRIM") $ if item .eqs. "PAK Termination Date" then - PAK_Termination_Date = f$edit(f$element(1,":",data),"TRIM") $ if item .eqs. "Availability" then - Availability = f$edit(f$element(1,":",data),"TRIM") $ if item .eqs. "Activity" then - Activity = f$edit(f$element(1,":",data),"TRIM") $ if item .eqs. "Options" then - Options = f$edit(f$element(1,":",data),"TRIM") $ if item .eqs. "Hardware ID" then - Hardware_ID = f$edit(f$element(1,":",data),"TRIM") $ if item .eqs. "Revision Level" then - Revision_Level = f$edit(f$element(1,":",data),"TRIM") $ if item .eqs. "Status" then - Status = f$edit(f$element(1,":",data),"TRIM") $ if item .eqs. "Command" then - Command = f$edit(f$element(1,":",data),"TRIM") $ if item .eqs. "Modified by user" then - Modified_by_user = f$edit(f$element(1,":",data),"TRIM") $! $! Note that the "Modified on" field contains a time, so we need $! to cater for the ":" delimiter $! $ if item .eqs. "Modified on" $ then $ data = data - "Modified on:" $ Modified_on = f$edit(data,"TRIM") $ endif $ if item .eqs. "Include" then - Include = f$edit(f$element(1,":",data),"TRIM") $ data_to_write = "Y" $ goto get_line_details $eof: $ if .not. data_to_write then goto exit $write_license_record: $ outrec = Node + tab + Issuer + tab + Authorization + - tab + Product_Name + - tab + Producer + - tab + Units + - tab + Version + - tab + Release_Date + - tab + PAK_Termination_Date + - tab + Availability $ outrec = outrec + - tab + Activity + - tab + Options + - tab + Hardware_ID + - tab + Revision_Level + - tab + Status + - tab + Command + - tab + Modified_by_user + - tab + Modified_on + - tab + Include $ write out outrec $ data_to_write = "N" $ if data .eqs. "[End Of List]" then goto exit $ goto at_license_delimiter $abort: $ say "Aborted by Ctrl_Y" $exit: $ if f$trnlnm("IN") .nes. "" then close in $ if f$trnlnm("OUT") .nes. "" then close out __ Paul Sture Switzerland ------------------------------------------------------------------------ ©2004 Google