Showing posts with label scripting. Show all posts
Showing posts with label scripting. Show all posts

Friday, June 12, 2009

Silent install of msp patch

msiexec /p mspfile.msp /qn

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

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

Printing from the command line in XP

rem Print from command line


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

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

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

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

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

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 \;

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

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

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

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

Insert text before a pattern with sed

cat some_file | sed '/pattern/i\
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

Thursday, May 28, 2009

Showing a decimal expansion with bc

#3 digits after the decimal place
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

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