首页 文章 精选 留言 我的

精选列表

搜索[全文检索],共9733篇文章
优秀的个人博客,低调大师

通过VBA检索AD中的用户

VBA作为一种被用在Microsoft Office产品中的脚本语言,功能实际上是很强大的,这要归功于它继承了Visual Basic的很多优良传统,如我们可以在VBA工程中像VB 6一样引入类库或ActiveX控件。当然,你在VB 6中使用的组件或控件也完成可以在VBA中使用,例如日期输入组件。 VBA支持ADO,这也意味着我们可以在VBA中操作数据库,包括SQL Server、Access等。正因为如此,你可以尝试着在Excel中编写一个VBA程序来将Excel作为一个用于数据同步的中间件,该中间件可以用来同步应用程序与后台数据库中的数据,并在其中做一些处理。这是完全可以做到的!我在之前的一个项目中就曾做过这样的例子,我们甚至通过Excel同步了SQL Server和Sharepoint List之间的数据(这个我会在随后的一些中再做介绍)。 ADO的功能也很强大,我们可以在其中执行Windows脚本,经常使用的就是通过它来管理Windows Server的AD,如遍历AD中的账户,批量修改AD中的账户等,这已经没有什么好奇怪的了,你完全可以在Windows上使用记事本编写一个vbs脚本,然后直接使用它来管理你服务器上的AD,当然,基于安全考虑,这些都是需要适当的执行权限的。这些工作通过VBA也可以完成,并且在Excel中你会发觉有的时候很方便,如借用Excel现有的UI来展现所操作的数据;基于所查询的数据来生成图表;使用Excel提供的功能修改数据;遍历和组织数据的方便性等等... 下面我给出一个示例。在新的Sheet中添加一个ActiveX Button,然后添加下面的代码。 Private Sub CommandButton1_Click() On Error Resume Next Const ADS_SCOPE_SUBTREE = 2 Set objConnection = CreateObject ( " ADODB.Connection " ) Set objCommand = CreateObject ( " ADODB.Command " ) objConnection.Provider = " ADsDSOObject " objConnection.Open " Active Directory Provider " Set objCommand.ActiveConnection = objConnection objCommand.Properties( " Page Size " ) = 1000 objCommand.Properties( " Searchscope " ) = ADS_SCOPE_SUBTREE objCommand.CommandText = _ " SELECT Name FROM 'LDAP://dc=XXX,dc=com' WHERE objectCategory='user' " ' search all users from the domn XXX Set objRecordSet = objCommand.Execute objRecordSet.MoveFirst Dim currCell As Range Set currCell = Range( " A1 " ) Do Until objRecordSet.EOF currCell.Value = objRecordSet.fields( " Name " ).Value Set currCell = currCell.Offset( 1 , 0 ) objRecordSet.MoveNext Loop End Sub 代码中我使用了一个假象的域名称XXX,读者如果想要测试可将其改成真实的域名称。我们使用ADO对所指定的域进行了用户查询,并将域中所有用户的Name依次输出到Excel当前Sheet的第一列中,下面是输出结果的部分截图。 有关如何通过脚本操作AD,读者可以参考一下Microsoft的官方文档http://www.microsoft.com/technet/scriptcenter/guide/sas_usr_ykxh.mspx?mfr=true 如果权限允许,稍微修改一下上面的代码,完全可以实现批量修改AD中的账户的功能,鉴于公司网络环境,这里不方便进行测试了,读者如果有条件可以自己尝试。 本文转自Jaxu博客园博客,原文链接:http://www.cnblogs.com/jaxu/archive/2009/06/18/1505849.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

FTServer 1.7 发布,阿拉伯语全文搜索来了

