1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Snippets / Scripts / Pequenos utilitários...

Discussão em 'Programação' iniciada por SpEeDyGoNzAlEs, 14 de Julho de 2005. (Respostas: 9; Visualizações: 3667)

  1. SpEeDyGoNzAlEs

    SpEeDyGoNzAlEs Power Member

    Boas.

    Decidi partilhar com vocês algumas coisinhas que me têm dado bastante jeito.

    São coisas simples, daquelas que se calhar nem lembra ao diabo, mas nunca se sabe quando fazem falta.

    Assim, e para começar, cá vai disto.

    _____________________________________________________________________________
    *** Alteração manual, via linha de comandos, das configurações TCP/IP duma máquina ***

    netsh interface ip set address name="Local Area Connection" static 192.168.0.1 255.255.255.0 192.168.0.254 1
    netsh interface ip set dns name="Local Area Connection" static 192.168.0.2 primary
    netsh interface ip set dns name="Local Area Connection" static 192.168.0.3

    Estes 3 comandos vão definir o IP 192.168.0.1, com subnet 255.255.255.0 e default gateway 192.168.0.254. O DNS primário será 192.168.0.2 e o WINS será 192.168.0.3.

    Isto para a ligação de rede de nome Local Area Connection.

    ________________________________________________________________________________________________________________
    *** Batch file para ler um ficheiro (com, por exemplo, nomes de máquinas) e, nas várias entradas, efectuar um qualquer comando ***

    for /f "eol=" %i in (List.txt) do ping %i

    List.txt contém a listagem de máquinas :)


    Espero que seja útil. Se não for, paciência :P

    Se vos agradar a ideia, digam que eu vou continuando.

    Basicamente, VBScript, VB .Net e "programação" DOS :)
     
    Última edição: 14 de Julho de 2005
  2. SpEeDyGoNzAlEs

    SpEeDyGoNzAlEs Power Member

    _________________________________________________________________________
    *** Função, em VB .Net, para retornar número de série, da BIOS, de uma máquina ***

    Código:
        Public Function ReturnBIOSSerialNumber() As String
            Dim strComputer As String
            Dim objWMIService As Object
            Dim colBIOS As Object
            Dim objBIOS As Object
            Dim auxInt As Integer
            strComputer = "."
            objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
            colBIOS = objWMIService.ExecQuery("Select * from Win32_BIOS")
            For Each objBIOS In colBIOS
                ReturnBIOSSerialNumber = objBIOS.SerialNumber
            Next
        End Function
    
     
    Última edição: 14 de Julho de 2005
  3. SpEeDyGoNzAlEs

    SpEeDyGoNzAlEs Power Member

    _________________________________________________
    *** Função, em VB .Net, para ler o IP duma máquina ***

    Código:
    Imports System
    Imports System.Net
    
        Public Function ReturnIPAddress() As String
            Dim ipHost As IPHostEntry
            ipHost = Dns.GetHostByName(Dns.GetHostName())
            Dim ipAddr() As IPAddress = ipHost.AddressList
            Dim count As Integer
            ReturnIPAddress = ipAddr(0).ToString
        End Function
    
     
    Última edição: 14 de Julho de 2005
  4. SpEeDyGoNzAlEs

    SpEeDyGoNzAlEs Power Member

    ___________________________________________________________________________
    *** Como "apanhar" o texto de algo corrido numa janela de DOS, em VB .Net e afins ***

    Esta tem-me dado um jeitão...

    Basicamente, o que faz, é abrir uma shell com o comando pretendido.
    Depois, usando o IO da consola, tratamos só as mensagens que queremos.

    O exemplo dado é para ver se o DHCP está ou não activo.

    Código:
        Public Function ReturnDHCPEnabled() As Boolean
            Dim wshObj As Object
            Dim strText As String = ""
            Dim objRun As Object
            wshObj = CreateObject("WScript.Shell")
            objRun = wshObj.Exec("ipconfig /all")
            Do While objRun.Status = 0
            Loop
            Do While Not objRun.StdOut.atendofstream
                strText = objRun.StdOut.readline
                If InStr(strText, "Dhcp Enabled. . . . . . . . . . . : Yes") > 0 Then
                    ReturnDHCPEnabled = True
                    Exit Do
                End If
                If InStr(strText, "Dhcp Enabled. . . . . . . . . . . : No") > 0 Then
                    ReturnDHCPEnabled = False
                    Exit Do
                End If
            Loop
        End Function
    
     
    Última edição: 14 de Julho de 2005
  5. kingdom

    kingdom 1st Folding then Sex

    Continua que tás a rular com esses scripts....
     
  6. SpEeDyGoNzAlEs

    SpEeDyGoNzAlEs Power Member

    ______________________________________________
    *** Nome de máquina e user loggado, em VB .Net ***

    Código:
    Imports System
    Imports System.Net
    Imports System.Security
    Imports System.Threading
    
        Public Function ReturnLoggedOnUser() As String
            Dim aID As Principal.WindowsIdentity
            ReturnLoggedOnUser = aID.GetCurrent.Name
        End Function
    
        Public Function ReturnMachineName() As String
            Dim auxMN As System.Environment
            ReturnMachineName = auxMN.MachineName
        End Function
    
     
    Última edição: 14 de Julho de 2005
  7. SpEeDyGoNzAlEs

    SpEeDyGoNzAlEs Power Member

    _______________________________________________________________________________________
    *** Função, em VB .Net, para descobrir, via LDAP, uma impressora shared num servidor de domínio ***

    Código:
        Public Function GetPrinterServerPath(ByVal auxStr As String) As String
            Dim strServer As String = ""
    
            Const ADS_SCOPE_SUBTREE = 2
            Dim objConnection As Object
            Dim shares As Object
            Dim objCommand As Object
            Dim objRecordSet As Object
            Dim share As Object
            Dim strAux As String = ""
            objConnection = CreateObject("ADODB.Connection")
            objCommand = CreateObject("ADODB.Command")
            objConnection.Provider = "ADsDSOObject"
            objConnection.Open("Active Directory Provider")
            objCommand.ActiveConnection = objConnection
            objCommand.CommandText = "Select printShareName, printerName, serverName from " _
                & " 'LDAP://DC=DOMAIN,DC=com'  where objectClass='printQueue'"
            objCommand.Properties("Page Size") = 1000
            objCommand.Properties("Timeout") = 30
            objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
            objCommand.Properties("Cache Results") = False
    
            Try
                objRecordSet = objCommand.Execute
            Catch ex As Exception
                MsgBox("Utilizador sem acesso ao domínio, para verificação de printer queues.", MsgBoxStyle.Critical, "Atenção!")
                GetPrinterServer = ""
                Exit Function
            End Try
    
            objRecordSet.MoveFirst()
            Do Until objRecordSet.EOF
                shares = objRecordSet.Fields("printShareName").value
                For Each share In shares
                    strAux = objRecordSet.Fields("serverName").Value
                    If UCase(share) = UCase(auxStr) Then strServer = UCase("\\" & Microsoft.VisualBasic.Left(strAux, InStr(strAux, ".") - 1) & "\" & share)
                Next
                objRecordSet.MoveNext()
            Loop
            objConnection.close()
            GetPrinterServerPath = strServer
        End Function
    
     
    Última edição: 14 de Julho de 2005
  8. SpEeDyGoNzAlEs

    SpEeDyGoNzAlEs Power Member

    ________________________________________________________
    *** Função para verificar conectividade a uma base de dados ***

    Ok, ok, esta é básica... Mas, às vezes, é bom ter funções básicas, que poupam tempo e simplificam a vida ... :P

    Código:
        Public Function CheckConnectivity() As Boolean
            Dim auxBool As Boolean = False
            Dim sqlConn As New SqlClient.SqlConnection
            sqlConn.ConnectionString = strConn
            Try
                sqlConn.Open()
            Catch ex As Exception
                CheckConnectivity = auxBool
                sqlConn = Nothing
                Exit Function
            End Try
            If sqlConn.State <> ConnectionState.Closed Then sqlConn.Close()
            sqlConn = Nothing
            auxBool = True
            CheckConnectivity = auxBool
        End Function
    
    
    Peço desculpa por isto não estar indentado (Outra grande "regra" da programação...) mas acho que é culpa do forum.....

    EDIT: Já descobri... Sorry!


    Amanhã há mais, que vou jogar WoW! :P
     
    Última edição: 14 de Julho de 2005
  9. SpEeDyGoNzAlEs

    SpEeDyGoNzAlEs Power Member

    ____________________________________________________
    *** Procedimento, em VB .Net, para mapear impressoras ***

    Ok, ok, fica só mais este ... :P

    Permite a adição de uma impressora partilhada num servidor do domínio, com verificação de permissão, para o user, de mapeamento de impressoras a cores.
    Esta verificação é feita caso o user esteja no grupo GrupoCores do domínio.

    Código:
        Private Sub MapPrinter(ByVal strPrintServer As String, ByVal strPrinterShare As String, ByVal boolCores As Boolean)
            Dim objGroup As Object
            objGroup = GetObject("WinNT://DOMAIN/GrupoCores")
            Dim strPrinterPath As String = ""
            strPrinterPath = "\\" & strPrintServer & "\" & strPrinterShare
            Select Case boolCores
                Case True
                    Select Case objGroup.IsMember("WinNT://DOMAIN/" & strUsername)
                        Case True
                            objNetwork.AddWindowsPrinterConnection(strPrinterPath)
                            strLog = strLog & "Impressora " & strPrinterShare & " adicionada." & vbCrLf
                            printerFound = 1
                        Case Else
                            MsgBox("O user id " & strUsername & " não tem permissões para mapear impressora a cores.", , "Mapear Impressoras")
                    End Select
                Case Else
                    objNetwork.AddWindowsPrinterConnection(strPrinterPath)
                    printerFound = 1
                    strLog = strLog & "Impressora " & strPrinterShare & " adicionada." & vbCrLf
            End Select
        End Sub
    
    Uma boa forma de saber se a impressora é ou não a cores, é procurando no campo Descrição da mesma.
    Como? Com o código abaixo.

    Código:
        Function CheckColorPrinter(ByVal strPrinter) As Boolean
            Dim auxBool As Boolean = False
            If InStr(UCase(strPrinter.description), UCase("Cores")) > 0 Then auxBool = True
            CheckColorPrinter = auxBool
        End Function
    
     
  10. NoMercy

    NoMercy Power Member

    Última edição: 14 de Julho de 2005

Partilhar esta Página