hi
found a Way using Clipboard to pass Result of PowerShell into App using
Code: Select all
PROCEDURE DoCheckSMB()
LOCAL cStep1 := "Get-SmbServerConfiguration "
LOCAL cStep2 := 'Get-NetTCPConnection -LocalPort 139,445 -ea 0 | select Local*, Remote*, State, @{n="ProcessName";e={(Get-Process -Id $_.OwningProcess).ProcessName}} | ft -Auto '
LOCAL cClip := " | CLIP "
LOCAL cRun := "PowerShell.EXE "
LOCAL cPara := "-ExecutionPolicy Bypass -Command "
LOCAL cFile1 := HB_DirBase()+"GETSMB.PS1"
LOCAL cFile2 := HB_DirBase()+"LISTSMB.PS1"
LOCAL nHandle, cMemo, nLines, ii, cShow, cLine, cMore
***************** Step1 ********************
System.EmptyClipboard
nHandle := FCreate( cFile1, FC_NORMAL )
IF nHandle == -1
MsgInfo("Error create File : " + cFile1, STR(FError() ) )
ELSE
FWrite( nHandle, cStep1 + cClip )
FWrite( nHandle, CRLF + "EXIT" )
FClose( nHandle )
ENDIF
cMore := cPara + cFile1
ShellExecute( 0, "open", cRun, cMore,, SW_HIDE )
DO WHILE EMPTY(System.Clipboard)
hb_idleSleep( 0.1 )
ENDDO
cShow := ""
cMemo := System.Clipboard
nLines := MlCount( cMemo, 80 )
FOR ii := 1 TO nLines
cLine := Trim( MemoLine( cMemo, 80, ii ) )
DO CASE
CASE "EnableOplocks" $ cLine
cShow += cLine + CRLF
CASE "EnableSMB1Protocol" $ cLine
cShow += cLine + CRLF
CASE "EnableSMB2Protocol" $ cLine
cShow += cLine + CRLF
ENDCASE
NEXT
* Msginfo(cShow)
FERASE(cFile1)
***************** Step2 ********************
System.EmptyClipboard
nHandle := FCreate( cFile2, FC_NORMAL )
IF nHandle == -1
MsgInfo("Error create File : " + cFile2, STR(FError() ) )
ELSE
FWrite( nHandle, cStep2 + cClip)
FWrite( nHandle, CRLF + "EXIT" )
FClose( nHandle )
ENDIF
cMore := cPara + cFile2
ShellExecute( 0, "open", cRun, cMore,, SW_HIDE )
DO WHILE EMPTY(System.Clipboard )
hb_idleSleep( 0.1 )
ENDDO
* cShow := ""
cShow += CRLF
cMemo := System.Clipboard
nLines := MlCount( cMemo, 80 )
FOR ii := 1 TO nLines
cLine := Trim( MemoLine( cMemo, 80, ii ) )
DO CASE
* CASE "LocalAddress" $ cLine
* CASE "------------" $ cLine
OTHERWISE
cShow += cLine + CRLF
ENDCASE
NEXT
Msginfo(cShow)
FERASE(cFile2)
RETURN
! Note : PowerShell Script *.PS1 Script need "Full-Path"
- SMB2_PowerShell.jpg (15.24 KiB) Viewed 901 times
as i say it is not good when Windows "listen" to both Port
if Windows is "Listing" to UPD Port 139 disable "NetBIOS"
- Disable_NetBIOS.JPG (206.48 KiB) Viewed 901 times
p,s don´t forget to disable SMB2 "Local Cache"
https://docs.microsoft.com/en-us/previo ... dfrom=MSDN
DirectoryCacheLifetime to ZERO.
FileNotFoundCacheLifetime to ZERO.
FileInfoCacheLifetime to ZERO.