Como aceder por remote desktop a servidores Microsoft Server 2008 ou 2013 com o mesmo utilizador mais que uma vez

Por defeito, os servidores Microsoft Server 2008 ou 2013 permitem apenas uma sessão por Remote Desktop ativa para um dado utilizador. Para retirar essa limitação ir a

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server

e alterar a variável

fSingleSessionPerUser

de

1

para

0

Como abrir as definições avançadas do sistema por linha de comandos

Abrir uma janela de comando e digitar;

control sysdm.cpl

Se não acontecer nada ou der algum erro digitar:

control %WINDIR%\system32\sysdm.cpl

Erro ao abrir um documento em excel com duplo click.

Ao tentar abrir um documento em excel com dulpo click aparece o erro “Arquivo não encontrado”. E abrirmos o Excel e depois formos a File -> Open, e selecionarmos o ficheiro em causa já funciona.

Este problema deve-se a um conflito nas entradas do registo do Excel.

Para resolver o problema:

  1. Clicar em Iniciar e em Executar.
  2. Na caixa Abrir , digitar regedit clique em OK.
  3. No Editor do registro, localizar a seguinte subchave no registro:
  4. HKEY_CURRENT_USER\Software\Microsoft\Office
  5. Expandir a(s) subchave(s) que corresponde(m) à(s) versão(es) do Excel instaladas e, em seguida, clicar na subchave Excel ..
  6. Clicar com o botão direito na subchave Excel e, em seguida, fazer Renomear.
  7. Digitar por exemplo _Excel e pressionar ENTER.
  8. Localizar a seguinte subchave:
  9. HKEY_LOCAL_MACHINE\Software\Microsoft\Office
  10. Expandir a(s) subchave(s) que corresponde(m) à(s) versão(es) do Excel instaladas e, em seguida, clicar na subchave Excel ..
  11. Clicar com o botão direito na subchave Excel e, em seguida, fazer Renomear.
  12. Digitar por exemplo _Excel e pressionar ENTER.
  13. Fechar o Editor do registro.
  14. Iniciar o Excel. (Para criar as entradas de registro necessárias).
  15. Sair do Excel.
  16. Clicar duas vezes no arquivo Excel pretendido e verificar se abre corretamente.

Como obter o espaço ocupado pela pasta dos items eliminados

Neste exemplo vou obter o espaço total (em KB) ocupado por cada mail boxe em,bem como o espaço ocupado pelos items eliminados e pela publicidade não solicitada, tudo pastas passíveis de serem esvaziadas.

O comando Get-MailboxFolderStatistics devolve informação acerca das pasta numa dada mailbox. Entre outros dados dá-me o número de items, e o tamanho da pasta.

Assim o comando pretendido seria:

Get-Mailbox | %{$_ | Select-Object Name, @{n='Total da Mailbox(KB)';e={(Get-MailboxStatistics $_.Identity).TotalItemSize.Value.ToKB() }}, @{n='Total Items Eliminados(KB)';e={$deleted=(Get-MailboxFolderStatistics $_.Identity -FolderScope DeletedItems); if($deleted.FolderAndSubfolderSize) {$deleted.FolderAndSubfolderSize.ToKB()} else {0}}}, @{n='TotalItems Publicidade não solicitada(KB)';e={$junkemail=(Get-MailboxFolderStatistics $_.Identity -FolderScope JunkEmail); if($junkemail.FolderAndSubfolderSize) {$junkemail.FolderAndSubfolderSize.ToKB()} else {0}}}} | Sort-Object 'Total da Mailbox(KB)' -Descending

O resultado será algo do género:

Name Total da Mailbox(KB  Total Items Elimina TotalItems Publicid
                        )             dos(KB) ade não solicitada(
                                                              KB)
---- ------------------- ------------------- -------------------
User1 1704888            1972                207
User2 1669823            5063                178
User3 1664061            115                 6
User4 1649390            651827              96

 

O pârametro FolderScope pode ter os seguintes valores:

  • All
  • Calendar
  • Contacts
  • ConversationHistory
  • DeletedItems
  • Drafts
  • Inbox
  • JunkEmail
  • Journal
  • ManagedCustomFolder
  • Notes
  • Outbox
  • RssSubscriptions
  • SentItems
  • SyncIssues
  • Tasks

Exchange 2007 – Como listar todas as caixas de correio que um dado utilizador tem acesso total

Basta executar o comando:

Get-Mailbox | Get-MailboxPermission | where { ($_.AccessRights -eq “FullAccess”) -and ($_.IsInherited -eq $false) -and ($_.User -like “*loginutilizadorapesquisar*”) -and -not ($_.User -like “NT AUTHORITY\SELF”) }

