라이센스를 가진 사용자(역할에 지정된 사용자) 수 계산

이 섹션의 스크립트를 사용하여 환경의 사용자 수를 계산하는 역할 지정 보고서를 생성할 수 있습니다.

다음 스크립트를 복사하여 provisionedUsersCount.bat를 생성합니다.

주:

  • provisionedUsersCount.bat를 실행하기 위한 입력 매개변수는 username, password/password_file, service_url, report_file_name입니다. 예를 들어 명령 프롬프트에서 다음과 유사한 명령을 입력합니다.

    provisionedUsersCount.bat jdoe password.epw https://example.oraclecloud.com myRole_assign.CSV

    비밀번호에 특수 문자가 포함된 경우 특수 문자 처리를 참조하십시오.
  • 이 문서의 PDF 버전을 사용 중인 경우: 이 스크립트를 사용할 수 없게 만드는 줄 바꿈 및 바닥글 정보를 방지하려면 이 항목의 HTML 버전에서 스크립트를 복사합니다.

@echo off

set paramRequiredMessage=Syntax: provisionedUsersCount.bat USERNAME PASSWORD/PASSWORD_FILE URL REPORT_FILE_NAME

if "%~1" == "" (
      echo User Name is missing.
        echo %paramRequiredMessage%
        exit /b 1
  )

if "%~2" == "" (
        echo Password or Password_File is missing.
        echo %paramRequiredMessage%
        exit /b 1
  )

if "%~3" == "" (
        echo URL is missing.
        echo %paramRequiredMessage%
        exit /b 1
  )

if "%~4" == "" (
        echo Role Assignment Report File Name is missing.
        echo %paramRequiredMessage%
        exit /b 1
  )

call epmautomate.bat login %~1 "%~2" %~3 
REM call epmautomate.bat login %~1 "%~2" %~3

if %errorlevel% NEQ 0 exit /b 1
   call epmautomate.bat roleAssignmentReport "%5"
if %errorlevel% NEQ 0 exit /b 1
   call epmautomate.bat downloadFile "%5"
if %errorlevel% NEQ 0 exit /b 1

set filePath="%cd%\%4"

if exist %filePath% (
        SETLOCAL EnableDelayedExpansion
        set /a lineCount=0
        set /a userCount=0
        set userHeaderFound=false
        for /f "tokens=*" %%A in ( 'type %filePath%' ) do (
                set /a lineCount+=1
                set line=%%A
                
                REM Fetch username from role assignment information row
                if !userHeaderFound!==true (
                        for /f "delims=," %%i in ("!line!") do (
                                set userName=%%i
        )
                if NOT !userName! == "" (
                  if !userCount! gtr 0 if NOT !userName! == !lastUserName! (
                          set /a userCount+=1
        set users[!userCount!]=!userName!
                                )
                if !userCount! == 0 (
                                set /a userCount+=1
                                set users[!userCount!]=!userName!
                                )
      set lastUserName=!userName!
                        )
                )

                REM Check for headers of Role Assignment Report
                if "!line!"=="User Login,First Name,Last Name,Email,Role,Granted through Group" (
                                set userHeaderFound=true
                    )
    if "!line!"=="User Login,First Name,Last Name,Email,Roles,Granted Through" (
        set userHeaderFound=true
                 )
        )

        echo Number of Users: !userCount!
        for /l %%n in (1,1,!userCount!) do ( 
  REM echo !users[%%n]!
        )
        endlocal

) else (
          echo Invalid provisioning report file path - %filePath%.
)