ruby自动加域脚本
公司在异地有分公司。那边要加入域。然后权限等等。。。还有就是ruby学习一下。。。
require'net/ldap'require'net/telnet'require'net/http'require'openssl'require'base64'require'highline/import'#隐藏输入字符geminstallhighlineALG='DES-EDE3-CBC'KEY="masdsdff"#你的密钥只能8位DES_KEY="nseewW3E"#任意固定的值defcheck_pass(auth)puts"InputYourUsername"username=STDIN.gets.chomppassword=ask("InputYourPassword"){|q|q.echo="*"}ldap=Net::LDAP.newldap.host="fw.163.net"ldap.port=389result=ldap.bind_as(:base=>"ou=People,dc=163,dc=net",:filter=>"(uid=#{username}))",:password=>password)ifresultauth.include?(username)?true:falseelsefalseendenddefcheck_network()beginNet::Telnet::new("Host"=>"ad.163.net","Port"=>80,"Telnetmode"=>false)rescueputs"Can'tConnectAD,PleaseCheckNetwork."sleep10exitendenddefcheck_hostname()ifENV["COMPUTERNAME"].downcase.scan("hw").count>0puts"PleaseChangeHostnameAndRestartPC"sleep10exitendenddefusage()help=<<EOFUsage:scriptusernamepasswordEOFputshelpenddefadd_domain(secret)#'user1|user2||domainadmin|domainadminpass|currentpass'result=`netdom.exejoin#{ENV["COMPUTERNAME"]}/domain:163.net/userd:#{secret[2].strip}/passwordd:#{secret[3].strip}/usero:#{ENV["USER"]}/passwordo:#{secret[4].strip}`result.scan("success").count>0?true:falseenddefencode(str)des=OpenSSL::Cipher::Cipher.new(ALG)des.pkcs5_keyivgen(KEY,DES_KEY)des.encryptcipher=des.update(str)cipher<<des.finalreturnBase64.encode64(cipher)#Base64编码,才能保存到数据库enddefdecode(str)str=Base64.decode64(str)des=OpenSSL::Cipher::Cipher.new(ALG)des.pkcs5_keyivgen(KEY,DES_KEY)des.decryptdes.update(str)+des.finalend#-----------------------check_network()#usage()本来用参数,现在改输入secret=decode(Net::HTTP.get(URI('http://fw.163.net/auth.dat')).chomp).split("|")ifcheck_pass(secret)check_hostname()ifadd_domain(secret)puts"Adduserstothelocaladministratorsgroup?(Y|N)"ifSTDIN.gets.scan(/[yY]/).count>0puts"Pleaseenterausertojointheadministratorsgroup"`netlocalgroupadministrators163.net\\#{STDIN.gets.chomp}/add`endputs"Joinadomainsuccessfully"elseputs"Joinadomainfail"endsleep10exitelseputs"1:usernameorpassworderr;2:unauthorized"sleep10exitend
然后用 ocra 编译为exe (ocra 直接 gem install ocra, 这个感觉比exerb、rubyscript2exe好)
同时程序需要 netdom.exe netapi32.dll
注,加密的是在网上找的。忘记哪了。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。