Outras permissões que se podem pesquisar são:

  • SendAs
  • DeleteItem
  • ReadPermission
  • ChangePermission
  • ChangeOwner
  • ExternalAccount
  • FullAcess

Exchange 2007 – Como verificar os espaço ocupado pelas contas de correio dos utilizadores

Numa Exchange Management Shell vamos usar o cmdlet Get-MailboxStatistics:

[PS] C:\>Get-MailboxStatistics
DisplayName               ItemCount    StorageLimitStatus         LastLogonTime
-----------               ---------    ------------------         -------------
User1                     363                  BelowLimit   03-02-2012 10:05:57
User2                     2924                 BelowLimit    03-02-2012 3:04:40
User3                     2887                 BelowLimit    03-02-2012 9:09:09
User4                     6380               IssueWarning    03-02-2012 3:04:40
[PS] C:\>

Para conseguirmos ver todos os atributos que podem ser usados pelo cmdlet Get-MailboxStatistics vamos usar-lo com o cmdlet Format-List (ou fl), seperados por um pipe. Assim fica:

[PS] C:\>Get-MailboxStatistics | fl
AssociatedItemCount     : 26
DeletedItemCount        : 0
DisconnectDate          :
DisplayName             : User1
ItemCount               : 363
LastLoggedOnUserAccount : DOMAIN\User1
LastLogoffTime          : 03-02-2012 10:08:50
LastLogonTime           : 03-02-2012 10:05:57
LegacyDN                : /O=FIRST ORGANIZATION/OU=EXCHANGE ADMINISTRATIVE GROU
                          P (FYDIBOHF23SPDLT)/CN=RECIPIENTS/CN=User1
MailboxGuid             : 107101fc-0fd3-4aac-be84-e5dbf81b8f2a
ObjectClass             : Mailbox
StorageLimitStatus      : BelowLimit
TotalDeletedItemSize    : 0B
TotalItemSize           : 111047218B
Database                : SERVER\First Storage Group\Mailbox Database
ServerName              : SERVER
StorageGroupName        : First Storage Group
DatabaseName            : Mailbox Database
Identity                : 107101fc-0fd3-4aac-be84-e5dbf81b8f2a
IsValid                 : True
OriginatingServer       : SERVER.DOMAIN
[PS] C:\>

No comando anterior obtivemos todos os atribuitos do cmdlet Get-MailboxStatistics, para obtermos só aqueles que nos interessam, temos que usá-lo com o cmdlet Format-Table (ou ft) , separados por um pipe e colocar no fim os nomes dos atributos pretendidos separados por uma vírgula. Assim ficaria:

[PS] C:\>Get-MailboxStatistics | ft DisplayName,TotalItemSize,ItemCount
DisplayName                TotalItemSize                              ItemCount
-----------                -------------                              ---------
User1                      111047218B                                       363
User2                      1943540139B                                     2927
User3                      657542150B                                      2888
User4                      2146799457B                                     6380
[PS] C:\>

Podemos formatar os resultados da consulta, por exemplo ordenando-a pelo atributo TotalItemSize, para isso temos que usar o cmdlet Sort-Object (Sort-Object atributo -direcaodaordenacao [Descending ou Ascending]) entre o cmdlet Get-MailboxStatistics e o cmdlet Format-Table (ou ft) serados por pipes. Assim para ordenar os resultados da caixa de correio que ocupa maior espaço para a de menor espaço ficaria:

[PS] C:\>Get-MailboxStatistics | Sort-Object TotalItemSize -Descending |
       ft Disp layName,TotalItemSize,ItemCount
DisplayName                TotalItemSize                              ItemCount
-----------                -------------                              ---------
User4                      2146799457B                                     6380
User2                      1943540139B                                     2927
User3                      657542150B                                      2888
User1                      111047218B                                       363
[PS] C:\>

Para formatar o valor do atributo TotalItemSize de bytes para megabytes temos que substituir no nosso comando o atributo TotalItemSize pela expressão @{ expression={$_.TotalItemSize.Value.ToMB()}} assim ficaria:

[PS] C:\>Get-MailboxStatistics | Sort-Object TotalItemSize -Descending | 
       ft DisplayName,@{label="TotalItemSize(MB)";
       expression={$_.TotalItemSize.Value.ToMB()}},ItemCount

DisplayName                         TotalItemSize(MB)                 ItemCount
-----------                         -----------------                 ---------
User4                                            2047                      6380
User2                                            1853                      2929
User3                                             627                      2889
User1                                             105                       363
[PS] C:\>

