def GetSystemConfigurationArtifact(self, session_identifier=CURRENT_SESSION):
    """Retrieves the knowledge base as a system configuration artifact.

    Args:
      session_identifier (Optional[str])): session identifier, where
          CURRENT_SESSION represents the active session.

    Returns:
      SystemConfigurationArtifact: system configuration artifact.
    """
    system_configuration = artifacts.SystemConfigurationArtifact()

    system_configuration.code_page = self.GetValue(
        'codepage', default_value=self._codepage)

    system_configuration.hostname = self._hostnames.get(
        session_identifier, None)

    system_configuration.keyboard_layout = self.GetValue('keyboard_layout')
    system_configuration.operating_system = self.GetValue('operating_system')
    system_configuration.operating_system_product = self.GetValue(
        'operating_system_product')
    system_configuration.operating_system_version = self.GetValue(
        'operating_system_version')

    date_time = datetime.datetime(2017, 1, 1)
    time_zone = self._time_zone.tzname(date_time)

    if time_zone and isinstance(time_zone, py2to3.BYTES_TYPE):
      time_zone = time_zone.decode('ascii')

    system_configuration.time_zone = time_zone

    user_accounts = self._user_accounts.get(session_identifier, {})
    # In Python 3 dict.values() returns a type dict_values, which will cause
    # the JSON serializer to raise a TypeError.
    system_configuration.user_accounts = list(user_accounts.values())

    return system_configuration
Retrieves the knowledge base as a system configuration artifact.

    Args:
      session_identifier (Optional[str])): session identifier, where
          CURRENT_SESSION represents the active session.

    Returns:
      SystemConfigurationArtifact: system configuration artifact.