Mac OSX 802.1x Profile Removal

sudo mv /Library/Preferences/SystemConfiguration/ /Library/Preferences/SystemConfiguration/


Linux Test Bandwidth Between Two Servers


[expand title=”3 Command line tools to test bandwidth between 2 servers “]

One element that is often not know, or that should be measured after a problem statement or after a change in the infrastructure is the network . But how do you accurately measure the speed between two servers?

Someone use ftp, scp or other file transfer protocols, these can give some indication, but probably you’ll measure the limit of your disks or CPU.

In this article I will show you 3 way to measure the bandwidth from the command line, without using the disks.


Iperf was developed by NLANR/DAST as a modern alternative for measuring maximum TCP and UDP bandwidth performance. Iperf allows the tuning of various parameters and UDP characteristics. Iperf reports bandwidth, delay jitter, datagram loss.

The quality of a link can be tested as follows:
– Latency (response time or RTT): can be measured with the Ping command.
– Jitter (latency variation): can be measured with an Iperf UDP test.
– Datagram loss: can be measured with an Iperf UDP test.

The bandwidth is measured through TCP tests.

To be clear, the difference between TCP (Transmission Control Protocol) and UDP (User Datagram Protocol) is that TCP use processes to check that the packets are correctly sent to the receiver whereas with UDP the packets are sent without any checks but with the advantage of being quicker than TCP.
Iperf uses the different capacities of TCP and UDP to provide statistics about network links.

With Iperf you have a server machine where iperf put itself in listening and the other that is the client that send the informations.




Basic usage:

Server side:

#iperf -s
Server listening on TCP port 5001
TCP window size: 8.00 KByte (default)
[852] local port 5001 connected with port 54355
[ ID]   Interval          Transfer        Bandwidth
[852]   0.0-10.1 sec   1.15 MBytes   956 Kbits/sec
Client connecting to, TCP port 5001
TCP window size: 8.00 KByte (default)
[824] local port 1646 connected with port 5001
[ ID]   Interval          Transfer        Bandwidth
[824]   0.0-10.0 sec   73.3 MBytes   61.4 Mbits/sec

Client side

#iperf -c -d
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
Client connecting to, TCP port 5001
TCP window size: 16.0 KByte (default)
[ 5] local port 60270 connected with port 5001
[ 4] local port 5001 connected with port 2643
[ 4] 0.0-10.0 sec 76.3 MBytes 63.9 Mbits/sec
[ 5] 0.0-10.1 sec 1.55 MBytes 1.29 Mbits/sec

So using Iperf (with appropriate flags) on both our machines we can simply measure the bandwidth between them.

Iperf is available also for Windows.

Complete guide:



To eliminate the disks from having any part of the transfer, we will use netcat transferring the output of command yes. Netcat is described as being a “feature-rich network debugging and exploration tool”. It can be obtained from Source Forge, or it may already be available in your distribution.

Again we will use one of the machines as a server that receives the data and the other as a client that sends the information.

Basic usage
On th server machine

nc -v -v -l -n  2222 >/dev/null
listening on [any] 2222 ...

On the client machine

time yes|nc -v -v -n 2222 >/dev/null

On client stop the process  after 10 seconds (more or less) with ctrl-c, you’ll get something like:

sent 87478272, rcvd 0

real 0m9.993s
user 0m2.075s
sys 0m0.939s

On the server machine, note the data received (in bytes)

 sent 0, rcvd 87478392

Now multiply the bytes rcvd by 8 to get total bits, then divide by the time: Result in this example is 70Mb/s


Bandwidth Test Controller (BWCTL)

BWCTL is a command line client application and a scheduling and policy daemon. These tests can measure maximum TCP bandwidth, with various tuning options available, or, by doing a UDP test, the delay, jitter, and datagram loss of a network.

The bwctl client application works by contacting a bwctld process on the two test endpoint systems. BWCTL will work as a 3-party application. The client can arrange a test between two servers on two different systems. If the local system is intended to be one of the endpoints of the test, bwctl will detect whether a local bwctld is running and will handle the required server functionality if needed.

