Перейти к содержимому

Как сделать программный рейд зеркало на загрузочном диски windows 2022

Задача сделать зеркало на загрузочном диске windows.

Сначала делаем GPT

DISKPART
List disk
Select disk 1
clean
Convert GPT

Sel part 1
Delete partition override

Select disk 0
List part

Здесь смотрим

Как сделать программный рейд зеркало на загрузочном диски windows 2022

Выставляем параметры как на скрине

Select disk 1
Create partition primary size=631
format quick fs=ntfs label="WinRE"
set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac"
create partition efi size=100
create partition msr size=15
list part

Конвертируем в динамический

Select disk 0
Convert dynamic
Select disk 1
Conv dyn

Потом делаем зеркало

Select volume c
Add disk=1

Монтируем диск Partition 2 System 100 MB  на втором диске который не основной и форматируем в fat32

Select disk 
Читать далее

Как настроить ilo через powershell hpeilocmdlets

Задача настроить ilo. серверов много. Надо настроить dns, выпустить сертификат , ntp , email , name host ilo, syslog, smtp

Для начала установим hpeilocmdlets

Устанавливаем HPiLOCmdlet

Оставлю локально вдруг что та смениться.  HPiLOCmdlets-x64

После установки

Import-Module HPiLOCmdlets

или

Install-Module -Name HPEiLOCmdlets

Если не хватает прав на запуск

Set-ExecutionPolicy RemoteSigned

Если ошибки

Install-PackageProvider Nuget –Force


Install-Module –Name PowerShellGet –Force


Update-Module -Name PowerShellGet

После этого возьмем настройки с эталонного сервера где настроен лдап и группы

$ILOIp = "172.16.35.20"
$UserName = "iloadmin"
#[securestring]
$Pass="pasword"

get-HPiLODirectory -Server $ILOIp -Username $UserName -Password $pass -DisableCertificateAuthentication

Делаем хмл файл

<RIBCL VERSION="2.0">
<LOGIN USER_LOGIN="adminname" PASSWORD="password">
<DIR_INFO MODE="write">
<MOD_DIR_CONFIG>
Читать далее

Как узнать кто давно не подключался к почтовому ящику в exchange.

Задача вывести кто давно не подключался к почтовому ящику в exchange 2016

Function New-Array {,$args}
$Report = New-Array

$days = "30"

$date_last = (Get-Date).AddDays(-$days) 
$mailboxes = Get-Mailbox  -ResultSize unlimited

