LAPS / ADU & C의 배치 파일에서 문자열 변수 구문 분석


0

LAPS 를 구현하려고합니다.네트워크의 (Local Admin Password Solution)에 LAPS를 ADU & C 오른쪽 클릭 컨텍스트 메뉴와 통합하는 데 문제가 있습니다. 저의 목표는 헬프 데스크 직원이 ADU & C 내의 컴퓨터 개체를 마우스 오른쪽 단추로 클릭하고 LAPS가 함께 제공된 LAPS PowerShell 스크립트를 사용하여 로컬 관리자 암호를 다시 설정하도록하는 것입니다. ADU & C 상황에 맞는 메뉴 자체에서 직접 PS를 실행할 수는 없지만 배치 파일을 만들어 원하는 PS 스크립트를 실행할 수 있어야합니다. 모든 것이 올바르게 작동하지만 ADU & C에서 컴퓨터 개체를 마우스 오른쪽 단추로 클릭 한 다음 컨텍스트 메뉴에서 배치 파일을 시작하면 컴퓨터 이름이 LDAP 형식의 문자열로 전달됩니다.

일반적으로 사용중인 배치 파일 (ADU & C adminContextMenu에서 시작)은 다음과 같습니다.

@echo off
Title "Reset local Administrator password"
For /F "tokens=2 delims==," %%A In ("%1%") Do Set CompName=%%%A
PowerShell.exe -ExecutionPolicy Unrestricted -Command "Import-Module AdmPwd.PS; Reset-AdmPwdPassword" -ComputerName:%CompName%
Set CompName=

% 1 % 명령 줄 인수로 배치 파일에 전달되는 문자열의 예는 다음과 같습니다 (따옴표도 문자열의 일부입니다).

"LDAP://SERVER.contoso.com/CN=IT-SYSTEM,OU=ITusers,DC=contoso,DC=com"

위의 문자열에서 벗어나고 싶은 것은 컴퓨터 이름 자체 (IT-SYSTEM)입니다. 첫 번째 쉼표까지 첫 번째 = (같음) 가입 후 모든 텍스트가됩니다. 토큰은 2)입니다. CompName이라는 새 변수에 해당 변수를 저장 한 다음 배치 파일 내의 PS 명령에 해당 변수를 전달할 수 있어야합니다. 나는 성공하지 않고 FOR 명령의 몇 가지 변형을 시도했습니다. 내 문제는 배치 파일로 전달되는 원래 문자열에 따옴표가 이미 묶여있을 수 있다고 생각합니다. 구문 분석되는 문자열에 이미 따옴표가있는 경우 배치 파일을 사용하여 위의 문자열에서 원하는 정보를 선택할 수 있습니까?

미리 감사드립니다

답변:


2

있는 경우 %~1문자열에서 큰 따옴표를 묶는 데 사용 합니다 %1( 명령 확장이 활성화되어 있어야 함 ). 또한 %코드에 유해한 여분의 백분율 기호가 있습니다.

For /F "tokens=2 delims==," %%A In ("%1%") Do Set CompName=%%%A
                                       ^                   ^

다음 스크립트가 작동 할 수 있습니다.

@echo off
SETLOCAL EnableExtensions DisableDelayedExpansion
Title "Reset local Administrator password"
For /F "tokens=2 delims==," %%A In ("%~1") Do Set "CompName=%%A"
ECHO PowerShell.exe -ExecutionPolicy Unrestricted -Command "Import-Module AdmPwd.PS; Reset-AdmPwdPassword" -ComputerName:%CompName%
Set CompName=

참고 PowerShell.exe선 것은 단지 (내가하지 않는 한 디버깅 목적으로 반향되는 AdmPwd모듈이 설치를 디버깅하기 위해); ECHO디버깅 된 것보다 빨리 선행 단어 를 제거하여 작동하도록하십시오 .

PowerShell.exe -ExecutionPolicy Unrestricted -Command "Import-Module AdmPwd.PS; Reset-AdmPwdPassword -ComputerName:%CompName%"

자료 (필독) :


당신은 굉장합니다-훌륭하게 일했습니다-감사합니다!
STGdb
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.