Showing posts with label scripting. Show all posts
Showing posts with label scripting. Show all posts
Friday, June 12, 2009
Thursday, June 11, 2009
Checking versions if Office 2004 is at 11.5.5 and Acrobat is at 9.1.2
This is a trick to check version of some software on a group of computers
Here we're checking that Office 2004 11.5.5 update is installed
for ((i=1;i < 21;i++)); do if [[ $i -lt 10 ]]; then echo "station $i" ; ssh station-0${i}.local " ls -l /Applications/Microsoft\ Office\ 2004/Updater\ Logs/11.5.5\ Update\ Log.txt "; else ssh station-${i}.local " ls -l /Applications/Microsoft\ Office\ 2004/Updater\ Logs/11.5.5\ Update\ Log.txt "; fi; done
Here we're checking that Acrobat reader and acrobat are at 9.1.2
for ((i=1;i < 21;i++)); do if [[ $i -lt 10 ]]; then echo "station $i" ; ssh station-0${i}.local "system_profiler SPSoftwareDataType SPApplicationsDataType | grep '9.1.2' "; else ssh station-${i}.local " system_profiler SPSoftwareDataType SPApplicationsDataType | grep '9.1.2' "; fi; done
Here we're checking that Office 2004 11.5.5 update is installed
for ((i=1;i < 21;i++)); do if [[ $i -lt 10 ]]; then echo "station $i" ; ssh station-0${i}.local " ls -l /Applications/Microsoft\ Office\ 2004/Updater\ Logs/11.5.5\ Update\ Log.txt "; else ssh station-${i}.local " ls -l /Applications/Microsoft\ Office\ 2004/Updater\ Logs/11.5.5\ Update\ Log.txt "; fi; done
Here we're checking that Acrobat reader and acrobat are at 9.1.2
for ((i=1;i < 21;i++)); do if [[ $i -lt 10 ]]; then echo "station $i" ; ssh station-0${i}.local "system_profiler SPSoftwareDataType SPApplicationsDataType | grep '9.1.2' "; else ssh station-${i}.local " system_profiler SPSoftwareDataType SPApplicationsDataType | grep '9.1.2' "; fi; done
Monday, June 8, 2009
Tricks with the Echo command in XP
rem generate list with echo
for /l %a in (1,1,9) do echo "station-0%a"
rem Generate a file with echo to a room of computers
for /l %a in (1,1,50) do echo "station-%a" > \\station-%a\c$\myfile.txt
for /l %a in (1,1,9) do echo "station-0%a"
rem Generate a file with echo to a room of computers
for /l %a in (1,1,50) do echo "station-%a" > \\station-%a\c$\myfile.txt
Printing from the command line in XP
rem Print from command line
notepad /p textfile.txt
notepad /p textfile.txt
Friday, June 5, 2009
Set remote desktop from command line
reg add "\\computer\hklm\system\currentcontrolset\control\terminal server" /v "fDenyTSConnections" /d 0 /t REG_DWORD /f
0 is off and 1 is on
0 is off and 1 is on
Wednesday, June 3, 2009
Generate a command window for each iteration of a loop
rem This is good for those commands that take a lot of time.
rem Each iteration generates a new cmd window
for /l %a in (1,1,10) do start cmd /k psexec \\computer-%a time-consuming.exe
rem Each iteration generates a new cmd window
for /l %a in (1,1,10) do start cmd /k psexec \\computer-%a time-consuming.exe
Force a live update from command line
This will perform a silent live update of Symantec Antivirus 10.2
"c:\Program Files\Symantec AntiVirus\VPDN_LU.exe" /fUpdate /s
"c:\Program Files\Symantec AntiVirus\VPDN_LU.exe" /fUpdate /s
Adding a printer with vbscript from a network share
rem Add the connection
cscript prnmngr.vbs -ac -p \\server\printer_share
rem Set it as a default
cscript prnmngr.vbs -t -p "\\server\printer name"
rem If you don't know the name
cscript prnmngr.vbs -l
cscript prnmngr.vbs -ac -p \\server\printer_share
rem Set it as a default
cscript prnmngr.vbs -t -p "\\server\printer name"
rem If you don't know the name
cscript prnmngr.vbs -l
Keeping track of station numbers with a text file
rem Usually I keep track of the configurations associated with a station by its mac
rem Without the macs, one can keep track of what configuration to use by using a counter
rem
rem This works well with a network or a flash drive
for /f %%a in ('type \\server\share\count.txt') do SET temp=%%a
rem echo %temp%
SET /A temp+=1
echo %temp% > \\server\share\count.txt
rem The counts of count.txt is simply a number and can be used in a script
rem Without the macs, one can keep track of what configuration to use by using a counter
rem
rem This works well with a network or a flash drive
for /f %%a in ('type \\server\share\count.txt') do SET temp=%%a
rem echo %temp%
SET /A temp+=1
echo %temp% > \\server\share\count.txt
rem The counts of count.txt is simply a number and can be used in a script
Adding an extension to a bunch of files
#I made a bunch of text files for Windows, but XP cannot open them without an extension
#This was a quick fix
find . -type f -exec mv {} {}.txt \;
#This was a quick fix
find . -type f -exec mv {} {}.txt \;
Monday, June 1, 2009
Change a computer name with vbscript
Scripting the changing of computer names in windows is straight-forward with a vbscript.
You can change a computer via the registry, so this is the approach used here.
Set the computer name you want in the sNewName variable.
sNewName = "new_pc_name"
Set oShell = CreateObject ("WSCript.shell")
sCCS = "HKLM\SYSTEM\CurrentControlSet\"
sTcpipParamsRegPath = sCCS & "Services\Tcpip\Parameters\"
sCompNameRegPath = sCCS & "Control\ComputerName\"
With oShell
.RegDelete sTcpipParamsRegPath & "Hostname"
.RegDelete sTcpipParamsRegPath & "NV Hostname"
.RegWrite sCompNameRegPath & "ComputerName\ComputerName", sNewName
.RegWrite sCompNameRegPath & "ActiveComputerName\ComputerName", sNewName
.RegWrite sTcpipParamsRegPath & "Hostname", sNewName
.RegWrite sTcpipParamsRegPath & "NV Hostname", sNewName
End With ' oShell
You can change a computer via the registry, so this is the approach used here.
Set the computer name you want in the sNewName variable.
sNewName = "new_pc_name"
Set oShell = CreateObject ("WSCript.shell")
sCCS = "HKLM\SYSTEM\CurrentControlSet\"
sTcpipParamsRegPath = sCCS & "Services\Tcpip\Parameters\"
sCompNameRegPath = sCCS & "Control\ComputerName\"
With oShell
.RegDelete sTcpipParamsRegPath & "Hostname"
.RegDelete sTcpipParamsRegPath & "NV Hostname"
.RegWrite sCompNameRegPath & "ComputerName\ComputerName", sNewName
.RegWrite sCompNameRegPath & "ActiveComputerName\ComputerName", sNewName
.RegWrite sTcpipParamsRegPath & "Hostname", sNewName
.RegWrite sTcpipParamsRegPath & "NV Hostname", sNewName
End With ' oShell
VBScript tricks : no logo, filesystem, control blocks, argument
'When running from the console, here is how to hide the logo
cscript //Nologo myscript.vbs
'How to reference an argument
WScript.Arguments.Item(0)
'Here is how to read a file
set f = fso.opentextfile(source, 1,false)
if fso.fileexists(source) then
while not f.atendofstream
inputline = f.readline
msgbox inputline
wend
end if
Inserting a blank line with sed
#I found this to be a bit tricky
sed -e '/pattern/i\
\ # <-- this is the key
' input_file > output_file
sed -e '/pattern/i\
\ # <-- this is the key
' input_file > output_file
Saturday, May 30, 2009
awk example using arrays, the split() function, and regex
#record format
Request: 10
As Of: 05/27/2009 1:34:58 pm
Irrevelant Data ...
Summary: Virus on PC.
Description: Virus on PC.
Request: 11
As Of: 05/27/2009 1:34:58 pm
Irrevelant Data...
Summary: room1 several computers in a row are freezing up and student...
Description: room1 several computers in a row are freezing up and students have to reboot.
awk -v pat1="room1" -v pat2="freezing|crash" 'BEGIN { RS=""; FS="Summary"; i=0; j=0; k=0 } {\
i=i+1; \
field1=$1; \
split(field1,sub_fields,":"); \
request=sub_fields[1]; \
the_date=sub_fields[4]; \
if ($2 ~ pat1){ \
k=k+1; \
if ($2 ~ pat2){ \
j=1+j; \
print "***Record***", request, the_date; print " ---Start Data---", $2; } } \
} END { print "Processed, ", i, ",num of lab matches,", k,", records num of keywords matches: ,", j }' requests
#Output
***Record*** Request 05/27/2009 1
---Start Data--- : room1 several computers in a row are freezing up and student...
Description: room1 several computers in a row are freezing up and students have to reboot.
Processed, 2 ,num of lab matches, 1 , records num of keywords matches: , 1
Request: 10
As Of: 05/27/2009 1:34:58 pm
Irrevelant Data ...
Summary: Virus on PC.
Description: Virus on PC.
Request: 11
As Of: 05/27/2009 1:34:58 pm
Irrevelant Data...
Summary: room1 several computers in a row are freezing up and student...
Description: room1 several computers in a row are freezing up and students have to reboot.
awk -v pat1="room1" -v pat2="freezing|crash" 'BEGIN { RS=""; FS="Summary"; i=0; j=0; k=0 } {\
i=i+1; \
field1=$1; \
split(field1,sub_fields,":"); \
request=sub_fields[1]; \
the_date=sub_fields[4]; \
if ($2 ~ pat1){ \
k=k+1; \
if ($2 ~ pat2){ \
j=1+j; \
print "***Record***", request, the_date; print " ---Start Data---", $2; } } \
} END { print "Processed, ", i, ",num of lab matches,", k,", records num of keywords matches: ,", j }' requests
#Output
***Record*** Request 05/27/2009 1
---Start Data--- : room1 several computers in a row are freezing up and student...
Description: room1 several computers in a row are freezing up and students have to reboot.
Processed, 2 ,num of lab matches, 1 , records num of keywords matches: , 1
Friday, May 29, 2009
Removing carriage returns with sed
sed -e s/$'\r'/\ /g input_file # remove carriage returns
sed -e 's/\n/ /g' input_file # remove newlines
sed -e 's/\n/ /g' input_file # remove newlines
Insert text before a pattern with sed
cat some_file | sed '/pattern/i\
text to insert
' > output_file
text to insert
' > output_file
Example of processing multiline records with awk
Processing multiline records is tricky. It is easier to use blank lines as record separators.
#example records
ink1 4.99
red
ink2 5.99
yellow
awk ' BEGIN { RS=""; FS=" "} { r1=$1; r2=$2; r3=$3; print "***Record***" r1 " " r2 " " r3 }' inks
#What it prints out
***Record***ink1 4.99
red
***Record***ink2 5.99
yellow
#example records
ink1 4.99
red
ink2 5.99
yellow
awk ' BEGIN { RS=""; FS=" "} { r1=$1; r2=$2; r3=$3; print "***Record***" r1 " " r2 " " r3 }' inks
#What it prints out
***Record***ink1 4.99
red
***Record***ink2 5.99
yellow
Thursday, May 28, 2009
Showing a decimal expansion with bc
#3 digits after the decimal place
echo "scale=3; 41.0 / 939.0" | bc
echo "scale=3; 41.0 / 939.0" | bc
Wednesday, May 27, 2009
awk script to generate count of each program
#csv of format:
#the_program, any_data, any_data, ....
#
#this script counts number of repetitions of a program
cat program-list.csv | awk -F',' '/[a-zA-Z0-9]+/{print $1}' | sort | uniq -c
#the_program, any_data, any_data, ....
#
#this script counts number of repetitions of a program
cat program-list.csv | awk -F',' '/[a-zA-Z0-9]+/{print $1}' | sort | uniq -c
Monday, April 20, 2009
For loop of death
This is a way to somewhat defend yourself when a process keeps on respawning itself and won't go away. This happens quite a bit when XP gets infiltrated by malware.
for /l %a in (1,1,1000000) do taskkill /im malware.exe /f
Subscribe to:
Posts (Atom)