20 июл. 2011 г.

vb.net экспорт информации из AD в *.csv

Imports System.DirectoryServices
Imports System.Text
Imports System.IO
Module Module1
    Sub Main()
        Dim Subjects As String = String.Empty
        Dim path_to_export As String = "\\server\share\"
        Dim listOfProps As New List(Of String)
        listOfProps.Add("displayName")
        listOfProps.Add("mail")
        listOfProps.Add("department")
        listOfProps.Add("title")
        listOfProps.Add("telephoneNumber")
        listOfProps.Add("otherTelephone")
        listOfProps.Add("msExchHideFromAddressLists")
        listOfProps.Add("l")
        listOfProps.Add("co")
        For Each o In listOfProps
            Subjects &= o & ";"
        Next
        Subjects &= vbCrLf
        Dim Searcher As New DirectorySearcher()
        Searcher.PageSize = 10000
        Searcher.SizeLimit = 10000
        Searcher.Filter = "(&(mail=*)(title=*)(Department=*))"
        Dim temp_row As String
        For Each sr In Searcher.FindAll()
            For Each l In listOfProps
                temp_row = String.Empty
                Try
                    For Each prop In sr.properties(l)
                        If temp_row = String.Empty Then
                            temp_row &= prop.ToString
                        Else
                            temp_row &= " , " & prop.ToString
                        End If
                    Next
                    Subjects &= temp_row & ";"
                Catch
                    Subjects &= "-;"
                End Try
            Next
            Subjects &= vbCrLf
        Next
        Dim CSV As New StreamWriter(path_to_export & Today & "e.csv", False, Encoding.GetEncoding("Windows-1251"))
        CSV.Write(Subjects)
        CSV.Close()
    End Sub
End Module

BAT подписи клиент банков на одну флэшку (работает для подписей которые можно копировать при помощи копи-паста Sberbank и пр.)

скрипт-меню для перекладывания файлов подписи из каталогов на флэшке в корень флэшки

@echo off
set drive=%cd:~0,3%
goto menu

:menu
echo Choose:
echo .
echo SBRF.Moscow:
echo  [1] FirstSign
echo .
echo SBRF.Gagarin:
echo  [2] FirstSign
echo  [3] SecondSign
echo .
echo SBRF.Kolomna:
echo  [4] FirstSign
echo  [5] SecondSign
echo .
echo .
echo  [z] -QUIT-
echo .
Set /P input=[1-z]
Set Pathk="z"
if "%input%"=="1" Set Pathk=%drive%-Keys-\SBRF.Moscow\FirstSign\*.*
if "%input%"=="2" Set Pathk=%drive%-Keys-\SBRF.Gagarin\FirstSign\*.*
if "%input%"=="3" Set Pathk=%drive%-Keys-\SBRF.Gagarin\SecondSign\*.*
if "%input%"=="4" Set Pathk=%drive%-Keys-\SBRF.Kolomna\FirstSign\*.*
if "%input%"=="5" Set Pathk=%drive%-Keys-\SBRF.Kolomna\SecondSign\*.*
if "%input%"=="z" goto quit
if %Pathk%=="z" goto menu
del %drive%*.ddt, %drive%*.key, %drive%*.DB3
xcopy /y %Pathk% %drive%
goto menu
:quit
del %drive%*.ddt, %drive%*.key, %drive%*.DB3
Exit
:end

PWS Экспорт мэйлбоксов в *.pst из exchange 2010

http://www.stevieg.org/2010/07/using-the-exchange-2010-sp1-mailbox-export-features-for-mass-exports-to-pst/

vb.net транслитерация для заполнения AD атрибута "simpledisplayname" из атрибута "displayname"

Imports System.DirectoryServices

