2012-07-27 1 views
2

사용자가 일련의 vbscript (및 곧 Perl 스크립트)를 실행하기 위해 특정 라디오 버튼 배열을 클릭 할 때 요구 사항이 있습니다.ASP.net (vb.net) 페이지에서 일련의 VBScript를 실행하고 있습니까?

나는 서버 측에 저장된 모든 vbscript를 가지고 있으며, 실행하기 위해 원격 시스템에있을 필요는 없습니다. 오 예, 스크립트가 인트라넷의 원격 시스템에 대한 정보를 수집하고 있습니다.

가장 좋은 방법은 무엇입니까? 현재이 스크립트는 하나의 스크립트 만 실행하고 다중 스크립트는 실행하지 않습니다.이 스크립트를 유지하거나이 아이디어를 처리해야합니다. 내가 다른 함수 "textRead"하지만 벌어지고있는 것은이 특정 스크립트가 저장되는 클라이언트 측하고 텍스트 파일로 출력하는 VBScript를이 할 수 있기 때문에

Protected Sub windowsScript(ByVal COMPUTERNAME As String) 
    ' Create an array to store VBScript results 
    Dim winVariables(1) As String 
    Dim filePath As String = COMPUTERNAME & "\C$\Windows\somefile.txt" 
    'Execute PsExec on script 
    runPsExec(COMPUTERNAME, "systemInfo.vbs", 1) 
    'Import data from text file into variables 
    textRead(filePath, winVariables) 
    System.Threading.Thread.Sleep(1000) 
    'Delete the file on server - we don't need it anymore 
    runPsExec(COMPUTERNAME, "systemInfo.vbs", 2) 
    MsgBox("Windows OS: " & winVariables(0).ToString()) 
    MsgBox("Service Pack: " & winVariables(1).ToString()) 

End Sub 

또한, 여기에서 볼 어렵다. textRead는 변수를 읽고 텍스트 파일을 다시 서버로 보내서 읽습니다.

이것은 내가하고 싶은 일이 아닙니다. 나는 조금 더 역동적이고 새로운 스크립트를 원한다. 클라이언트에있을 필요는 없다.

어떤 도움을 주시면 감사하겠습니다 :)

내가 While 루프의 몇 가지 유형을 생각하고, 확실하지가 해결한다면.

+1

짧은 버전 : // 위키 .asp.net/page.aspx/490/observer-pattern /)와 같은 대/소문자를 처리합니다. –

+0

나는이 패턴을 읽은 후에이 패턴을 이해합니다. 내 코드에서 어떤 객체도 사용할 필요가 없다. 그것은 내 코드 숨김에서 모두 매우 절차 적입니다. 나는 객체로 변환 할 수있는 방법을 생각조차 할 수 없다. (참고 : 객체 지향 프로그래밍에는 약간 부족하다.) – envinyater

답변

1

브라우저를 통해 이렇게하는 것이 이상합니다. 우리 회사에서는 logonime에서 systeminfo를 수집하고 그 결과를 logapp에 추가합니다.이 로그 파일에 webapp을 통해 액세스하여 연구를 수행 할 수 있습니다. 경우에 따라 필요에 따라 더 많은 데이터를 수집하거나 Windows SCCM을 통해 일부 시스템 설정을 변경하기 위해 특정 스크립트를 실행합니다.

사용자가 자신의 시스템에 대한 정보를 제공하는 것이 목표 인 경우 로컬에서 실행할 수있는 좋은 유틸리티가 있지만 서버 공유의 위치에서 사용할 수 있습니다.

편집

여러 프로세스

dim scripts_to_run, script 
const COMPUTERNAME = 0, SCRIPTNAME = 1, EXTRA_PARAMS = 2 
scripts_to_run = Array(_ 
    Array("computer1","script1.vbs",1),_ 
    Array("computer2","script1.vbs",0),_ 
    Array("computer3","script3.vbs",3)_ 
) 
for each script in scripts_to_run 
    runPsExec script(COMPUTERNAME), script(SCRIPTNAME), script(EXTRA_PARAMS) 
    runPsExec join(script,",") 
next 

sub runPsExec(p1, p2, p3) 
    'here coms your code shat runs the script 
    wscript.echo p1 & p2 & p3 
end sub 

을 시작하는 간단한 방법이나 나는 [옵저버 패턴]과 같이 (HTTP 사용하십시오

dim scripts_to_run, aArgs 
scripts_to_run = Array(_ 
    Array("computer1","script1.vbs",1),_ 
    Array("computer2","script1.vbs",0),_ 
    Array("computer3","script3.vbs",3)_ 
) 
for each aArgs in scripts_to_run 
    runPsExec aArgs 
next 

sub runPsExec(aArgs) 
    'here coms your code shat runs the script 
    wscript.echo aArgs(0) & aArgs(1) & aArgs(2) 
end sub 
+0

시스템 정보 스크립트를 사용하여 테스트하고 있습니다. 실제 아이디어는 빌드 팀의 서버 구성을 확인하는 것입니다. 여러 개의 스크립트가 있습니다. 이 경우 – envinyater

+0

이 있으면 스크립트 샘플을 추가했습니다. 여기서는 여러 프로세스 (스크립트)를 시작하는 방법을 쉽게 구성 할 수있는 방법을 보여줍니다. 스크립트를 호출하는 방식에 따라 비동기 또는 동기화를 실행할 수 있습니다. – peter

+0

나는이 아이디어를 많이 좋아합니다. 그래서 이것은 2-Dimensional 배열이됩니다. 마지막에 정수는 무엇입니까? 1,0,3? – envinyater

관련 문제