The bwctl client is used to request the type of throughput test wanted. Furthermore, it requests when the test should be executed. bwctld either responds with a tentative reservation or a test denied message. Once bwctl is able to get a matching reservation from both bwctld processes (one for each host involved in the test), it confirms the reservation. Then, the bwctld processes run the test and return the results. The results are returned to the client from both sides of the test. Additionally, the bwctld processes share the results from their respective sides of the test with each other.


For more information check the man page:[/expand]

Wise exe switches

Ripped directly from

NOTE: I did find for Aleph that when running the uninstaller (unwise32.exe) I needed to use the shorthand C:Progra~1<<INSTALLDIR>>INSTALL.LOG syntax for it to find the log file.

[expand Title=”You can apply the following command line options to the WSE file. Command line options let you compile as well as set properties.”]

/c file.wse
Compiles the installation script.
/c /s file.wse
Compiles the installation script silently. You can use this option with the /d option.
WiseScript Installations Command Line Options

You can apply the following command line options to compiled .EXE files.

Runs the installation in manual mode, prompting for system directories (examples: Windows, System).
Specifies a value file for installation.
Installs in silent (automatic) mode with no end user choices.
Uninstall Command Line Options

You can apply the following command line options to the WiseScript Express uninstall executable file, unwise.exe or unwise32.exe.

Removes empty directories, including the one containing Unwise.
Automatic mode. The Wise splash screen appears on the destination computer, and the uninstall proceeds immediately with no end user choices, except for questions about uninstalling shared files.
Silent mode. The uninstall proceeds silently with no splash screen, no dialogs, and no end user choices.
Rollback mode.
Removes the Select Uninstall Method dialog, which means the end user does not see options for a custom, automatic, or repair uninstall.
When you use command line options for the uninstall program, you must send it the path to the log file as a parameter. It must be the log file that is in the same folder as unwise.exe. If the path to the log file contains spaces, it must be surrounded by quotation marks.

“C:Program FilesApplicationUNWISE.EXE” /A “C:Program FilesApplicationINSTALL.LOG” Application Uninstall[/expand]

msiexec error codes

taken from


[expand title=”msiexec codes”]

Action completed successfully.
Nothing to be done
The data is invalid
One of the parameters was invalid.
The Windows Installer service could not be accessed. Contact your support personnel to verify that the Windows Installer service is properly registered.
There’s a problem with the Windows Installer Service. It might happen after a KB that affects it has just been installed. Solution: Restarting the machine usually solves the problem.
User cancel installation.
The user has cancelled the installation. Solution: just don’t cancel it
Fatal error during installation.
It’s the most common error code. It means something is wrong with the package.
Installation suspended, incomplete.
This action is only valid for products that are currently installed.
This happens when you try to uninstall/repair an MSI using its product code. Solution: Check if the product is installed first. For example, the existance of HKCRInstallerProductshash corresponding key
Feature ID not registered.
Component ID not registered.
Unknown property.
Handle is in an invalid state.
The configuration data for this product is corrupted. Contact your support personnel.
Component qualifier not present.
The installation source for this product is not available. Verify that the source exists and that you can access it.
This installation package cannot be installed by the Windows Installer service. You must install a Windows service pack that contains a newer version of the Windows Installer service.
Product is uninstalled.
SQL query syntax invalid or unsupported.
Record field does not exist.
Another installation is already in progress. Complete that installation before proceeding with this install.
This happens when you try to install a product while another installation is in progress. Solution: Wait until the previous installation is finished.
This installation package could not be opened. Verify that the package exists and that you can access it, or contact the application vendor to verify that this is a valid Windows Installer package.
Either the file (MSI) doesn’t exist, or it’s being locked for editing (by tools such as Orca, insted, etc). Solution: Check the location and make sure no process holds it locked.
This installation package could not be opened. Contact the application vendor to verify that this is a valid Windows Installer package.
There was an error starting the Windows Installer service user interface. Contact your support personnel.
Error opening installation log file. Verify that the specified log file location exists and is writable.
Solution: Make sure you have the permissions to write to the log file. Or change its location.
This language of this installation package is not supported by your system.
Error applying transforms. Verify that the specified transform paths are valid.
Solution: Make sure the path to the MST is correct.
This installation is forbidden by system policy. Contact your system administrator.
Function could not be executed.
Function failed during execution.
Invalid or unknown table specified.
Data supplied is of wrong type.
Data of this type is not supported.
The Windows Installer service failed to start. Contact your support personnel.
The temp folder is either full or inaccessible. Verify that the temp folder exists and that you can write to it.
This installation package is not supported on this platform. Contact your application vendor.
Component not used on this computer.
This patch package could not be opened. Verify that the patch package exists and that you can access it, or contact the application vendor to verify that this is a valid Windows Installer patch package.
This patch package could not be opened. Contact the application vendor to verify that this is a valid Windows Installer patch package.
This patch package cannot be processed by the Windows Installer service. You must install a Windows service pack that contains a newer version of the Windows Installer service.
Another version of this product is already installed. Installation of this version cannot continue. To configure or remove the existing version of this product, use Add/Remove Programs in Control Panel.
Invalid command line argument. Consult the Windows Installer SDK for detailed command line help.
Installation from a Terminal Server client session not permitted for current user.
The installer has started a reboot.
The installer cannot install the upgrade patch because the program being upgraded may be missing, or the upgrade patch updates a different version of the program. Verify that the program to be upgraded exists on your computer and that you have the correct upgrade patch.
A restart is required to complete the install. This does not include installs where the ForceReboot action is run.