Module Module1
    Sub Main()
        Dim De As New DirectoryEntry("LDAP://OU=Personal,OU=**,....,DC=**,DC=**")
        Dim DS As New DirectorySearcher(De)
        DS.Filter = "(&(objectClass=user)(!objectClass=computer))"

        For Each sr As SearchResult In DS.FindAll
            If sr.Properties("displayName").Count > 0 Then
                Dim srD As DirectoryEntry = sr.GetDirectoryEntry
                Dim SimpleDisplayName As String = SetTranslit(DropSurname(sr.Properties("displayName")(0).ToString))
                srD.Properties("displayNamePrintable").Value = SetTranslit(DropSurname(sr.Properties("displayName")(0).ToString))
                srD.CommitChanges()
            End If
        Next
    End Sub

    Function SetTranslit(ByVal SourceT As String) As String

        Dim Source As String = SourceT

        Source = Source.Replace("а", "a")
        Source = Source.Replace("б", "b")
        Source = Source.Replace("в", "v")
        Source = Source.Replace("г", "g")
        Source = Source.Replace("д", "d")
        Source = Source.Replace("е", "e")
        Source = Source.Replace("ё", "yo")
        Source = Source.Replace("ж", "zh")
        Source = Source.Replace("з", "z")
        Source = Source.Replace("и", "i")
        Source = Source.Replace("й", "j")
        Source = Source.Replace("к", "k")
        Source = Source.Replace("л", "l")
        Source = Source.Replace("м", "m")
        Source = Source.Replace("н", "n")
        Source = Source.Replace("о", "o")
        Source = Source.Replace("п", "p")
        Source = Source.Replace("р", "r")
        Source = Source.Replace("с", "s")
        Source = Source.Replace("т", "t")
        Source = Source.Replace("у", "u")
        Source = Source.Replace("ф", "f")
        Source = Source.Replace("х", "kh")
        Source = Source.Replace("ц", "ts")
        Source = Source.Replace("ч", "ch")
        Source = Source.Replace("ш", "sh")
        Source = Source.Replace("щ", "shch")
        Source = Source.Replace("ы", "y")
        Source = Source.Replace("э", "a")
        Source = Source.Replace("ю", "yu")
        Source = Source.Replace("я", "ya")
        Source = Source.Replace("ь", "")
        Source = Source.Replace("ъ", "")

        Source = Source.Replace("А", "A")
        Source = Source.Replace("Б", "B")
        Source = Source.Replace("В", "V")
        Source = Source.Replace("Г", "G")
        Source = Source.Replace("Д", "D")
        Source = Source.Replace("Е", "E")
        Source = Source.Replace("Ё", "Yo")
        Source = Source.Replace("Ж", "Zh")
        Source = Source.Replace("З", "Z")
        Source = Source.Replace("И", "I")
        Source = Source.Replace("Й", "J")
        Source = Source.Replace("К", "K")
        Source = Source.Replace("Л", "L")
        Source = Source.Replace("М", "M")
        Source = Source.Replace("Н", "N")
        Source = Source.Replace("О", "O")
        Source = Source.Replace("П", "P")
        Source = Source.Replace("Р", "R")
        Source = Source.Replace("С", "S")
        Source = Source.Replace("Т", "T")
        Source = Source.Replace("У", "U")
        Source = Source.Replace("Ф", "F")
        Source = Source.Replace("Х", "Kh")
        Source = Source.Replace("Ц", "Ts")
        Source = Source.Replace("Ч", "Ch")
        Source = Source.Replace("Ш", "Sh")
        Source = Source.Replace("Щ", "Shch")
        Source = Source.Replace("Ы", "Y")
        Source = Source.Replace("Э", "A")
        Source = Source.Replace("Ю", "Yu")
        Source = Source.Replace("Я", "Ya")
        Source = Source.Replace("Ь", "")
        Source = Source.Replace("Ъ", "")
        Return Source
    End Function

    Function DropSurname(ByVal DisplayName) As String
        Dim NameS() = Split(DisplayName, " ")
        Dim Name = String.Empty
        Dim SurName = String.Empty
        Dim FamilyName = String.Empty
        Select Case NameS.Count
            Case 0
                FamilyName = DisplayName
            Case 1
                FamilyName = NameS(0)
            Case 2
                FamilyName = NameS(0)
                Name = NameS(1)
            Case Is >= 3
                FamilyName = NameS(0)
                Name = NameS(1)
                SurName = NameS(2)
        End Select
        Return FamilyName & " " & Name
    End Function
