문제

I have Windows 실행(whoami)는 충돌하는 모든 너무 많습니다.라서 다른 프로세스에 대한 자세한 정보를 얻을 수는 현재 사용자와 도메인입니다.나는 무엇을 알고 매개 변수가 전달되면 그것은 실패합니다.

가 누구나 알고 적절한 방법으로 감싸는 프로세스와 쓰기의 명령을 로그하는 동안 여전히 호출 프로세스?

명령을 말하는 다음과 같이 사용할 수 있습니다:'whoami.exe /모든'

내가 좋아하는 스크립트가 존재하는 대신 whoami.exe (같은 파일이름)는 쓸 것이다 이 호출을 로그하고 다음에는 전화를 실제적인 과정입니다.

도움이 되었습니까?

해결책

에서 batch file:

echo Parameters: %* >> logfile.txt
whoami.exe %*

경고와 함께할 수 있는 문제가 있을 경우에는 매개변수를 포함한 공간(그리고 당신이 통과에서 탈출"),기 때문에 명령행에서 파서 기본적으로 드은 탈출 그리고 그들은 다시 탈출하기 전에 전달하는 다른 실행 가능합니다.

다른 팁

당신이 하지 않고 어떤 프로그래밍 언어입니다.그것은에서 할 수 있는니다.bat 파일을 만약 당신이 무엇을 원하는,그러나 당신이 그것을 할 수 있는 어떤 프로그래밍 언어입니다.를 들어 C:

int main(int argc, void **argv)
{
    // dump contents of argv to some log file
    int i=0;
    for (i=0; i<argc; i++)
        printf("Argument #%d: %s\n", argv[i]);
    // run the 'real' program, giving it the rest of argv vector (1+)
    // for example spawn, exec or system() functions can do it
    return 0; // or you can do a blocking call, and pick the return value from the program
}

나는 생각하지 않을 사용하여""스크립트 작동,이후 중간 있어야 합니다.exe 확장자에 대한 당신의 전략을 작동합니다.

쓰겠다고 아주 작은 명령행 프로그램을 이;다음과 같이(델파이로 작성/사실상 파스칼은 그래서 그것이 결과에 Win32 실행하지만,어떤 언어를 컴파일해야 할):

program PassThrough;

uses
  Dos; // Imports the Exec routine

const
  PassTo = 'Original.exe'; // The program you really want to call

var 
  CommandLine: String;
  i: Integer;
  f: Text;

begin
  CommandLine := '';
  for i := 1 to ParamCount do
    CommandLine := CommandLine + ParamStr(i) + ' ';

  Assign(f,'Passthrough.log');
  Append(f);
  Writeln(f, CommandLine);      // Write a line in the log
  Close(f);


  Exec(PassTo, CommandLine);    // Run the intended program
end.

할 수 없는 변경하기만 호출 프로그램 로그인 매개 변수를 호출하는 데 사용하는 과정,그리고 출구입니까?이 방법보다 쉽게 하려고 파고 whoami.exe

보 whoami.exe 백업으로 교체하여 자신의 실행 파일을 볼 수 당신이 원하는 건 뭐든지 가진 그것의 매개변수(어쩌면에 저장하는 텍스트 파일).

는 경우 재현할 수 있는 충돌,프로세스 탐색기를 사용하기 전에 추락 프로세스가 종료되었을 볼 수 있습니다.

http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top