Isso acontece porque o netsh aplica os comandos, mas não os salva. Você precisa explicitamente fazer um perfil usando a GUI para que essas configurações persistam após as reinicializações / desligamentos.
Outra maneira de fazer isso é criar os perfis xml de forma programática em um script cmd.exe.
veja este perfil XML como exemplo:
<?xml version="1.0" encoding="US-ASCII"?>
<WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1">
<name>SampleWPAPSK</name>
<SSIDConfig>
<SSID>
<name>SampleWPAPSK</name>
</SSID>
</SSIDConfig>
<connectionType>ESS</connectionType>
<connectionMode>auto</connectionMode>
<autoSwitch>false</autoSwitch>
<MSM>
<security>
<authEncryption>
<authentication>WPAPSK</authentication>
<encryption>TKIP</encryption>
<useOneX>false</useOneX>
</authEncryption>
</security>
</MSM>
</WLANProfile>
Você deve escrever um arquivo bat que produza um perfil em formato similar, para um arquivo com extensão xml, e depois para netsh:
netsh wlan add profile filename="<filename>" user=all
onde é o nome do arquivo xml que contém informações de rede.