foreach($mailbox in $mailboxes) 
{ 
  $mbx_DN = $mailbox.DistinguishedName 
  $email = $mailbox.PrimarySmtpAddress.toString()
  $Stat = Get-MailboxStatistics -Identity $mbx_DN | Where-Object {$_.lastLogonTime -lt $date_last -and $_.LastLogonTime -ne $null }  |`
  Select-Object DisplayName,  @{Name="TotalItemSizeGB"; Expression={[math]::Round(($_.TotalItemSize.ToString().Split("(")[1].Split(" ")[0].Replace(",","")/1GB),0)}},LastLogonTime,DatabaseName,DatabaseProhibitSendReceiveQuota

 if ($Stat){
  $tmp = New-Object System.Object
  $tmp | Add-Member -type NoteProperty -name DisplayName -value $($stat.DisplayName)
  $tmp | Add-Member -type NoteProperty -name Email -value $email
  $tmp | Add-Member -type NoteProperty -name TotalSize_MB -value $($stat.TotalItemSizeGB)
  $tmp | Add-Member -type NoteProperty -name LastLogon 
Читать далее

Как мигрировать почтовый архив exchange в другую базу топ 10 по размеру архивного ящика

Задача переместить самые большие архивные ящики пользователей в другую базу

$resul=Get-Mailbox -ResultSize Unlimited | Where-Object { $_.ArchiveDatabase -like "*ARC03*" } | ForEach-Object {
    $PrimarySmtpAddress=$_.PrimarySmtpAddress
    $alias = $_.Alias
    $ArchiveDatabase=$_.ArchiveDatabase
    $totalItemSize = (Get-MailboxStatistics -Identity $alias -Archive).TotalItemSize
    [PSCustomObject]@{
        Alias = $alias
        TotalItemSize = $totalItemSize
        ArchiveDatabase=$ArchiveDatabase
    }
}
$resul1=$resul |Where-Object  { $_.TotalItemSize -like "*gb*" } | Select-Object  *,@{Name="TotalItemSizeGB"; Expression={[math]::Round(($_.TotalItemSize.ToString().Split("(")[1].Split(" ")[0].Replace(",","")/1GB),0)}}  |`
 Sort-Object TotalItemSizeGB -Descending | select -first 10 

 <#

 $resul1| ForEach-Object {
    $alias = $_.Alias
    New-MoveRequest -Identity $alias -ArchiveOnly -ArchiveTargetDatabase ARC07
}

#>

 

Как найти кому принадлежат несвязанные объекты vSAN Virtual Objects Unknown object type через powershell powercli

Ошибка на vmware vsan Unknown object type

Как найти кому принадлежат несвязанные объекты vSAN Virtual Objects Unknown object type через powershell powercli

Прежде чем чистить надо найти что за файлы и кому принадлежат

$vcenter = "vcsa01"
Connect-VIServer $vcenter
$Datacenter_name = "Mos*"

$ClusterName= `
Get-Datacenter -Name $Datacenter_name | Get-Cluster | Where-Object {$_.Name -like 'CL01' } 


$clusterView = Get-Cluster $ClusterName
$ClusterMoRef = $Clusterview.ExtensionData.MoRef
$vmhost = ($clusterView | Get-VMHost) #| select -First 1
$vsanIntSys = Get-View $vmhost.ExtensionData.configManager.vsanInternalSystem

$vsanClusterObjectSys = Get-VsanView -Id VsanObjectSystem-vsan-cluster-object-system
$results = (($vsanClusterObjectSys.VsanQueryObjectIdentities($clusterMoRef,$null,$null,$true,$true,$false)).Identities | where {$_.Vm -eq $null})


foreach ($result in $results) {
$jsonResult = ($vsanIntSys.GetVsanObjExtAttrs($result.Uuid)) | ConvertFrom-JSON
foreach ($object in $jsonResult | Get-Member) {
if($($object.Name) -ne "Equals" -and $($object.Name) -ne "GetHashCode" -and $($object.Name) -ne "GetType" 
Читать далее

Как обновить политику адресов электронной почты и скрипт для удаление дополнительных псевдонимов из OU.

Задача при переноси уз с почтовыми адресами (adminbd.ru) в ou на которую назначена политика адресов электронной, необходимо обновить политику что бы создался новый псевдоним (alias email) и удалить старый email адрес.

Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn
 
 
Get-EmailAddressPolicy (имя политики) | Update-EmailAddressPolicy
$ouName = "НазваниеOU"
$domainToRemove = "adminbd.ru"
$logFilePath = "C:\Scripts\delet_alias_LGC\log.txt"
Remove-item $logFilePath
$emailAddresses1 = Get-Mailbox -OrganizationalUnit $ouName -ResultSize Unlimited
$emailAddresses1 = $emailAddresses1 | Where-Object { $_.PrimarySmtpAddress -notlike "*@adminbd.ru" }
 
foreach ($user in $emailAddresses1) {
    $voxysAddresses = $user.EmailAddresses -split ',' | Where-Object { $_ -like "smtp:*@$domainToRemove" }
    $voxysAddresses = $adminbdAddresses -replace "^smtp:", ""
 
    if ($voxysAddresses.Count -ge 1) {
        # Удаляем все псевдонимы *@adminbd.ru*
        Set-Mailbox 
Читать далее

Как найти включённого локального администратора на серверах в AD.

Задача провести аудит и убедиться что локальный администратор выключен на серверах.

# Получить список всех серверов в AD
$computers = Get-ADComputer -Filter {OperatingSystem -like "Windows Server*"} -Properties Name
 
# Определить имя пользователя, который будет использоваться для выполнения удаленных команд
$credential = Get-Credential
 
# Создать массив для хранения результатов
$results = @()
 
# Пройти по списку серверов и выполнить команду на каждом из них
foreach ($computer in $computers) {
    $computerName = $computer.Name
 
    # Проверить доступность сервера
    if (Test-Connection -ComputerName $computerName -Count 1 -Quiet) {
        $session = New-PSSession -ComputerName $computerName -Credential $credential
 
        # Искать учетную запись локального администратора
        $localAdmin = Invoke-Command -Session 
Читать далее

Как узнать какие сервера требуют перезагрузку. Sccm Pending Reboot

Задача определить какие сервера в ad требуют перезагрузку Pending Reboot. Прежде чем добавлять их в группу по плановой перезагрузке. Так как при назначении deploy прежде чем будет установлено обновление сервер перезагрузиться вне окна обслуживания .

Через базу  sccm

SELECT [Name]
,[ClientState]
,"Pending Reboot"=
case [ClientState]
when '1' then 'Configuration Manager'
when '2' then 'File Rename'
when '3' then 'Configuration Manager, File Rename'
when '4' then 'Windows Update'
when '5' then 'Configuration Manager, Windows Update'
when '6' then 'File Rename, Windows Update'
when '7' then 'Configuration Manager, File Rename, Windows Update'
when '8' then 'Add or Remove Feature'
when '9' then 
Читать далее

Как удалить агент sccm когда за дублировался guid.

При клонировании vm не был сделан sysprep. Из-за этого четыре машины не отображались в sccm.

https://social.technet.microsoft.com/Forums/ru-RU/5a30459d-c2de-40a2-9346-a265ea0e880e/need-to-fix-my-report-showing-duplicate-guids?forum=configmgrgeneral

Сначала найдем дубли в базе

SELECT GSYS.Domain0, GSYS.Name0, site.SMS_Installed_Sites0, GHSYS.Domain0 AS 'Previous Domain', GHSYS.Name0 AS 'Previous Name',  GSYS.SMSID0  AS SMS_Unique_Identifier0
FROM v_GS_SYSTEM GSYS
JOIN v_HS_SYSTEM GHSYS ON GSYS.ResourceID = GHSYS.ResourceID
JOIN v_RA_System_SMSInstalledSites site ON GSYS.ResourceID=site.ResourceID
WHERE GSYS.Name0!=GHSYS.Name0
UNION
SELECT GSYS.Resource_Domain_OR_Workgr0 as Domain0, GSYS.Name0, site.SMS_Installed_Sites0, GHSYS.Domain0 AS 'Previous Domain', GHSYS.Name0 AS 'Previous Name', GSYS.SMS_Unique_Identifier0
FROM v_R_System GSYS
JOIN v_GS_SYSTEM GHSYS ON GSYS.ResourceID = GHSYS.ResourceID
JOIN v_RA_System_SMSInstalledSites site ON GSYS.ResourceID=site.ResourceID
WHERE GSYS.Name0!=GHSYS.Name0
UNION
SELECT GSYS.Resource_Domain_OR_Workgr0 as Domain0, GSYS.Name0, site.SMS_Installed_Sites0, GHSYS.Domain0 AS 'Previous Domain', GHSYS.Name0 AS 'Previous 
Читать далее

Как найти где в AD на серверах включен smbv1 и smbv2

Задача найти где включен smb старый протокол 1 и 2 на серверах в сети

https://techcommunity.microsoft.com/t5/storage-at-microsoft/configure-smb-signing-with-confidence/ba-p/2418102

https://learn.microsoft.com/en-US/windows-server/storage/file-server/troubleshoot/detect-enable-and-disable-smbv1-v2-v3?tabs=server

# Получение списка серверов
$serverList = Get-ADComputer -Filter {OperatingSystem -like "Windows Server*"} | Select-Object -ExpandProperty Name

# Создание массива для результатов
$results = @()

# Проход по каждому серверу
foreach ($server in $serverList) {
    $serverStatus = Test-Connection -ComputerName $server -Count 1 -Quiet

    if ($serverStatus) {
        $smbStatus = Invoke-Command -ComputerName $server -ScriptBlock {
            Get-SmbServerConfiguration | Select-Object EnableSMB1Protocol, EnableSMB2Protocol
        }

        # Добавление результатов в массив
        $results += [PSCustomObject]@{
            ServerName = $server
            IsOnline = $true
            SMBv1Enabled = $smbStatus.EnableSMB1Protocol
            SMBv2Enabled = $smbStatus.EnableSMB2Protocol
        }
    }
    else {
        # Если 
Читать далее