I will repeat my advice on one of the best nonlethal and readily available weapons which can be effective in defeating an assailant.
A standard ABC Dry Chemical Fire Extinguisher.
They are located every where and easily accessible.
The chemical is caustic.
When it gets in the eyes it cause immediate pain and tearing. if not washed out it can cause permanent damage to the eyes up to blindness.
When inhaled it causes asthma like symptoms including uncontrolled coughing.
When ingested it causes burning to the throat, gauging and can cause vomiting
NOTE: Except for the vomiting and permanent eye damage, I have experienced the effects personally.
Anyone of these events will severely limit the attackers ability to continue the attack.
To employ the Fire Extinguisher.
Assume a low defensive position ( preferably behind cover) about 15' from the entry point. This allows the agent to form a cloud but still has a solid stream.
Aim at the by face. Sweep rapidly from side to side. This disperses the agent and creates a cloud which is easily inhaled. The stream will coat the face and eyes.
The fire extinguisher is a good second choice when my 1911 is not available.