FTServer 是一个实用的多国语言文字搜索服务器,支持古今文字的各种用法组合。 使用 CRUD + JSP 构建,非常容易整合到各类应用程序中。 搜索速度快,内存使用低,同时支持设置大内存进行加速。 支持: 中文 日文 英文 俄文 德文 等混合搜索。 更新内容: 增加阿拉伯语支持,希伯来文应该也能支持, 这是一个有20亿人使用的非常多地区变体的语言,不确定所有都支持。 另外,要支持 dir="auto" 的浏览器才能正常阅读。 这个版本主要方便一带一路地区的相关用户, 中英文用户没必要升级,因为作者只学习了三天阿拉伯语。 安装使用: 首先准备 30GB 硬盘空间。 FTServer Java 源码下载 Java 版本使用 Netbeans 编译,放入JSP服务器中。 或者在目录下执行 mvn package cargo:run ----------- FTServer .NET 源码下载 .NET 版本,使用 dotnet5.0 编译运行 dotnet run -c Release 索引文件默认位于 "user.home" 目录下 Gitee镜像地址 https://gitee.com/iboxdb/ftserver https://gitee.com/iboxdb/ftserver-cs 同类产品比较: 与 Lucene 的《红楼梦》测试对比

优秀的个人博客,低调大师

FTServer 1.6 发布,多国语言全文搜索服务器

FTServer 是一个实用的多国语言文字搜索服务器,支持古今文字的各种用法组合。 使用 CRUD + JSP 构建,非常容易整合到各类应用程序中。 搜索速度快,内存使用低,同时支持设置大内存进行加速。 支持: 中文 日文 英文 俄文 德文 等混合搜索。 更新内容: 更新内容为在搜索底层打开多个数据文件同时进行读数据。 操作系统对最大文件数有限制,需要修改操作系统的默认设置。 默认大约是打开1000个。 [user@localhost ~]$ ulimit -Hn 500000 [user@localhost ~]$ ulimit -Sn 500000 安装使用: 首先准备 30GB 硬盘空间。 FTServer Java 源码下载 Java 版本使用 Netbeans 编译,放入JSP服务器中。 或者在目录下执行 mvn package cargo:run ----------- FTServer .NET 源码下载 .NET 版本,使用 dotnet5.0 编译运行 dotnet run -c Release 索引文件默认位于 "user.home" 目录下,这个目录常被多软件实时关注,会影响性能。 如果性能不理想,可以试换个目录。 Gitee 上源码镜像不定期同步。 同类产品比较: 与 Lucene 的《红楼梦》测试对比

优秀的个人博客,低调大师

【Elasticsearch全文搜索引擎实战】之Filebeat快速入门

