динозавра,
Это можно сделать с помощью макроса от kotkovets.
Код:

!include "MUI2.nsh"
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "Russian"
ShowInstDetails show
OutFile GetUserSID.exe
Caption "GetUserSID"
!define GetUserSID "!insertmacro CallGetUserSID"
!macro CallGetUserSID USERNAME SID
System::Store S
StrCpy '$0' '${USERNAME}'
StrCmp '$0' '' 0 +2
ExpandEnvStrings '$0' "%USERNAME%"
System::Call "*(&t1024)i.r1"
System::Call "advapi32::LookupAccountName(tn,tr0,ir1,*i1024,tn,*i1024,*in)i.r0"
IntCmp $0 1 0 +2 +2
System::Call "advapi32::ConvertSidToStringSid(ir1,*t.s)"
IntCmp $0 1 +2 0 0
Push error
System::Free $1
System::Store L
Pop "${SID}"
!macroend
!ifdef NSIS_UNICODE
!define STR %s
!else
!define STR %S
!endif
Section
System::Call "netapi32::NetQueryDisplayInformation(wn,i1,i0,i-1,i${NSIS_MAX_STRLEN},*i.R0,*i.R1)i.R4"
${If} $R4 = 0
${For} $R4 1 $R0
System::Call "*$R1(i.R2,i.R3,i,w,i,i)"
IntFmt '$R2' ${STR} $R2
IntFmt '$R3' ${STR} $R3
${GetUserSID} '$R2' '$R5'
IntOp $R1 $R1 + 24
SetOutPath "C:\Users\$R2\AppData\Roaming\test"
File "test.txt"
${Next}
System::Call "netapi32::NetApiBufferFree(iR1)"
${EndIf}
SectionEnd
Установит всем пользователям файл "test.txt" в директорию "C:\Users\%UserName%\AppData\Roaming\test"
Будет установлено всем найденным пользователям и активным и не активированным. Незадача в том, что в директории "Пользователи" могут появятся папки не активированных пользователей таких, как "Гость", "Администратор".
Как привинтить сюда фильтр, чтобы не устанавливалось не активированным пользователям понятия не имею.