End Module

vb.net транслитерация

Dim Source As String = "Строка для транслитерации"

        Source = Source.Replace("а", "a")
        Source = Source.Replace("б", "b")
        Source = Source.Replace("в", "v")
        Source = Source.Replace("г", "g")
        Source = Source.Replace("д", "d")
        Source = Source.Replace("е", "e")
        Source = Source.Replace("ё", "yo")
        Source = Source.Replace("ж", "zh")
        Source = Source.Replace("з", "z")
        Source = Source.Replace("и", "i")
        Source = Source.Replace("к", "k")
        Source = Source.Replace("л", "l")
        Source = Source.Replace("м", "m")
        Source = Source.Replace("н", "n")
        Source = Source.Replace("о", "o")
        Source = Source.Replace("п", "p")
        Source = Source.Replace("р", "r")
        Source = Source.Replace("с", "s")
        Source = Source.Replace("т", "t")
        Source = Source.Replace("у", "u")
        Source = Source.Replace("ф", "f")
        Source = Source.Replace("х", "kh")
        Source = Source.Replace("ц", "ts")
        Source = Source.Replace("ч", "ch")
        Source = Source.Replace("ш", "sh")
        Source = Source.Replace("щ", "shch")
        Source = Source.Replace("ы", "y")
        Source = Source.Replace("э", "a")
        Source = Source.Replace("ю", "yu")
        Source = Source.Replace("я", "ya")
        Source = Source.Replace("ь", "")
        Source = Source.Replace("ъ", "")

        Source = Source.Replace("А", "A")
        Source = Source.Replace("Б", "B")
        Source = Source.Replace("В", "V")
        Source = Source.Replace("Г", "G")
        Source = Source.Replace("Д", "D")
        Source = Source.Replace("Е", "E")
        Source = Source.Replace("Ё", "Yo")
        Source = Source.Replace("Ж", "Zh")
        Source = Source.Replace("З", "Z")
        Source = Source.Replace("И", "I")
        Source = Source.Replace("К", "K")
        Source = Source.Replace("Л", "L")
        Source = Source.Replace("М", "M")
        Source = Source.Replace("Н", "N")
        Source = Source.Replace("О", "O")
        Source = Source.Replace("П", "P")
        Source = Source.Replace("Р", "R")
        Source = Source.Replace("С", "S")
        Source = Source.Replace("Т", "T")
        Source = Source.Replace("У", "U")
        Source = Source.Replace("Ф", "F")
        Source = Source.Replace("Х", "Kh")
        Source = Source.Replace("Ц", "Ts")
        Source = Source.Replace("Ч", "Ch")
        Source = Source.Replace("Ш", "Sh")
        Source = Source.Replace("Щ", "Shch")
        Source = Source.Replace("Ы", "Y")
        Source = Source.Replace("Э", "A")
        Source = Source.Replace("Ю", "Yu")
        Source = Source.Replace("Я", "Ya")
        Source = Source.Replace("Ь", "")
        Source = Source.Replace("Ъ", "")

        Label1.Text = Source

вот как-то так...

vb.net kill process by process name and user name

processname is case sensitive  

code:

 Sub Main()
        Dim userName As String = "UserName"
        Dim ProcessName As String = "ProcessName"
        Dim obj As New System.Management.ManagementClass("Win32_Process")
        Dim processes As System.Management.ManagementObjectCollection
        processes = obj.GetInstances()
        For Each process As Management.ManagementObject In processes
            Dim info(2) As String
            process.InvokeMethod("GetOwner", info)
            Try
                If info(0) = userName And process.GetPropertyValue("Name") = ProcessName Then
                    process.InvokeMethod("Terminate", Nothing)
                End If
            Catch ex As Exception
            End Try
        Next
    End Sub