Архив метки: powershell

Определение текущей раскладки в windows через powershell

PS C:\Users\Work> Function Get-CurrentInputLanguage {
>>     $ScriptBlock = {
>>         Add-Type -AssemblyName System.Windows.Forms
>>         [System.Windows.Forms.InputLanguage]::CurrentInputLanguage
>>     }
>>     $Job = Start-Job -ScriptBlock $ScriptBlock
>>     $Null = Wait-Job -Job $Job
>>     $CurrentLanguage = Receive-Job -Job $Job
>>     Remove-Job -Job $Job
>>     Return $CurrentLanguage
>> }
PS C:\Users\Work>

Вывод при английской раскладке:

PS C:\Users\Work> (Get-CurrentInputLanguage).Culture

LCID             Name             DisplayName
----             ----             -----------
1033             en-US            Английский (США)


PS C:\Users\Work> (Get-CurrentInputLanguage).layoutname
США

Вывод при русской раскладке:

PS C:\Users\Work> (Get-CurrentInputLanguage).Culture

LCID             Name             DisplayName
----             ----             -----------
1049             ru-RU            Русский (Россия)


PS C:\Users\Work> (Get-CurrentInputLanguage).layoutname
Русская
PS C:\Users\Work>

Простой просмотр реестра через PowerShell

Windows PowerShell
(C) Корпорация Майкрософт (Microsoft Corporation). Все права защищены.

Попробуйте новую кроссплатформенную оболочку PowerShell (https://aka.ms/pscore6)

PS C:\Users\Work> cd hklm:
PS HKLM:\> dir
dir : Запрошенный доступ к реестру запрещен.
строка:1 знак:1
+ dir
+ ~~~
    + CategoryInfo          : PermissionDenied: (HKEY_LOCAL_MACHINE\BCD00000000:String) [Get-ChildItem], SecurityExcep
   tion
    + FullyQualifiedErrorId : System.Security.SecurityException,Microsoft.PowerShell.Commands.GetChildItemCommand



    Hive: HKEY_LOCAL_MACHINE


Name                           Property
----                           --------
HARDWARE
SAM
dir : Запрошенный доступ к реестру запрещен.
строка:1 знак:1
+ dir
+ ~~~
    + CategoryInfo          : PermissionDenied: (HKEY_LOCAL_MACHINE\SECURITY:String) [Get-ChildItem], SecurityExceptio
   n
    + FullyQualifiedErrorId : System.Security.SecurityException,Microsoft.PowerShell.Commands.GetChildItemCommand

SOFTWARE
SYSTEM


PS HKLM:\> cd .\SOFTWARE\
PS HKLM:\SOFTWARE\> ls


    Hive: HKEY_LOCAL_MACHINE\SOFTWARE


Name                           Property
----                           --------
7-Zip                          Path64 : C:\Program Files\7-Zip\
                               Path   : C:\Program Files\7-Zip\
Classes
Clients
CVSM                           CVSM : {APPID, 0x1, Enabled, 0x0...}
DefaultUserEnvironment         Path : C:\Users\User\AppData\Local\Microsoft\WindowsApps;
                               TEMP : C:\Users\User\AppData\Local\Temp
                               TMP  : C:\Users\User\AppData\Local\Temp
Dolby
EPSON
Google
Intel
Lenovo
Macromedia
Microsoft
MozillaPlugins
ODBC
OEM
OpenSSH
Partner
Policies
Python
Realtek
RegisteredApplications         File Explorer             : SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Capabilities
                               Windows Address Book      : Software\Clients\Contacts\Address Book\Capabilities
                               Windows Disc Image Burner : Software\Microsoft\IsoBurn\Capabilities
                               Windows Search            : Software\Microsoft\Windows Search\Capabilities
                               Internet Explorer         : SOFTWARE\Microsoft\Internet Explorer\Capabilities
                               Paint                     : SOFTWARE\Microsoft\Windows\CurrentVersion\Applets\Paint\Capabilities
                               Notepad                   : Software\Microsoft\Windows\Notepad\Capabilities
                               Wordpad                   : Software\Microsoft\Windows\CurrentVersion\Applets\Wordpad\Capabilities
                               Windows Media Player      : Software\Clients\Media\Windows Media Player\Capabilities
                               Windows Photo Viewer      : Software\Microsoft\Windows Photo Viewer\Capabilities
                               Google Chrome             : Software\Clients\StartMenuInternet\Google Chrome\Capabilities
                               VLC                       : Software\Clients\Media\VLC\Capabilities
                               Microsoft Edge            : 
VideoLAN
Windows
WOW6432Node


PS HKLM:\SOFTWARE\>

Исправление проблемы ввода заглавных букв в Powershell

Если в powershell перестали вводиться заглавные буквы, то выполнить команду:

remove-module psreadline

После этого перестанет работать подсветка синтаксиса, зато заработают большие буквы

Powershell: Пример скрипта отправки email

Этот powershell-скрипт отправляет текстовое сообщение по электронной почте при условии, что авторизация на smtp-сервере не требуется. Например для MS Exchange компьютер, на котором выполняется скрипт, должен быть в списке Allow Relay на почтовом сервере.

$smtpServer = "mail.mydomain.local"
 $msg = New-Object net.mail.mailmessage
 $smtp = New-Object net.mail.smtpclient($smtpServer)
 $msg.from = "test@mydomain.ru"
 $msg.replyto = "user1@mydomain.ru"
 $msg.to.add("user2@mydomain.ru")
 $msg.subject = "Test message"
 $msg.body = "This is test message Это тестовое сообщение"
 $smtp.send($msg)

В данном случае письмо отправится на адрес user2@mydomain.ru

Lync: Группа слишком велика для отображения

Ecли у клиентов Lync в контактлисте при отображении группы возникает ошибка: «Группа слишком велика для отображения. В Lync невозможно использовать группы, содержащие более 100 участников.»

На сервере Lync выполняем через PowerShell:

Import-Module Lync
Set-CsWebServiceConfiguration -MaxGroupSizeToExpand 999
Set-CsClientPolicy -MaximumNumberOfContacts 99

У клиентов на машинах создать несуществующие ключи в реестре Windows (можно через GPO):

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\office\15.0\lync]
"MaxDLExpansion"=dword:00000999
"MaxConferenceSize"=dword:00000999

Затем клиентские компьютеры перезагрузить.
В результате проблема решилась, группы в Lync больше 100 человек стали нормально отображаться в контактлисте.

Powershell Exchange узнать размер папок в почтовом ящике

Powershell Exchange узнать размер папок в почтовом ящике

[PS] C:\Windows\system32>Get-MailboxFolderStatistics -Identity PupkinVV | ft name, foldersize

 

Powershell Exchange Вывод списка сотрудников и их e-mail адресов по Organization Unit

Вывод списка сотрудников и их e-mail адресов по Organization Unit

Get-Mailbox -OrganizationalUnit Сотрудники -SortBy name | ft name, primarysmtpaddress > mailboxes.txt

 

Exchange Powershell Добавление почтового ящика новому пользователю

Exchange Powershell Добавление почтового ящика новому пользователю

Enable-Mailbox -Identity 'somedomain.local/someOU/Сотрудники/Пупкин Василий' -Alias 'PupkinVV'