deve ser ExecShell
ExecShell open un.bat
Então, revi o máximo de documentação possível sobre o InTune e o NSIS e não consigo descobrir isso.
Eu tenho um instalador silencioso do NSIS que (quando executado localmente, até mesmo como sistema via psexec) é executado sem qualquer problema, mas parece não fazer nada quando implementado com implantação de software com o InTune. O instalador chama um arquivo em lote que executa um vbscript para enumerar todos os usuários em um sistema, em seguida, altera todas as suas senhas: Veja abaixo a fonte em todos os acima mencionados.
Instalador do NSIS
Name "Silent"
OutFile "silent.exe"
RequestExecutionLevel admin
Function .onInit
SetSilent silent
FunctionEnd
Section ""
File FindUsers.vbs
File un.bat
Exec un.bat
SectionEnd
Script VBS
Set exclude = CreateObject("Scripting.Dictionary")
exclude.CompareMode = vbTextCompare
exclude.Add "HomeGroupUser$", True
exclude.Add "Guest", True
Set accounts = GetObject("WinNT://.")
accounts.Filter = Array("user")
For Each user In accounts
If Not exclude.Exists(user.Name) Then WScript.Echo user.Name
Next
E, por último, o arquivo em lote:
@echo off
setlocal
set newpw=Test
for /f "delims=" %%u in ('cscript //NoLogo FindUsers.vbs') do (
echo "net user "%%u" "%newpw%""
net user "%%u" "%newpw%"
)
Por que isso não funcionaria corretamente quando implantado com o intune, mas seria executado corretamente quando executado como usuário ou sistema?
deve ser ExecShell
ExecShell open un.bat
você também pode precisar especificar um diretório de saída, consulte SetOutPath
SetOutPath $TEMP
File "un.bat" # will be extracted to $TEMP
ExecShell open "$TEMP\un.bat"