Windows Registry Key Permissions

To take change ownership of registry keys in Windows use of the regini.exe tool seems simplest.

[expand title=”MS KB 245031 describes using a script that regini.exe calls to execute, basically just the registry key referenced in a text file:”]

Install the latest version of the Windows NT Server 4.0 Resource Kit.
Create a script file that contains the change commands:
Start any text editor (such as Notepad).
Type the registry keys and the appropriate permissions in the following format
Registryhivekey [permissions]
where hive is the name of the registry hive, key is the name of the registry key, and [permissions] is the binary number format of the permissions. 

For example, to modify the HKEY_LOCAL_MACHINESoftware registry key to give the Administrators group and the Creator/Owner group Full Control permission and the Everyone group Read permission, type the following string:
RegistryMachineSoftware [1 5 8]
NOTE: You must type the permissions in the binary number format. You must also refer to the registry hive in the predefined format. For more information about how to refer to a registry hive in a script file and about the binary numbers for various types of permissions, refer to the 'Reference to Registry Hives and Binary Number Representation for Permissions' section in this article.
Save and then close the script file.
Type the following command at a command prompt, and then press ENTER
REGINI [-m \computername] scriptname
where computername is the name of the computer and scriptname is the name of the script file you just created. 

NOTE: Use the -m option only when you edit the registry of a remote computer. Be sure to include the entire path to the script file.
Reference to Registry Hives and Binary Number Representation for Permissions 

Refer to registry hives as indicated below:
  HKEY_LOCAL_MACHINE - RegistryMachine
  HKEY_USERS - RegistryUsers
  HKEY_CURRENT_USER - RegistryUserUser_SID (where User_SID is the current user's security identifier)



[expand title=”MS KB 237607 describes permissions levels:”]

 1  - Administrators Full Access
 2  - Administrators Read Access
 3  - Administrators Read and Write Access 
 4  - Administrators Read, Write and Delete Access
 5  - Creator Full Access
 6  - Creator Read and Write Access
 7  - World Full Access
 8  - World Read Access
 9  - World Read and Write Access
 10 - World Read, Write and Delete Access
 11 - Power Users Full Access
 12 - Power Users Read and Write Access
 13 - Power Users Read, Write and Delete Access
 14 - System Operators Full Access
 15 - System Operators Read and Write Access
 16 - System Operators Read, Write and Delete Access
 17 - System Full Access
 18 - System Read and Write Access
 19 - System Read Access
 20 - Administrators Read, Write and Execute Access
 21 - Interactive User Full Access
 22 - Interactive User Read and Write Access
 23 - Interactive User Read, Write and Delete Access