Como iniciar um serviço do Windows num computador remoto

Usar o comando SC.exe:

SC <pcremoto> <comando> <servico> <opcao1> ... <opcaon>

SC \\REMOTE start Messenger
 NOME_SERVIÇO     : Messenger        
    TIPO               : 20  WIN32_SHARE_PROCESS
    ESTADO             : 2  START_PENDING
                       (NOT_STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN))
    WIN32_EXIT_CODE    : 0  (0x0)        
    SERVICE_EXIT_CODE  : 0  (0x0)        
    CHECKPOINT         : 0x0        
    WAIT_HINT          : 0x7d0        
    PID                : 1068        
    FLAGS              :

Se ocerrer o erro:

[SC] StartService Falhou 1058:
O serviço não pode ser iniciado porque está desactivado 
ou não tem dispositivos activados associados.

Temos que configurar o serviço para se iniciar a pedido, para isso fazer:

SC \\REMOTE config Messenger start= demand
[SC] ChangeServiceConfig Êxito

Como alterar o idioma do teclado em LINUX por linha de comandos

Bom existem várias formas de alterar o idioma do teclado em Linux. Por exemplo para alterar o idioma para Português fazer:

# setxkbmap pt

Como fazer um backup da configuração do switch HP procurve 2626

Existem duas formas para fazer um backup ou restaurá-lo num Switch HP procurve 2626. Uma através do Xmodem e através de um servidor TFTP. Vou-me falar como usar um servidor TFTP.

Primeiramente temos que ter um servidor TFTP configurado, ao qual o switch tem que poder aceder (cuidado quando o switch tem várias VLANS).

Por telnet temos que aceder ao switch e na linha de comandos executar:

 Syntax: copy startup-config tftp <ip-addr> <remote-file>

Por exemplo, se o nosso servidor tftp tiver o ip 192.168.10.250 e o nome do ficheiro de backup que queremos guardar for hp2626bk executamos:

 HP2626# copy startup-config tftp 192.168.10.250 hp2626bk

Para repor o backup executar:

 Syntax: copy tftp startup-config <ip-addr> <remote-file>

Assim no exemplo anterior, para repor o nosso ficheiro de backup:

 HP2626# copy tftp startup-config 192.168.10.250 hp2626bk

Após a reposição do backup se tudo correr bem e o ficheiro estiver correcto, revemos fazer um reboot ao sistemas para as novas configurações  entrarem em execução.

O precesso de actualização do software do HP Procurve 2626 é muito semelhante aos exemplos anteriores. Assim e para fazer uma backup do software:

 Syntax: copy flash tftp <ip-address> <remote-os-file> [ < primary | secondary > ]

No exemplo anterior se o nome do backup para o software fosse HP_08_8x.swi:

 HP2626# copy flash tftp 192.168.10.250 HP_08_8x.swi

Para fazer um upgrade de software, depois de descarregá-lo do site da HP, e se o ficheiro se chamar  HP_10_83.swi e estiver na raiz do TFTP:

 HP2626# copy tftp flash 192.168.10.250 HP_10_83.swi 
 The primary OS image will be deleted. continue [y/n]? Y 
 03125K 
 Validating and Writing System Software to FLASH...

Esperar que apareça o prompt do CLI  (pode demorar algum tempo) e reiniciar o switch para este carregar o novo software:

 HP2626#
 HP2626# boot

 

 

VB6 – Como esconder uma janela sem a colocar invisível

Fácil, basta colocar a jenela fora do ecrâ.

Código:

Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Public Type RECT
   Left As Long
   Top As Long
   Right As Long
   Bottom As Long
End Type
'lng_hwnd Handle da janela a esconder / mostrar
'bln_hide se True esconde a janela se False mostra a janela
Private Sub esconde(lng_hwnd as Long, bln_hide as Boolean)
Dim lRet As Long
Dim apiRECT As RECT
If not bln_hide Then
   Call SetWindowPos(lng_hwnd, HWND_BOTTOM, 0, 0, 1, 1, SWP_NOSIZE Or SWP_DRAWFRAME)
Else
   lRet = SystemParametersInfo(SPI_GETWORKAREA, vbNull, apiRECT, 0)
   Call SetWindowPos(lng_hwnd, HWND_BOTTOM, apiRECT.Right - 1, apiRECT.Bottom - 1, apiRECT.Right + 1, apiRECT.Bottom + 1, SWP_NOSIZE Or SWP_DRAWFRAME)
End If
End Sub