Чтобы не лезть в дебри дал проверить на компе в домене. Отлично работает поиск через реестр. Работают обе строки. Этого более чем достаточно.
Код:
RequestExecutionLevel user
outfile test3.exe
SilentInstall silent
!include x64.nsh
!include LogicLib.nsh
Function .onInit
Var /GLOBAL Domain
Var /GLOBAL Dom
StrCpy $Dom ""
${If} ${RunningX64}
SetRegView 64
ReadRegStr $Domain HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine" "Distinguished-Name"
SetRegView 32
${Else}
ReadRegStr $Domain HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine" "Distinguished-Name"
${EndIf}
FunctionEnd
Section
${If} $Domain == $Dom
MessageBox MB_OK " Компьютер НЕ в домене "
${Else}
MessageBox MB_OK " Компьютер в домене "
${EndIf}
SectionEnd
Код:
RequestExecutionLevel user
outfile test4.exe
SilentInstall silent
!include LogicLib.nsh
Function .onInit
Var /GLOBAL Domain
Var /GLOBAL Dom
StrCpy $Dom ""
ReadRegStr $Domain HKLM "System\CurrentControlSet\Services\Tcpip\Parameters" "Domain"
FunctionEnd
Section
${If} $Domain == $Dom
MessageBox MB_OK " Компьютер НЕ в домене "
${Else}
MessageBox MB_OK " Компьютер в домене "
${EndIf}
SectionEnd