0. 背景 用过ELK(Elasticsearch, Logstash, Kibana)的人应该都面临过同样的问题,Logstash虽然功能强大:支持许多的input/output plugin、强大的filter功能。但是确内存占用会非常大。还有种情况(我就是orz...),在Logstash 5.2+版本中,input plugin使用Log4j,必须使用filebeat,并且只支持log4j 1.x版本。了解到filebeat已经支持filter和不少的output plugin,果断转投fielbeat阵营。 1. 简介 Filebeat官方介绍是这样的: Filebeat is a log data shipper for local files. Installed as an agent on your servers, Filebeat monitors the log directories or specific log files, tails the files, and forwards them either to Elasticsearch or Logstash for indexing. Here’s how Filebeat works: When you start Filebeat, it starts one or more prospectors that look in the local paths you’ve specified for log files. For each log file that the prospector locates, Filebeat starts a harvester. Each harvester reads a single log file for new content and sends the new log data to libbeat, which aggregates the events and sends the aggregated data to the output that you’ve configured for Filebeat. 翻译成中文大意就是: Filebeat是一个日志数据收集工具,在服务器上安装客户端后,filebeat会监控日志目录或者指定的日志文件,追踪读取这些文件(追踪文件的变化,不停的读),并且转发这些信息到elasticsearch或者logstarsh中存放。 以下是filebeat的工作流程:当你开启filebeat程序的时候,它会启动一个或多个探测器(prospectors)去检测你指定的日志目录或文件,对于探测器找出的每一个日志文件,filebeat启动收割进程(harvester),每一个收割进程读取一个日志文件的新内容,并发送这些新的日志数据到处理程序(spooler),处理程序会集合这些事件,最后filebeat会发送集合的数据到你指定的地点。 更关于探测器(prospectors)和收割进程(harvester)信息,请查看官网How Filebeat works. 1.2 核心功能 1.2.1 性能稳健,不错过任何检测信号 无论在任何环境中,随时都潜伏着应用程序中断的风险。Filebeat 能够读取并转发日志行,如果出现中断,还会在一切恢复正常后,从中断前停止的位置继续开始。 1.2.2 Filebeat 不会让通道过载 考虑到数据量较大,Filebeat 使用压力敏感协议向 Logstash 或 Elasticsearch 发送数据。如果 Logstash 正在繁忙地处理数据,它会告知 Filebeat 减慢读取速度。拥塞解决后,Filebeat 将恢复初始速度并继续输送数据。 1.2.3 不需要重载管道 当将数据发送到 Logstash 或 Elasticsearch 时,Filebeat 使用背压敏感协议,以考虑更多的数据量。如果 Logstash 正在忙于处理数据,则可以让 Filebeat 知道减慢读取速度。一旦拥堵得到解决,Filebeat 就会恢复到原来的步伐并继续运行。 1.2.4 输送至 Elasticsearch 或 Logstash。在 Kibana 中实现可视化。 Filebeat 是 Elastic Stack 的一部分,因此能够与 Logstash、Elasticsearch 和 Kibana 无缝协作。无论您要使用 Logstash 转换或充实日志和文件,还是在 Elasticsearch 中随意处理一些数据分析,亦或在 Kibana 中构建和分享仪表板,Filebeat 都能轻松地将您的数据发送至最关键的地方。 2. 性能 运行环境: OS 内存 CPU Filebeat版本 Logstash版本 CentOS 32g 6核Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz 6.1 5.6.5 Logstash内存占用 [root@dde /]# cat /proc/20085/status /proc/20085/status | grep -i vm VmPeak: 9837428 kB VmSize: 9835376 kB VmLck: 0 kB VmHWM: 798364 kB VmRSS: 798360 kB VmData: 9677292 kB VmStk: 88 kB VmExe: 4 kB VmLib: 16520 kB VmPTE: 2568 kB VmSwap: 0 kB VmPeak: 9837428 kB VmSize: 9835376 kB VmLck: 0 kB VmHWM: 798364 kB VmRSS: 798360 kB VmData: 9677292 kB VmStk: 88 kB VmExe: 4 kB VmLib: 16520 kB VmPTE: 2568 kB VmSwap: 0 kB Filebeat内存占用 [root@dde /]# cat /proc/22207/status /proc/22207/status | grep -i vm VmPeak: 452796 kB VmSize: 410180 kB VmLck: 0 kB VmHWM: 16008 kB VmRSS: 16008 kB VmData: 376332 kB VmStk: 88 kB VmExe: 24764 kB VmLib: 1804 kB VmPTE: 184 kB VmSwap: 0 kB VmPeak: 452796 kB VmSize: 410180 kB VmLck: 0 kB VmHWM: 16008 kB VmRSS: 16008 kB VmData: 376332 kB VmStk: 88 kB VmExe: 24764 kB VmLib: 1804 kB VmPTE: 184 kB VmSwap: 0 kB Logstash因为是运行是JVM中的,可以看到Logstash内存占用比Filebeat大的多。 3. 安装 Filebeat官方提供了以下几种安装方式: (deb for Debian/Ubuntu, rpm for Redhat/Centos/Fedora, mac for OS X, docker for any Docker platform, and win for Windows). deb: curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.1.2-amd64.deb sudo dpkg -i filebeat-6.1.2-amd64.deb rpm: curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.1.2-x86_64.rpm sudo rpm -vi filebeat-6.1.2-x86_64.rpm mac curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.1.2-darwin-x86_64.tar.gz tar xzvf filebeat-6.1.2-darwin-x86_64.tar.gz docker: docker pull docker.elastic.co/beats/filebeat:6.1.2 windows: 1.下载zip包,地址。 2.解压到:C:\Program Files。 3.重命名文件夹为以下格式:filebeat-<version>-windows。 4.以管理员身份运行Shell。 5.使用如下命令,讲Filebeat安装为一个Windows Service: PS > cd 'C:\Program Files\Filebeat' PS C:\Program Files\Filebeat> .\install-service-filebeat.ps1 4. 配置 Elastic提供了一个配合ELK(Elasticsearch + Logstash + Kibana)的快速配置方式,不过我们不需要配合ELK使用Filebeat。直接配置filebeat根目录下filebeat.yml文件: filebeat.prospectors: - type: log enabled: true paths: - /var/log/*.log #- c:\programdata\elasticsearch\logs\* 需要配合elasticsearch使用时,增加以下配置: output.elasticsearch: hosts: ["192.168.1.42:9200"] 需要配合kibana使用时,增加以下配置: setup.kibana: host: "localhost:5601" Output Filebeat现在已经支持丰富的output类型: Elasticsearch Logstash Kafka Redis File Console Output codec Cloud output到kafka的配置类似: output.kafka: # initial brokers for reading cluster metadata hosts: ["kafka1:9092", "kafka2:9092", "kafka3:9092"] # message topic selection + partitioning topic: '%{[fields.log_topic]}' partition.round_robin: reachable_only: false required_acks: 1 compression: gzip max_message_bytes: 1000000 当事件的大小超过max_message_bytes的值的时候,会被直接丢弃不处理,所以要尽量控制filebeat产生的事件小于max_message_bytes的值。 上面示例中字段含义如下:enable: 该output是否生效;hosts:kafka broker集群地址;topic: kafka接收事件的topic;partition: kafka output的partioning 策略,可能值为:random, round_robin, hash。默认为hash;官方关于这几个可选值解释如下: random.group_events: Sets the number of events to be published to the same partition, before the partitioner selects a new partition by random. The default value is 1 meaning after each event a new partition is picked randomly. round_robin.group_events: Sets the number of events to be published to the same partition, before the partitioner selects the next partition. The default value is 1 meaning after each event the next partition will be selected. hash.hash: List of fields used to compute the partitioning hash value from. If no field is configured, the events key value will be used. hash.random: Randomly distribute events if no hash or key value can be computed. required_acks: kafka broker ACK可靠级别: 0=不需要响应, 1=等待本地commit, -1=等待所有的 replicascommit. 默认值为 1. Note: 如果设置为0,kafka将没有ACK返回,也许会有消息丢失或者错误。 5.运行 sudo ./filebeat -e -c filebeat.yml Filebeat目前已经支持Docker和Kubernetes。 5.1 Docker (1)pull image docker pull docker.elastic.co/beats/filebeat:6.1.2 (2) run image docker run \ -v ~/filebeat.yml:/usr/share/filebeat/filebeat.yml \ docker.elastic.co/beats/filebeat:6.1.2 (3) Configuration FROM docker.elastic.co/beats/filebeat:6.1.2 COPY filebeat.yml /usr/share/filebeat/filebeat.yml USER root RUN chown filebeat /usr/share/filebeat/filebeat.yml USER filebeat 5.2 Kubernetes (1)Deploy manifests curl -L -O https://raw.githubusercontent.com/elastic/beats/6.1/deploy/kubernetes/filebeat-kubernetes.yaml (2)Setting - name: ELASTICSEARCH_HOST value: elasticsearch - name: ELASTICSEARCH_PORT value: "9200" - name: ELASTICSEARCH_USERNAME value: elastic - name: ELASTICSEARCH_PASSWORD value: changeme (3)Deploy kubectl create -f filebeat-kubernetes.yaml check status $ kubectl --namespace=kube-system get ds/filebeat NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE-SELECTOR AGE filebeat 32 32 0 32 0 <none> 1m 6. 参考资料 Elastic Filebeat Reference

资源下载

更多资源
Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册