jegyzet

PARTICIÓK , KVÓTA , PSDRIVE

Hozd létre az új merevlemezen a következő partíciókat: 10Gb primary, „Data” névvvel, „F:” betűjelhez hozzárendelve

Get-Disk ——ha a száma a hdd-nek 1 akkor ezzel dolgozunk tovább

Initialize-Disk -number 1 -PartitionStyle MBR

New-Partition -DiskNumber 1 -Size 10GB -DriveLetter F

    VAGY New-Partition -DiskNumber 1 -DriveLetter W –UseMaximumSize

Format-Volume -DriveLetter F -FileSystem NTFS

Set-Volume -DriveLetter F -NewFileSystemLabel „Data”

PARTICIOK Mindegyik partíció legyen NTFS-re formázva!

    - 9Gb extended

    - 3Gb logikai, "Data3" névvel, "G:" betűjelhez hozzárendelve

    - 2Gb logikai, "Data2" névvel, "H:" betűjelhez hozzárendelve

    - 1Gb logikai, "Data1" névvel, "I:" betűjelhez hozzárendelve

New-Partition -DiskNumber 1 -Size 9GB -MbrType Extended

New-Partition -DiskNumber 1 -Size 3GB -DriveLetter G

New-Partition -DiskNumber 1 -Size 2GB -DriveLetter H

New-Partition -DiskNumber 1 -Size 1GB -DriveLetter I

Format-Volume -DriveLetter G -FileSystem NTFS

Format-Volume -DriveLetter H -FileSystem NTFS

Format-Volume -DriveLetter I -FileSystem NTFS

Set-Volume -DriveLetter G -NewFileSystemLabel „Data3”

Set-Volume -DriveLetter H -NewFileSystemLabel „Data3”

Set-Volume -DriveLetter I -NewFileSystemLabel „Data1”

PS DRIVE LÉTREHOZÁSA

mkdir c:\Vizsga

New-PSDrive -Name „V” -PSProvider FileSystem -Root „C:\Vizsga”

Telepítsen File Server Resource Manager szolgáltatást, az egyes felhasználóknak 1 GB tárterület álljon rendelkezésére, a rendszer 900 MB elérésekor figyelmeztesse őket!

Install-WindowsFeature –Name FS-Resource-Manager –IncludeManagementTools

New-FsrmQuotaTemplate -Name „1GB limit 90% tresh” -Size 1GB -Threshold (New-FsrmQuotaThreshold -Percentage 90)

New-FsrmAutoQuota -Path „C:\MUNKA” -Template „1GB limit 90% tresh”

Korlátozza minden üzletkötő HOME könyvtárának nagyságát 300 MB-ra!

A szabályozás mértéke HARD legyen! A létrehozott kvótát sablonként is mentse el Biztosító néven!

Install-WindowsFeature –Name FS-Resource-Manager –IncludeManagementTools

New-FsrmQuotaTemplate -Name „Biztosító” -Size 300MB

New-FsrmAutoQuota -Path „E:\Biztosító” -Template „Biztosító”

Állíts be az „I:” meghajtóhoz kvótát, 10Mb limittel, 7Mb figyelmeztetéssel, a 10Mb elérése után ne tudjanak írni a meghajtóra a felhasználók!

Install-WindowsFeature –Name FS-Resource-Manager –IncludeManagementTools

$Action = New-FsrmAction -Type Command -Command „c:\windows\system32\cmd.exe” -CommandParameters „echo [source file path] >> c:\log.txt” -ShouldLogError

$Threshold = New-FsrmQuotaThreshold -Percentage 70 -Action $Action

New-FsrmQuota -Path „I:” -Size 10MB -Threshold $Threshold -SoftLimit

$Threshold = New-FsrmQuotaThreshold -Percentage 70

New-FsrmQuota -Path „I:\” -Size 10MB -Threshold $Threshold

fsutil quota track i:

fsutil quota enforce i:

fsutil quota modify I: 7000000 10000000 Diak1

dirquota parancs

Telepítsen File Server Resource Manager szolgáltatást és konfigurálja be, hogy a felhasználók futtatható állományokat ne másolhassak a megosztott könyvtárba!

Install-WindowsFeature –Name FS-Resource-Manager –IncludeManagementTools

Get-FsrmFileGroup

(Get-FsrmFileGroup -Name "Executable Files").IncludePattern

# De lehet készíteni újat:

New-FsrmFileGroup -Name "Futtatható fájlok" -IncludePattern @("*.exe", "*.com", "*.cmd", "*.bat", "*.ps1")

New-FsrmFileScreen -Path „C:\FELADAT” -IncludeGroup „Executable Files”

BEÁLLÍTÁS , GÉPEN ÁTNEVEZÉS , HÁLOZAT

Adminként belépve tudunk dolgozni így , ez tután jöhetnek a parancsok

Get-LocalUser -Name „Administrator” | Set-LocalUser -Password (ConvertTo-SecureString ‘A123456a’ -AsPlainText -Force)

Nevezze át a szervert „SZERVEREM” névre!

Rename-Computer -NewName SZERVEREM -Force –PassThru

Restart-Computer -Force

TUDNI KELL MELYIK INTERFACE , EZT LE KELL KÉRDEZNI!

Get-NetIPInterface

Nevezze is át ezt az interfészt „Külső”-re, a másik interfészt pedig „Belső”-re!.

Rename-NetAdapter -Name Ethernet3 -NewName „Külső”

Rename-NetAdapter -Name Ethernet2 -NewName „Belső”

A szerver külső interfészén állítson be DHCP-t, vagyis a hálózati beállításokat DHCP-n keresztül kapja!

Get-NetIPInterface

Set-NetIPInterface -InterfaceIndex 999 -Dhcp Enabled

DHCP KIKAPCSOLÁS

Set-NetIPInterface -InterfaceIndex 999 -Dhcp Disabled

A Windows 10 egy hálózati kártyával rendelkezzen (belső csatoló), IP címe: 172.16.20.120, hálózati maszk: 255.255.255.0, átjáró: 172.16.20.1

New-NetIPAddress -InterfaceIndex 999 -AddressFamily IPv4 -IPAddress „172.16.20.120” -PrefixLength 24 -DefaultGateway „172.16.20.1”

Ha van ip törölni kell az ip-t

Remove-NetIPAddress -InterfaceIndex 999 -AddressFamily IPv4 -IPAddress „192.168.56.200” -PrefixLength 24

DNS BEÁLLÍTÁS SZERVEREN

Set-DnsClientServerAddress -InterfaceIndex 999 -ServerAddresses „172.16.20.1” -PassThru

Ha saját maga A DNS SZERVER :

Set-DnsClientServerAddress -InterfaceIndex 999 -ServerAddresses „127.0.0.1” -PassThru

A kliens IP címét 10.40.50.1/24-re!TUDNI KELL MELYIK INTERFACE,LE KELL KÉRDEZNI (Get-NetIPInterface)

New-NetIPAddress -InterfaceIndex 999 -AddressFamily IPv4 -IPAddress „10.40.50.1” -PrefixLength 24

Ellenőrizze, hogy a szerver eléri-e az internetet!

ping 8.8.8.8

Biztosítsa a megfelelő tűzfalbeállítások segítségével, hogy mind a szerver, mind a kliens pingelhető legyen a belső hálózaton belülről, valamint ellenőrizze is, hogy a két gép (szerver + kliens) látja-e egymást!

Enable-NetFirewallRule -Name „FPS-ICMP4-ERQ-In”

ping 10.40.50.1

ping 10.40.50.200

C: meghajtón egy Munka nevű mappát, amelyen belül pedig a következő mappákat: Gazd

mkdir c:\Munka

Állítsuk be a jogosultságokat a következőképpen : Közös mappához az IT és a Foni teljes jogkörrel, a többi csoport csak olvasási joggal

mindig kell , öröklés mgszünteteés , user hozzáférés törlése

icacls c:\Munka\Közös /inheritancelevel:d

icacls c:\Munka\Közös /remove:g:d Users /t

hogy írni is tudjanak bele

icacls c:\Munka\Közös /grant "IT:(OI)(CI)(IO)(F)"

icacls c:\Munka\Közös /grant "IT:(RX,W)"

csak olvasni tudják

icacls c:\Megosztasok\Tanuloknak /grant „Tanulok:(OI)(CI)(RX)”

Ha be akarsz lépni valamelyik felhasználóval, hozzá kell adni a Users csoporthoz!

Add-LocalGroupMember -Group „Users” -Member „Foni”

Hozzon létre egy KOZOS nevű mappát a C:\megosztasok helyen és ossza meg minden tartományi felhasználóval (olvasási joguk legyen)

icacls c:\megosztasok\KOZOS /grant „Domain Users:(OI)(CI)(RX)”

New-SmbShare -Name „KOZOS” -Path „C:\megosztasok\KOZOS” -FullAccess „Everyone”

Ellenőrzés! (Be kell jelentkezni különböző csoportokba tartozó felhasználókkal és a Teszt felhaználóval is, és velük és meg kell nézni a mappák elérhetőségét)

Bejelentkezés Foni-vel

mkdir c:\Munka\Információk\XXX

mkdir c:\Munka\Információk\XXX\YYY

touch c:\Munka\Információk\alma.txt

del c:\Munka\Információk\alma.txt

Oszd meg a „Megoszt” mappát csak a tanárok részére írási joggal, „Tanar” megosztási névvel!

New-SmbShare -Name „Tanar” -Path „I:\Megoszt” -FullAccess „Tanarok”

Ossza meg a „Tesztanyagok” mappát „Tesztek” névvel, de rejtett megosztásként,

New-SmbShare -Name „Teszt$” -Path „c:\Tesztanyagok” -FullAccess „Everyone”

Csatlakoztassuk a Foni felhasználónak a Közös mappa megosztását K: meghajtóként. legyen tartós.

New-SmbMapping -LocalPath ‘K:’ -RemotePath ‘\szerver.ip.cime\Kozos’ -UserName „Foni” -Password „Password123” -Persistent $True

Ellenőrizd a „TanarIr” mappa távoli elérésével a kvótát, hogy a másik tanárral csatlakozol a Win10ről!

Get-SmbMapping

Remove-SmbMapping -RemotePath „\10.11.12.201\IPC$”

New-SmbMapping -LocalPath ‘X:’ -RemotePath ‘\10.11.12.201\TanarIr’ -UserName „Tanar2” -Password „Password123”

Remove-SmbMapping -RemotePath „\10.11.12.201\TanarIr”

AD-NÉL Beléptetett kliensen nem tudok belépni tartományi felhasználóval!!! -MINDIG OTHER USERREL LÉPJ BE!!!!

C:\MUNKA mappa M: meghajtóként jelenjen meg a felhasználóknál!

New-SmbShare -Name „Munka” -Path „c:\MUNKA” -FullAccess „Everyone”

$netlogonpath=(Get-SmbShare | Where-Object Name -EQ „NETLOGON”).Path

$logon_script=’ceg_munka.cmd’

New-Item -Path $netlogonpath -Name $logon_script -ItemType „file” -Value „net use M: \dc-server\Munka”

Get-ADUser -Filter ‘Name -like „*” -SearchBase „OU=CEG,DC=TANFOLYAM,DC=COM” | ForEach-Object { Set-ADUser -Identity $_.Name -scriptPath $logon_script }

állítsa be NAGY.PETER dolgozó home könyvtárát

mkdir „e:\Biztosító\Marketing\nagy.peter”

icacls „e:\Biztosító\Marketing\nagy.peter” /grant „nagy.peter:(OI)(CI)(IO)(F)”

icacls „e:\Biztosító\Marketing\nagy.peter” /grant „nagy.peter:(RX,W)”

Set-ADUser -Identity „nagy.peter” -HomeDirectory „\vizsga2\Homes\Marketing\nagy.peter” -HomeDrive „H:”

E: meghajtón és állítsa be az összes felvett dolgozó home könyvtárát

H: meghajtóként (teljes jogkörrel!)

mkdir „e:\Biztosító”

icacls "e:\Biztosító" /inheritancelevel:d

icacls "e:\Biztosító" /remove:g:d Users /t

New-SmbShare -Name "Homes" -Path "e:\Biztosító" -FullAccess "Everyone"

Get-ADUser -Filter * | ft *

Get-ADUser -Filter * | Where-Object DistinguishedName -Like "*OU=Biztosító,DC=MODULZARO,DC=LOCAL" | ForEach-Object {$_.Name}

Get-ADUser -Filter 'Name -like "*"' -SearchBase "OU=Biztosító,DC=MODULZARO,DC=LOCAL"

Get-ADUser -Filter 'Name -like "*"' -SearchBase "OU=Biztosító,DC=MODULZARO,DC=LOCAL" | ForEach-Object { `

    $nev=$_.SamAccountName; $nev; mkdir "e:\Biztosító\$nev"; `

    icacls "e:\Biztosító\$nev" /grant "${nev}:(OI)(CI)(IO)(F)"; `

    icacls "e:\Biztosító\$nev" /grant "${nev}:(F)"; `

    Set-ADUser -Identity $nev -HomeDirectory "\\vizsga\Homes\$nev" -HomeDrive "H:" `

}

A szerveren vegyük fel következő csoportokat:- Gazdasági

New-LocalGroup „Gazdasági”

A szerveren vegyük fel a következő felhasználókat:- Gazd1

New-LocalUser -Name „Gazd1” -Password (ConvertTo-SecureString -AsPlainText „Password123” -Force) -UserMayNotChangePassword

New-LocalUser -Name „Ruander” -Password (ConvertTo-SecureString -AsPlainText „Password123” -Force) -PasswordNeverExpires -AccountNeverExpires -UserMayNotChangePassword

sortörés miatt igy is lehet írni

New-LocalUser -Name „KissP” -Password (ConvertTo-SecureString -AsPlainText `

„Password123” -Force) `

-PasswordNeverExpires `

-AccountNeverExpires `

-UserMayNotChangePassword

ciklussal

New-LocalUser -Name „Gazd1” -Password (ConvertTo-SecureString -AsPlainText „Password123” -Force) -UserMayNotChangePassword

$users=”Diak1″,”Diak2″,”Tanar1″,”Tanar2″, „Konyvtaros”

foreach ($u in $users) {

New-LocalUser -Name $u -Password (ConvertTo-SecureString -AsPlainText "Password123" -Force) -UserMayNotChangePassword

}

A Gazdx, ITx, Termx felhasználók kerüljenek a saját csoportjukba.

Add-LocalGroupMember -Group „Gazdasági” -Member „Gazd1”, „Gazd2”

AD TELEPÍTÉSNÉL A DNS SZERVER TELEPÜL!!!!

Telepítsen AD szolgáltatást, ahol a tartománynév legyen „mzaro.local”, a helyreállítási jelszó pedig „Password123”!

Install-WindowsFeature -name AD-Domain-Services –IncludeManagementTools

Restart-Computer –Force

Install-ADDSForest -DomainName „mzaro.local” -ForestMode WinThreshold -DomainMode WinThreshold -DomainNetbiosName MZARO -SafeModeAdministratorPassword (ConvertTo-SecureString -AsPlainText „Password123” -Force) -InstallDNS

VAGY HA TUDJUK AZ INTERFACE SZÁMÁT ITT 999 ( Get-NetIPInterface ) és ip-t állítunk egyben

Install-WindowsFeature -name AD-Domain-Services –IncludeManagementTools

Set-DnsClientServerAddress -InterfaceIndex 999 -ServerAddresses „127.0.0.1” -PassThru

Install-ADDSForest -DomainName „JRU.LOCAL” -ForestMode WinThreshold -DomainMode WinThreshold -DomainNetbiosName JRU -SafeModeAdministratorPassword (ConvertTo-SecureString -AsPlainText „Password123” -Force) -InstallDNS -Force

ellenőrzés : Get-ADDomain Get-ADDomainController Get-ADForest

Adja hozzá a DNS szolgáltatáshoz a 8.8.8.8 címet DNS továbbító címként!

Get-DnsServerForwarder ——LEKÉRDEZ

Add-DnsServerForwarder -IPAddress 8.8.8.8 -PassThru ——hozzáad ÚJAT A LISTÁHOZ

VÁLTOZTASSA a DNS szolgáltatásnál a 8.8.8.8 címet DNS továbbító címként!

Set-DnsServerForwarder -IPAddress 8.8.8.8,8.8.4.4

Módosítsa a szerveren a szerever hálozati beállításánál a DNS beállítasait,hogy a szerver saját magához forduljon a DNS kérdésekkel!

ipconfig /all –> már magához fordul, ott van a 127.0.0.1 minden interfésznél!

Set-DnsClientServerAddress -InterfaceIndex 6 -ServerAddresses „127.0.0.1” -PassThru

ellenörzés : nslookup www.mzaro.local nslookup merce.hu

MEGLÉVŐ ÁTÁLLÍTÁSA

Set-DnsServerForwarder -IPAddress 8.8.8.8,8.8.4.4

Kapcsolja be az AD lomtárat

Get-ADOptionalFeature -filter *

Enable-ADOptionalFeature ‘Recycle Bin Feature’ -Scope ForestOrConfigurationSet -Target modulzaro.local

LépTesse be a kliens gépet a tartományba!

$credential = New-Object System.Management.Automation.PSCredential(„mzaro\Administrator”, (ConvertTo-SecureString -AsPlainText „Password123” -Force))

Add-Computer -ComputerName WINKLIENS -DomainName „mzaro.local” -Credential $credential -Restart -Force

-NewName „Win10” ————-ez CSAK HA MÁS NÉVEN , TALÁN

Tesztelje a az előző pontban megadott beállításokat!

Get-ADComputer -Filter *

AD TELEPÍTÉSNÉL A DNS SZERVER TELEPÜL!!!! HA KÜLÖN KELL :

Install-WindowsFeature DNS -IncludeManagementTools

DNS REKORDOK LEKÉRDEZÉSE

Get-DnsServerResourceRecord -ZoneName „mzaro.local”

DNS REKORDOK LEKÉRDEZÉSE FORMÁZVA

Get-DnsServerResourceRecord -ZoneName „mzaro.local” | Format-Table -AutoSize -Wrap

Vegye fel a következő „A” rekordokat a DNS szerverbe szerver – 10.40.50.200 kliens – 10.40.50.1

ha ad-t telepitesz megy fel a dns szerver, tehát nem kell kiadni a köv parancsot!

Add-DnsServerResourceRecordA -Name „szerver” -ZoneName „mzaro.local” -IPv4Address „10.40.50.200” -TimeToLive 01:00:00 -PassThru

„A” rekord

Add-DnsServerResourceRecordA -Name „kliens” -ZoneName „mzaro.local” -IPv4Address „10.40.50.1” -TimeToLive 01:00:00 -PassThru

„c” rekord alias —- ha már van a rekordban server akkor kerütl az aliasba a server.mzaro.local

Add-DnsServerResourceRecordCName -Name „ftp” -HostNameAlias „server.mzaro.local” -ZoneName „mzaro.local” -PassThru

A DNS-szolgáltatásNÁL LEKÉRDEZÉSEK :

Get-DnsServer

Get-DnsServerSetting

Get-DnsServerZone

nem tudom mi : Add-DnsServerPrimaryZone -NetworkID 172.16.20.0/24 -ZoneFile „20.16.172.in-addr.arpa.dns” -DynamicUpdate None -PassThru

DHCP TELEPÍTÉS

Telepítsen DHCP szolgáltatást a fenti hálózat részére úgy, hogy IP címet csak 10-től 99-ig osszon, de a többi szükséges hálózati beállítást is kiossza! A Scope neve legyen Xyscope!

Install-WindowsFeature DHCP –IncludeManagementTools

Restart-Computer –Force

Add-DhcpServerv4Scope -Name „Belső hálózat” `

-StartRange 172.16.10.20 -EndRange 172.16.10.50 `

-SubnetMask 255.255.255.0 `

-LeaseDuration 0.08:00:00 `

-State Active `

-PassThru

Add-DhcpServerInDC -DnsName „vizsga.modulzaro.local” -IPAddress 172.16.10.1 -PassThru

kizárás

Add-DhcpServerv4ExclusionRange -ScopeId 172.16.10.0 -StartRange 172.16.10.44 -EndRange 172.16.10.44

Restart-Service DHCPServer

Módosítsa a DHCP beállításokat úgy, hogy a DNS szerver címe (10.10.10.200) a szerver címe legyen!

Get-DhcpServerv4Scope —–megondja mi a scope

Set-DhcpServerv4OptionValue -ScopeId 10.10.10.0 -DnsServer 10.10.10.200 -Router 172.16.10.1

ipconfig /renew

Get-DhcpServerv4OptionValue -ScopeId 10.10.10.0

FELHASZNÁLÓ HOZZÁADASA AD-BEN

Vegyen fel a rendszerben egy „TESZT” szervezeti egységet! —–GYÖKÉRBE

New-ADOrganizationalUnit -Name TESZT

HA MÁSIK ALÁ KELL , pl zarovizsga alá

New-ADOrganizationalUnit -Name Teszt -Path „OU=ZAROVIZSGA,DC=ZAROAD,DC=LOCAL”

listázza milyen szervezeti egységek vanna AD-ben

Get-ADOrganizationalUnit -Filter *

A „Teszt” szervezeti egységen belül vegyen fel egy „Tesztelo1” felhasználót teljes neve „Vizsgázó felhasználó” „Password123” jelszóval!

New-ADUser -Name Tesztelo1 -AccountPassword (ConvertTo-SecureString -AsPlainText „Password123” -Force) -DisplayName „Vizsgázó felhasználó” -Path „OU=TESZT,DC=MZARO,DC=LOCAL” -Enabled $true

jelszót nem szükséges változtatni ( vizsga.local gépen van egy biztosító csoport abban egy sales : OU=SALES,OU=Biztosító,DC=VIZSGA,DC=LOCAL)

New-ADUser -Name „kiss.attila” -DisplayName „Kiss Attila” -CannotChangePassword $true -PasswordNeverExpires $true -AccountPassword (ConvertTo-SecureString -AsPlainText „A123456a@” -Force) -Path „OU=SALES,OU=Biztosító,DC=VIZSGA,DC=LOCAL” -Enabled $true

ezzel ellenörzöd : Get-ADUser -Filter *

A webadmin és webadmin2 felhasználót vegye fel a Webmesters csoportba!

Add-ADGroupMember -Identity Webmesters -Members webadmin, webadmin2

„kiss.attila” ha ékezet , szóköz van benne Webmesters csoportba

Add-ADGroupMember -Identity „Webmesters” -Members „kiss.attila”

felhasználó „Graf1” csoporttagságát kérdzi le

Get-ADPrincipalGroupMembership -Identity Graf1

A „web” szervezeti egységen belül hozzon létre egy „Tesztelok” csoportot, majd vegye fel a két tesztelő felhasználót a csoportba! ( ELÉRÉSBEN MINDIG NAGYBETŰK VANNAK )

New-ADGroup -GroupScope Global -Name Tesztelok -Path „OU=WEB,OU=ZAROVIZSGA,DC=ZAROAD,DC=LOCAL”

Add-ADGroupMember -Identity Tesztelok -Members Tesztelo1, Tesztelo2

kik vannak a tesztelők csoportban

Get-ADGroup -Identity Tesztelok

felahsználókat lsitáz

Get-ADUser -Filter * -Properties MemberOf

Listázza ki, hogy a felhasználók mikor léptek be utoljára.

Get-ADUser -Filter * -Properties * |select name, LastlogonDate

A csoportban vegyen fel 3 felhasználót egy CSV állományból tetszőleges adatokkal (A CSV filet: 3 felhasználóval a kívánt fejlécekkel Önnek kell elkészítenie. A CSV file tartalmát is másolja be a WORD állományba feladatbeadáskor)

$csvfile=”useradatok.csv”

new-item -Path . -Name $csvfile -type file -Value „firstname;lastname;sam;ou;password

User;1;User1;OU=VIZSGAFELHASZNALOK,DC=VIZSGA,DC=LOCAL;Password123

User;2;User2;OU=VIZSGAFELHASZNALOK,DC=VIZSGA,DC=LOCAL;Password123

User;3;User3;OU=VIZSGAFELHASZNALOK,DC=VIZSGA,DC=LOCAL;Password123

$user = Import-Csv -Path $csvfile -Delimiter „;”

foreach ($userP in $user)

{

$DisplayName = $userP.firstname + ” ” + $userP.lastname;

$firstName = $userP.firstname;

$lastName = $userP.lastname;

$OU = $userP.ou;

$Sam = $userP.sam;

$UserPassword = ConvertTo-SecureString $userP.password -asplaintext -force;

New-ADUser -Name $DisplayName -DisplayName $DisplayName -SamAccountName $Sam -GivenName $firstName -Surname $lastName -AccountPassword $UserPassword -Path $OU -Enabled $true -ChangePasswordAtLogon $false -PasswordNeverExpires $true

Write-Host $Sam "sikeresen létrehozva";

Add-ADGroupMember -Identity VIZSGAZOK -Members $Sam

}

Gyűjtse ki a Vizsga2-’monogram’.txt állományba, mely csoportoknak tagja a Vizsgazo nevű felhasználó!

//Get-ADUser xx -Properties MemberOf | Format-List -Property MemberOf > Vizsga2-VZ.txt

Get-ADPrincipalGroupMembership -Identity Vizsgazo|ForEach-Object name > Vizsga2-VZ.txt

listázza ki az elmúlt egy napban létrehozott felhasználói fiókokat és a kimenetet irányítsa az Vizsga1-’monogram’.txt nevű állományba!

$d=(Get-Date).AddDays(-1).ToString()

Get-ADUser -Properties Created -Filter {Created -gt $d} > Vizsga1-VZ.txt

Jelenítse meg, hogy az egyes felhasználók mikor léptek be utoljára!

Get-ADUser -Filter * -Properties * |select name LastlogonDate |ft -AutoSize

A fenti feladatok elvégzése után a script kérdezze meg, hogy szeretnénk-e jelszót módosítani valamelyik felhasználónál. Ha azt válaszoljuk consolon, hogy „nem”, akkor a script befejezi a futását. Amennyiben a válasz” igen”, akkor pedig valamilyen módon tudjunk választani a felhasználók közül, majd megváltoztatni annak jelszavát.(Nem kell, hogy ismétlődéssel fusson!)

Write-Host „Szeretne jelszóváltoztatást? (igen vagy nem)”

$v=Read-Host

if($v -eq „igen”) {

Write-Host "Írja be a felhasználó nevét!"

$u=Read-Host

if (Get-ADUser -Filter * | Where-Object SamAccountName -eq $u) {

    Write-Host "Írja be az új jelszót!"

    $p=Read-Host -AsSecureString

    if($p -ne "") {

        Set-ADAccountPassword -Identity $u -Reset -NewPassword (ConvertTo-SecureString -AsPlainText "$p" -Force)

    } else {

„Üres jelszó nem adható meg!”

}

} else {

„Nincs ilyen felhasználó!”

}

}

WEB , FTP SZERVER TELEPÍTÉSE

Ha FTP KELL ÉS ELÖTTE NINCS TELELPÍTVE IIS AKOR AZT IS KELL

IIS telepítése

Install-WindowsFeature Web-Server -IncludeManagementTools

ELLENÖRZÉS : Invoke-WebRequest localhost

FTP telepítése amikor már van IIS

Install-WindowsFeature Web-FTP-Server -IncludeManagementTools

Állítsd le az alapértelmezett web site-ot!

Stop-Website ‘Default Web site’

Megnézed hogy megy-e

Get-Website

Állítsa be a „Web” mappa jogosultságait úgy, hogy a web adminisztrátorok tudjanak bele írni is, az IIS ki tudjon onnan szolgálni, de senki más ne férjen hozzá! Ellenőrizze is!

icacls c:\Web /inheritancelevel:d

icacls c:\Web /remove:g:d Users /t

icacls c:\Web /grant „Webmesterek:(OI)(CI)(IO)(F)”

icacls c:\Web /grant „Webmesterek:(RX,W)”

icacls c:\Web /grant „IUSR:(OI)(CI)(RX)”

ALAP HELYEN WEBOLDAL

Vegyen fel egy új site-ot „Tesztoldal” névvel, ami a 80-as porton szolgál ki és a kiinduló mappája a „C:\Web” mappa! Hozzon létre ebben a mappában egy „index.html” fájlt, aminek a tartalma „Modulzáró vizsga folyamatban…”!

New-WebSite -Name „Tesztoldal” -Port 80 -PhysicalPath „c:\Web”

echo „Modulzáró vizsga folyamatban…” > C:\Web\index.html

Kliensről ELENÖRZÉS

Invoke-WebRequest http://10.40.50.200 -UseBasicParsing

HA BENNE VANA HOSTHEADER KÉSŐBB NEM ÉRHETŐ EL MÁSHOGYAN , NE ÍRD BELE !!!!

New-WebSite -Name „VZWWW” -Port 20080 -HostHeader „RX-8.srv.world” -PhysicalPath „W:\WWW\VZWWW”

NEM ALAP HELYEN WEBOLDAL

Hozz létre egy új web site-ot, „X80” névvel és állítsd be úgy, hogy a 80-as porton figyeljen és kiinduló mappája a „WWW”-n belüli „80” legyen! Készíts egy szabványos alap oldalt, ahol a személyes adataid jelenjenek meg! Ellenőrizd a host-ról vagy a kliensről az oldal elérhetőségét!

mkdir w:\WWW\80

New-WebSite -Name „x80” -Port 80 -PhysicalPath „w:\www\80”

echo „Jantner Zsolt 80” > W:\www\80\index.html

NEM ALAP PORTON WEBOLDAL

Hozz létre egy új web site-ot, „X800” névvel és állítsd be úgy, hogy a 800-as porton figyeljen! Szolgálja mind a http, mind a https kéréseket! Kiinduló mappája a „WWW”-n belüli „800” legyen! Helyezd el itt egy tetszőleges oldal tartalmat!

mkdir w:\WWW\800

New-WebSite -Name „x800” -Port 800 -PhysicalPath „w:\www\800”

echo „Vinnai Zoltán 800” > W:\www\800\index.html

        //Nem megy egyszerre a http és a https! VAGY VAGY

New-WebBinding -Name „x800” -IPAddress „*” -Port 800 -Protocol https

New-Item IIS:\SslBindings\0.0.0.0!800!localhost -Value $Cert

Ellenőrizd a host-ról vagy a kliensről az oldal elérhetőségét!

curl http://localhost:800

curl http://localhost

curl http://10.11.12.200

Külső eléréshez kell tűzfal szabály szerveren :

New-NetFirewallRule -Name ‘WWW800’ -DisplayName ‘WWW800’ -Description ‘www 800’ -Profile Any -Direction Inbound -Action Allow -Protocol TCP -LocalPort 800 -Program Any -LocalAddress Any -RemoteAddress Any

NEM ALAP PORTON WEBODLAL CERTIVEL

Hozz létre egy új web site-ot, „X443” névvel és állítsd be úgy, hogy a 443-as porton figyeljen titkosított kapcsolattal és kiinduló mappája a „WWW”-n belüli „443” legyen! Készíts egy szabványos alap oldalt, ahol a táblázatos formában a mai órarended jelenik meg! Ellenőrizd a host-ról vagy a kliensről az oldal elérhetőségét!Ehhez tanúsítványra van szükség, amit az IIS-en belül is el tudsz készíteni. Az IIS-ben a szerveren kattintva középen megjelenik a „Server Certificate” ikon, amit kiválasztva (dupla katt) jobb oldalt megjelenik néhány menüpont. Ott a „Create Self-Signed Certificate” elemet kell választani, majd adni kell egy nevet és OK. Az így létrehozott tanusítványt mindenhol be lehet állítani, ahol szükséges.

mkdir w:\WWW\443

New-WebSite -Name „x443” -Port 443 -PhysicalPath „w:\www\443”

New-WebBinding -Name „x443” -IPAddress „*” -Port 443 -Protocol https

Remove-WebBinding -Name „x443” -Protocol http

echo „Vinnai Zoltán 443” > w:\www\443\index.html

New-SelfSignedCertificate `

-DnsName „localhost” `

-KeyAlgorithm RSA `

-KeyLength 2048 `

-CertStoreLocation „Cert:\LocalMachine\My” `

-NotAfter (Get-Date).AddYears(10)

vagy

New-SelfSignedCertificate -KeyAlgorithm RSA -KeyLength 2048 -CertStoreLocation „Cert:\LocalMachine\My” -NotAfter (Get-Date).AddYears(10) -Subject „VZ”

Get-ChildItem Cert:\LocalMachine\My

$cert=Get-ChildItem Cert:\LocalMachine\My\4119C5379B0180EA9DC285DDF7B96CAE04D7910C

New-Item IIS:\SslBindings\0.0.0.0!443!localhost -Value $Cert

Start-Website -Name „x443”

Start-Website -Name „x80”

Hozz létre egy új FTP site-ot „FTP21Anon” névvel, ami a 21-es porton szolgáljon ki anonymous hozzáféréseket! A kiinduló mappa legyen az „FTP” könyvtáron belüli „21Anon”!Készíts egy „Download” és egy „Upload” könyvtárat a kiinduló mappán belül és biztosítsd, hogy feltölteni csak az „Upload” mappába tudjanak! Ellenőrizd a W10-es kliensről az FTP működését!

mkdir w:\FTP\21Anon

New-WebFtpSite -Name „FTP21Anon” -IPAddress „*” -Port 21

Set-ItemProperty „IIS:\Sites\FTP21Anon” -Name physicalPath -Value „w:\FTP\21Anon”

Set-ItemProperty „IIS:\Sites\FTP21Anon” -Name ftpServer.security.ssl.controlChannelPolicy -Value „SslAllow”

Set-ItemProperty „IIS:\Sites\FTP21Anon” -Name ftpServer.security.ssl.dataChannelPolicy -Value „SslAllow”

Set-ItemProperty „IIS:\Sites\FTP21Anon” -Name ftpServer.security.authentication.anonymousAuthentication.enabled -Value $true

icacls „w:\FTP\21Anon” /grant „IUSR:(OI)(CI)(RX)”

Add-WebConfiguration „/system.ftpServer/security/authorization” -Location FTP21Anon -PSPath IIS:\ -Value @{accessType=”Allow”;Users=”IUSR”;permissions=”Read”}

Set-ItemProperty „IIS:\Sites\FTP21Anon” -Name ftpServer.firewallSupport.externalIp4Address -Value „10.11.12.201”

Restart-WebItem -PSPath ‘IIS:\Sites\FTP21Anon’

mkdir w:\FTP\21Anon\Download

mkdir w:\FTP\21Anon\Upload

Add-WebConfiguration „/system.ftpServer/security/authorization” -Location FTP21Anon/Upload -PSPath IIS:\ -Value @{accessType=”Allow”;Users=”IUSR”;permissions=”Read,Write”}

Restart-WebItem -PSPath ‘IIS:\Sites\FTP21Anon’

Fájl és tartományi szolgáltatások

Install-WindowsFeature FS-FileServer

hozzon létre egy tetszőleges nevű weboldalt, a megjelenítendő tartalom pedig:

echo „XY” > C:\inetpub\marketingoldal\index.html

date >> C:\inetpub\marketingoldal\index.html

Hozz létre egy új FTP site-ot „FTP2100Tanarok” névvel, ami a 2100-es porton szolgáljon ki, de csak a „Tanarok” csoport tagjai részére, valamint legyen képes SSL-en keresztüli kiszolgálásra is! A kiinduló mappa legyen az „FTP” könyvtáron belüli „2100Tanarok”! Ellenőrizd a W10-es kliensről az FTP működését!

mkdir w:\FTP\2100Tanarok

New-WebFtpSite -Name „FTP2100Tanarok” -IPAddress „*” -Port 2100

Set-ItemProperty „IIS:\Sites\FTP2100Tanarok” -Name physicalPath -Value „w:\FTP\2100Tanarok”

Set-ItemProperty „IIS:\Sites\FTP2100Tanarok” -Name ftpServer.security.ssl.controlChannelPolicy -Value „SslAllow”

Set-ItemProperty „IIS:\Sites\FTP2100Tanarok” -Name ftpServer.security.ssl.dataChannelPolicy -Value „SslAllow”

Set-ItemProperty „IIS:\Sites\FTP2100Tanarok” -Name ftpServer.security.authentication.basicAuthentication.enabled -Value $true

icacls „w:\FTP\2100Tanarok” /grant „Tanarok:(OI)(CI)(F)”

Add-WebConfiguration „/system.ftpServer/security/authorization” -Location FTP2100Tanarok -PSPath IIS:\ -Value @{accessType=”Allow”;Roles=”Tanarok”;permissions=”Read,Write”}

Set-ItemProperty „IIS:\Sites\FTP2100Tanarok” -Name ftpServer.firewallSupport.externalIp4Address -Value „10.11.12.201”

New-NetFirewallRule -Name ‘FTP2100’ -DisplayName ‘FTP2100’ -Description ‘ftp 2100’ -Profile Any -Direction Inbound -Action Allow -Protocol TCP -LocalPort 2100 -Program Any -LocalAddress Any -RemoteAddress Any

NAT TELEPÍTÉS

Állítson be a szerveren NAT szolgáltatást, majd a kliensen módosítsa a hálózati beállításokat, hogy a szerver legyen az alapátjáró és ellenőrizze is, hogy a kliens eléri-e az internetet!

Megnézem mi a két kártya neve

ipconfig /all # Ethernet – külső, Ethernet 2 – belső

Install-WindowsFeature Routing -IncludeManagementTools

Install-RemoteAccess -VpnType RoutingOnly

netsh routing ip nat install

netsh routing ip nat add interface „Belső” (Ez itt a belső)

netsh routing ip nat add interface ‘Külső’ mode=full

kellhet :

Remove-NetIPAddress -InterfaceIndex 6 -AddressFamily IPv4 -IPAddress „10.40.50.1” -PrefixLength 24

New-NetIPAddress -InterfaceIndex 6 -AddressFamily IPv4 -IPAddress „10.40.50.1” -PrefixLength 24 -DefaultGateway „10.40.50.200”

ping 8.8.8.8

BELÉPÉSI KORLÁTOK

A DIAK2 felhasználó KIZÁRÓLAG munkanapokon 8-15 óra között léphet be a hálózatba.

Az információ bájttömbként kerül tárolásra – napi 3 bájt, 1 bit óránként, vasárnap kezd

Hétfőtől péntekig 8-15 óráig szeretnénk korlátozni a felhasználókat, ezért

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

S S S S S S S S V V V V V V V V V V V V V V V V

23 22 21 20 19 18 17 16 7 6 5 4 3 2 1 0 15 14 13 12 11 10 9 8

128,0,0 – szombat 23-0

64,0,0 – szombat 22-23

32,0,0 – szombat 21-22

31,0,0 – szombat 16-21

0,128,0 – vas 7-8

0,64,0 – vas 6-7

0,32,0 – vas 5-6

0,31,0 – vas 0-5

0,0,128 – vas 15-16

0,0,64 – vas 14-15

0,0,32 – vas 13-14

0,0,31 – vas 8-13

0,0,0,128 – vas 23-0

[byte[]]$hours = @(0,0,0,128,63,0,128,63,0,128,63,0,128,63,0,128,63,0,0,0,0)

[byte[]]$hours = @(0,0,0,0,0,127,0,0,127,0,0,127,0,0,127,0,0,127,0,0,0)

Get-ADUser -Identity DIAK2 | Set-ADUser -Replace @{logonhours = $hours}

Állítsa be, hogy dolgozók hétköznap, 6-21 óra között tudjanak csak belépni.

[byte[]]$hours = @(0,0,0,128,63,0,128,63,0,128,63,0,128,63,0,128,63,0,0,0,0)

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

S S S S S S S S V V V V V V V V V V V V V V V V

23 22 21 20 19 18 17 16 7 6 5 4 3 2 1 0 15 14 13 12 11 10 9 8

128,0,0 – szombat 23-0

64,0,0 – szombat 22-23

32,0,0 – szombat 21-22

31,0,0 – szombat 16-21

0,128,0 – vas 7-8

0,64,0 – vas 6-7

0,32,0 – vas 5-6

0,31,0 – vas 0-5

0,0,128 – vas 15-16

0,0,64 – vas 14-15

0,0,32 – vas 13-14

0,0,31 – vas 8-13

0,0,0,128 – vas 23-0

Hétfőtől péntekig 6-21 óráig szeretnénk korlátozni a felhasználókat,

[byte[]]$hours = @(0,0,0,0,192,255,31,192,255,31,192,255,31,192,255,31,192,255,31,0,0)

Get-ADUser -Filter ‘Name -like „*”‘ -SearchBase „OU=Biztosító,DC=MODULZARO,DC=LOCAL” | ForEach-Object { Set-ADUser -Identity $_.Name -Replace @{logonhours = $hours} }

Állítsa be, hogy dolgozók hétköznap, 8-22 óra között tudjanak csak belépni.

[byte[]]$hours = @(0,0,0,0,0,255,63,0,255,63,0,255,63,0,255,63,0,255,63,0,0)

Get-ADUser -Filter ‘Name -like „*”‘ -SearchBase „OU=Biztosító,DC=VIZSGA,DC=LOCAL” | ForEach-Object { Set-ADUser -Identity $_.Name -Replace @{logonhours = $hours} }

A DOLGOZO3 felhasználó KIZÁRÓLAG munkanapokon 8-16 óra között léphet be a hálózatba.

[byte[]]$hours = @(0,0,0,0,0,255,0,0,255,0,0,255,0,0,255,0,0,255,0,0,0)

Get-ADUser -Identity DOLGOZO3 | Set-ADUser -Replace @{logonhours = $hours}

AWS

Jelenítse meg a fiókban létrehozott virtuális gépeket!

aws ec2 describe-instances

Hozzon létre és indítson el egy új virtuális gépet, ami Ubuntu-t futtat és t2.micro hardver típusú! (Ubuntu2204Server: ami-08c40ec9ead489470, WS2022: ami-07a53499a088e4a8c, WS2019: ami-050d0a1abe93f4773) Biztosítsa, hogy a gép SSH-n és http protokollon keresztül is elérhető legyen!

aws ec2 create-security-group –group-name csk1 –description „csillagkapu” —> sg-0b7ed8664b3f66549

aws ec2 authorize-security-group-ingress –group-name csk1 –protocol tcp –port 22 –cidr 0.0.0.0/0

aws ec2 authorize-security-group-ingress –group-name csk1 –protocol tcp –port 80 –cidr 0.0.0.0/0

aws ec2 create-key-pair –key-name MyKeyPair

vagy inkább:

aws ec2 create-key-pair –key-name MyKeyPair –query ‘KeyMaterial’ –output text > .ssh/MyKeyPair.pem

aws ec2 run-instances –image-id ami-08c40ec9ead489470 –count 1 –instance-type t2.micro –key-name MyKeyPair –security-group-ids sg-0b7ed8664b3f66549 —> i-0d9cd6eabd6180844

Jelentkezzen be SSH-n keresztül, majd telepítse az Apache2 web szervert!

Publikus IP-hez kell kapcsolódni a shellből is!

aws ec2 describe-instances | grep Public —> 52.87.214.160

Pinghez:

aws ec2 authorize-security-group-ingress –group-name csk1 –protocol icmp –port all –cidr 0.0.0.0/0

ssh -l ubuntu -i .ssh/MyKeyPair.pem 52.87.214.160 –> hiba, kulcs jogok!

chmod 400 .ssh/MyKeyPair.pem

A MyKeyPair.pem fájl tartalmának másolása lokális .pem fájlba. Puttygen-el konvertálni .ppk-vá, majd ezt már oda lehet adni a putty-nak. ubuntu felhasználóval lehet belépni, majd

sudo -s

apt update

apt upgrade //hibára fut, neten a megoldás a következő parancs volt

apt –only-upgrade install grub-efi-amd64-signed

reboot

vagy kintrol

aws ec2 describe-instances|grep InstanceId

aws ec2 reboot-instances –instance-id i-0d9cd6eabd6180844

apt install apache2

ss -tlpnu

Ellenőrizze a virtuális gép alól is a web szolgáltatás működését, majd kijelentkezés után távoli gépről is ellenőrizze!

ss -tlpnu curl localhost curl http://54.196.61.12 w3m http://54.196.61.12

Hozzon létre és indítson el egy új virtuális gépet, ami Windows Server 2022-t futtat és t2.micro hardver típusú! (ami-07a53499a088e4a8c)! Biztosítsa, hogy a gép RDP-n és HTTP protokollon keresztül is elérhető legyen! Minden szükséges erőforrást hozzon létre

aws ec2 create-security-group –group-name vzsg –description „vizsgasg” –> sg-903004f8

aws ec2 authorize-security-group-ingress –group-name vzsg –protocol tcp –port

3389 –cidr 0.0.0.0/0

aws ec2 authorize-security-group-ingress –group-name vzsg –protocol tcp –port

80 –cidr 0.0.0.0/0

aws ec2 create-key-pair –key-name vzkp

aws ec2 run-instances –image-id ami-07a53499a088e4a8c –count 1 –instance-type t2.micro –key-name vzkp –security-group-ids sg-903004f8 –> i-05a459a7b99f71e4c

Jelentkezzen be RDP-n keresztül a létrehozott szerverbe, majd PS alól engedélyezze az ICMP Echo kéréseket és telepítsen Web szolgáltatást is, majd jelentkezzen ki!

mstsc /v:54.196.61.12:3389

vagy

Start-Process „$env:windir\system32\mstsc.exe” -ArgumentList „/v:54.196.61.12”

Enable-NetFirewallRule -Name „FPS-ICMP4-ERQ-In”

Install-WindowsFeature Web-Server -IncludeManagementTools

Ellenőrizze, hogy elérhető-e a szerver ICMP-vel!

ping 54.196.61.12

Állítsa le a létrehozott virtuális gépet!

aws ec2 describe-instances

A listából megkeresni a gépet és az instance id-t, kimásolni.

aws ec2 stop-instances –instance-id i-0d9cd6eabd6180844

bucket – vödör

Hozzon létre egy tárfiókot (fájlok tárolására szolgáló erőforrást) Xyvizsgavodre névvel!

aws s3 mb s3://vzvizsgavodre

Listázza ki a létező tárfiókokat!

aws s3 ls

Hozzon létre egy szöveges állományt XYvizsga.txt névvel, amiben helyezze el a nevét!

echo „Vinnai Zoltán” > vzvizsga.txt

Másolja fel a létrehozott fájlt a most létrehozott tárfiókba!

aws s3 cp vzvizsga.txt s3://vzvizsgavodre

Listázza ki a XYvizsgavodre tárfiók tartalmát!

aws s3 ls s3://vzvizsgavodre

Törölje le a tárfiókból a felmásolt txt állományt!

aws s3 rm s3://vzvizsgavodre/vzvizsga.txt

Törölje le a most létrehozott tárfiókot!

aws s3 rb s3://vzvizsgavodre

AZURE

Hozzon létre egy Azure-felhasználói csoportot Vizsga néven!

New-AzADGroup -DisplayName „Vizsga” -MailNickname „vizsga”

Hozzon létre egy Azure-felhasználót Vizsgázó néven tetszőleges adatokkal!

New-AzADUser -DisplayName „Vizsgázó” -Password (ConvertTo-SecureString -AsPlainText -Force „Password123”) -AccountEnabled $true -MailNickname „vizsgazo” -UserPrincipalName „vizsgazo@gwalakigmail.onmicrosoft.com”

A létrehozott Vizsgázó felhasználót tegye a Vizsga csoport tagjává

Add-AzADGroupMember -TargetGroupObjectId (Get-AzADGroup -DisplayName „Vizsga”).Id -MemberObjectId (Get-AzADUser -DisplayName „Vizsgázó”).Id

Listázza ki a csoport tagjainak névsorát egy Vizsga.txt nevű állományba, amelyet töltsön le az Azure-fiókból!

Get-AzADGroupMember -GroupDisplayName „Vizsga”| ForEach-Object displayname > vizsga.txt

Hozzon létre egy tenantot tetszőleges névvel

Csak grafikus felületen lehet! Azure Active Directory | Bérlők kezelése | Létrehozás

Hozzon létre egy cloud csoportot: CLOUDCSOPORT

New-AzADGroup -DisplayName „CLOUDCSOPORT” -MailNickname „CLOUDCSOPORT”

A csoportban vegyen fel 3 felhasználót (CLOUD1, CLOUD2, CLOUD3 névvel)

$juzerek=@(„CLOUD1”, „CLOUD2”, „CLOUD3”)

foreach ($u in $juzerek) {

New-AzADUser -DisplayName "$u" -Password (ConvertTo-SecureString -AsPlainText -Force "Password123") -AccountEnabled $true -MailNickname "$u" -UserPrincipalName "${u}@gwalakigmail.onmicrosoft.com" 

Add-AzADGroupMember -TargetGroupObjectId (Get-AzADGroup -DisplayName "CLOUDCSOPORT").Id -MemberObjectId (Get-AzADUser -DisplayName "$u").Id

}

Hozzon létre még egy csoportot CLOUDCSOPORT2 névvel

New-AzADGroup -DisplayName „CLOUDCSOPORT2” -MailNickname „CLOUDCSOPORT2”

Start-Sleep 5

Rájött, hogy nincs szüksége a CLOUDCSOPORT2-re, ezért törölnie kell

(a cloudcsoport2 létrehozása és törlése között a programot várakoztassa 5 másodpercet!)

Remove-AzADGroup -DisplayName „CLOUDCSOPORT2”

Listázza ki a felhasználókat és csoportokat!

Get-AzADUser

Get-AzADGroup

HYPER-V

Vegyel fel a szerver rendszerébe 3 db 10Gb-os merevlemezt!

New-VHD -Path „d:\HyperV\Virtual Hard Disks\Raid1.vhdx” -SizeBytes 10GB

Get-VM

Stop-VM -Name WS2022_1 (Nálam access denied Administratorként)

Add-VMHardDiskDrive -VMName WS2022_1 -Path „d:\HyperV\Virtual Hard Disks\Raid1.vhdx”

Konfigurálj be RAID0-t! Az új egységen egyetlen maximális méretű partíciót készíts! Rögzítsd a partíció méretét! Helyezz el mappákat és fájlokat rajta, ellenőrizd az elérhetőségüket! Majd vedd ki a rendszerből az egyik 10Gb-os merevlemezt és ellenőrizd a fájlok elérhetőségét! A tapasztaltakat írd is le!

Get-Disk

Get-PhysicalDisk

Get-StoragePool

Get-PhysicalDisk -CanPool $true

Initialize-Disk 2

Initialize-Disk 3

Initialize-Disk 4

Csatlakoztass 2 db 1 GB-os merevlemezt RAID0-ban, a rendszerben „W:” meghajtóként jelenjen meg!

Get-PhysicalDisk -FriendlyName „Msft*”

https://answers.microsoft.com/en-us/windows/forum/all/storage-spaces-trying-to-create-a-raid-0-with/c440086c-4bb6-410d-9e92-fd98ce6626cc

$disks = Get-PhysicalDisk -FriendlyName „Msft*”

New-StoragePool -FriendlyName „RAID0” -StorageSubsystemFriendlyName „Windows Storage*” -PhysicalDisks $disks | New-VirtualDisk -FriendlyName „RAID0Disk” -NumberOfColumns 2 -ResiliencySettingName simple -UseMaximumSize | Initialize-Disk -PassThru | New-Partition -DriveLetter W -UseMaximumSize | Format-Volume

VIRTUALBOX

A szerver két hálózati interfésszel rendelkezzen, ahol az egyik interfészen legyen internet kapcsolata (DefaultSW illetve Bridge), míg a másik interfészen csak helyi kapcsolata lehessen (BelsoSW illetve Belső hálózat)! A kliens gép (Win10) interfésze csak a belső hálózathoz kapcsolódjon! (2 pont)

d:\Wutil\VirtualBox\VBoxManage.exe modifyvm WS2022 –nic1=hostonly –nic2=bridged

d:\Wutil\VirtualBox\VBoxManage.exe modifyvm Win10 –nic1=hostonly

Csatlakoztasson egy 10Gb-os merevlemezt a rendszerhez, majd inicializálja MBR- el, hozzon létre rajta egy elsődleges partíciót, formázza is meg, majd csatlakoztassa Z: meghajtóként a rendszerhez!

cd \wutil\virtualbox

.\VBoxManage createhd –filename d:\VBox\WS2022\WSPlusz.vdi –size 10000 –variant Standard

.\VBoxManage storageattach WS2022 –storagectl „SATA” –port 2 –device 0 –type hdd –medium d:\VBox\Ws2022\WSPlusz.vdi

Munkaállomás telepítése

  1. Telepítse fel a megadott ISO-állományból a VirtualBoxba a Windows 7 operációs rendszert a következő paraméterekkel

a. A virtuális operációs rendszer neve legyen WIN7, a felhasznált memória 1 GB, a tárterület 20 GB és egy hálózati kártyával rendelkezzen!

b. A felhasználó neve: vizsga, bejelentkezési jelszava: Password123

New-LocalUser -Name „vizsga” -Password (ConvertTo-SecureString -AsPlainText „Password123” -Force) -UserMayNotChangePassword

Add-LocalGroupMember -Group „Administrators” -Member „vizsga”

A Windows 7 egy hálózati kártyával rendelkezzen (belső csatoló), mely a DC-SERVER-en beállított DHCP-től kapja az IP címet, átjáró címét és a DNS szerver címét is!

Belső csatoló

Alapból DHCP-s, ha mégsem

ipconfig /all

Remove-NetIPAddress -IPAddress 192.168.56.10 -PrefixLength 24

Get-NetIPConfiguration

Set-NetIPInterface -InterfaceIndex 13 -Dhcp Enabled

Disable-NetAdapter -Name Ethernet

Enable-NetAdapter -Name Ethernet

A munkaállomást léptesse be a tartományba!

$credential = New-Object System.Management.Automation.PSCredential(„tanfolyam\Administrator”, (ConvertTo-SecureString -AsPlainText „Password123” -Force))

Add-Computer -ComputerName VBWin10 -DomainName „tanfolyam.com” -Credential $credential -Restart -Force

Get-ADComputer -Filter *

virtualbox parancssorbol

VirtualBox – https://www.virtualbox.org/manual/

VBoxManage list vms

VBoxManage list runningvms

VBoxManage list -l runningvms

VBoxManage list ostypes

VBoxManage createvm –name OracleLinux6Test –ostype Oracle_64 –register

VBoxManage showvminfo OracleLinux6Test

VBoxManage modifyvm OracleLinux6Test –cpus 2 –memory 2048 –vram 12

VBoxManage createhd –filename /path/to/hard_drive_image/OracleLinux6Test.vdi –size 5120

–variant Standard

VBoxManage storagectl OracleLinux6Test –name „SATA Controller” –add sata –bootable on

VBoxManage storageattach OracleLinux6Test –storagectl „SATA Controller”

–port 0 –device 0 –type hdd

–medium /path/to/hard_drive_image/OracleLinux6Test.vdi

VBoxManage storagectl OracleLinux6Test –name „IDE Controller” –add ide

VBoxManage storageattach OracleLinux6Test –storagectl „IDE Controller”

–port 0 –device 0 –type dvddrive –medium host:/dev/dvd

VBoxManage storageattach ol7 –storagectl „IDE Controller” –port 0 –device 0 –type dvddrive –medium ol7-r6-dvd.iso

VBoxManage startvm OracleLinux6Test

VBoxManage controlvm OracleLinux6Test acpipowerbutton

VBoxManage controlvm OracleLinux6Test poweroff

VBoxManage storageattach OracleLinux6Test –storagectl „IDE Controller”

–port 0 –device 0 –type dvddrive –medium none >

VBoxManage modifyvm OracleLinux6Test –vrde on

VBoxManage startvm OracleLinux6Test –type headless

Ubuntu telepites

VBoxManage createvm –name Ubi64 –ostype Ubuntu_64 –register

VBoxManage showvminfo Ubi64

VBoxManage modifyvm Ubi64 –cpus 1 –memory 1024

VBoxManage createhd –filename d:\VBox\Ubi64\Ubi64.vdi –size 51200 –variant Standard

VBoxManage storagectl Ubi64 –name „SATA Controller” –add sata –bootable on

VBoxManage storageattach Ubi64 –storagectl „SATA Controller” –port 0 –device 0 –type hdd –medium d:\VBox\Ubi64\Ubi64.vdi

VBoxManage storagectl Ubi64 –name „IDE Controller” –add ide

VBoxManage storageattach Ubi64 –storagectl „IDE Controller” –port 0 –device 0 –type dvddrive –medium e:\download\iso\ubuntu-22.04.3-live-server-amd64.iso

VBoxManage startvm Ubi64

VBoxManage modifyvm Ubi64 –nic1=bridged (none, hostonly, intnet, nat, natnetwork)

SQL
https://chat.openai.com/

Készítsen egy új adatbázist Vizsga3 néven!

create database Vizsga3;

kilistázza azoknak a moziknak a nevét és a városát, amelyeknél a mozi neve az „art” szórészletet tartalmazza! A felsorolás a városok neve szerint ábécérendben jelenjen meg! Az eredményt mentse Vizsga3A.txt néven!

select nev,varos from mozi

where nev like ‘%art%’

order by varos,nev

megadja azoknak a moziknak a nevét, ahol a filmet aznap a legtöbbször vetítik! Amennyiben több ilyen mozi is van, akkor elegendő csak egyet megjelenítenie. Az eredményt mentse Vizsga3B.txt néven!

select top 1 nev from eloadas,mozi

where moziid=id

group by nev

order by count(kezdes) DESC

Sorolja fel lekérdezés segítségével azoknak a moziknak a nevét, ahol ezen a napon többször vetítik a filmet magyar felirattal! Az eredményt mentse Vizsga3C.txt néven!

select nev from eloadas,mozi

where moziid=id and szinkron like ‘%felirat%’

group by nev

having count(kezdes)>1

a városonként a filmet vetítő mozikról és a mozik előadásainak darabszámáról! A listában a mozikat a névsorba rendezett városok szerint csoportosítva jelenítse meg! Az eredményt mentse Vizsga3D.txt néven!

select varos, nev, count(varos) from eloadas,mozi

where moziid=id

group by varos,nev

order by varos,nev

Készítsen lekérdezést, amely megadja, hogy mely évtől volt számhúzás minden héten, azaz évente legalább 52 alkalommal! Az eredményt mentse Vizsga4A.txt néven!

select top 1 ev from huzas

group by ev

having count(het)>=52

order by ev

Készítsen lekérdezést, amely megadja: mikor fordult elő, hogy az 1 és a 45 is a húzott számok között volt! Az évszámot és a hét sorszámát adja meg! Az eredményt mentse Vizsga4B.txt néven!

select ev, het from huzas,huzott

Where huzas.id = huzott.huzasid and (huzott.szam = ‘1’ or huzott.szam = ’45’)

group by ev,het

having count(szam)=2

order by ev, het

a XXI. század első évtizedében (2001. január 1. – 2010. december 31.) évente mennyit fizettek ki nyereményként! Az évszámot és a kifizetett összeget jelenítse meg! Az eredményt mentse Vizsga4C.txt néven!

SELECT huzas.ev, Sum(cast(nyeremeny.darab as float) * nyeremeny.ertek) AS osszeg

FROM huzas, nyeremeny

WHERE huzas.id = nyeremeny.id AND huzas.ev BETWEEN ‘2001’ AND ‘2010’

GROUP BY huzas.ev

Írassuk ki, hány mérkőzés maradt el visszalépés miatt! A számított mező neve „visszalepes” legyen!

SELECT count(id) AS visszalepes FROM merkozes

WHERE jatszma1 = -1 or jatszma2 = -1;

Jelenítse meg, hogy mikor került a legkorábbi és a legkésőbbi kezdéssel mérkőzés megrendezésre 8-ad döntőben! A számított mezők neve „legkorabban” valamint „legkesobben” legyen!

SELECT min(kezdes) AS legkorabban, max(kezdes) AS legkesobben

FROM merkozes

WHERE fordulo = ‘d8’;


SELECT

CONVERT(VARCHAR, MIN(kezdes), 8) AS legkorabban,

CONVERT(VARCHAR, MAX(kezdes), 8) AS legkesobben

FROM merkozes

WHERE fordulo = ‘d8’

Elő szokott fordulni, hogy egy tornán két azonos ország játékosa játszik egymás ellen. Mikor fordultak elő ilyenek a vizsgált időszakban? A mérkőzés dátumát, az ország rövidítését, és az egymás ellen játszó játékosok nevét jelenítse meg lekérdezéssel! A listát rendezze az országok kódja szerit ábécérendbe!

SELECT m.datum, j1.orszagKod, j1.nev AS ‘egyik jatekos’, j2.nev AS ‘masik jatekos’

FROM merkozes AS m, jatekos as j1, jatekos as j2

WHERE m.jatekos1Id=j1.id and m.jatekos2Id=j2.id and j1.orszagKod=j2.orszagKod

ORDER BY j1.orszagKod ASC;

az ország kódja mellett jelenítse meg az országból érkező játékosok számát! A listát rendezze úgy, hogy a legtöbb versenyzőt jegyző országgal kezdődjön! A számított mező neve „letszam” legyen!

SELECT orszagKod, count(id) AS letszam FROM jatekos

GROUP BY orszagKod

ORDER BY letszam DESC;

Készítsen statisztikát évszám szerinti bontásban, hány mérkőzést nyert az egyik játékos 2:0 arányban! A mezők címkéjét és a lista rendezettségét a minta szerint állítsa be!

SELECT YEAR(merkozes.datum) AS evszam, count(id) AS „2:0 vagy 0:2” FROM merkozes

WHERE ((jatszma1=2 AND jatszma2=0) OR (jatszma2=2 AND jatszma1=0))

GROUP BY YEAR(merkozes.datum)

ORDER BY evszam DESC;

A C1 elszámolási költségtípusnál csak 100 000 forint alatti tárgyi eszközöket lehet elszámolni! Listázza ki azon számlák minden adatát, amelyek ehhez a költségtípushoz tartoznak és meghaladták az értékhatárt!

SELECT * FROM szamla

WHERE koltsegtipusId=’C1′ and ertek>=100000;

Készítsen lekérdezést, amely kilistázza az A7 költségtípusnál elszámolt 5 legnagyobb értékű számla számlaszámát, keltezési dátumát és értékét!

SELECT top 5 szamlaszam, datum, ertek FROM szamla

WHERE koltsegtipusId=’A7′

ORDER BY ertek DESC

Készítsen lekérdezést, amely kilistázza, hogy az egyes költségtípusoknál mekkora összeget és hány számlát számoltak el eddig a pályázók! A számított mezők neve „elszamolt osszeg” és „szamlak szama” legyen! Az eredményt rendezze elszámolt összeg szerint csökkenő sorrendbe!

select megnevezes as ‘megnevezés’, sum(ertek) as ‘elszámolt összeg’, count(ertek) as ‘számlák száma’

from szamla as s, koltsegtipus as k

where s.koltsegtipusId=k.id

group by megnevezes

order by sum(ertek) desc

Pályázatonként listázza ki a pályázat azonosítóját, a pályázati keretösszeget és hogy a benyújtott számlák ennek hány százalékát teszik ki! A keretösszeg a két tervezet (tervezetA és tervezetC) összegeként határozható meg! A mezők neve „palyazat”, „keret” és „allapot” legyen!

SELECT palyazat.id AS palyazat, sum(palyazat.tervezetA+palyazat.tervezetC)/count(palyazat.id) AS keret,

sum(szamla.ertek)/(cast(sum(palyazat.tervezetA+palyazat.tervezetC) as float)/count(palyazat.id))*100 AS allapot

FROM palyazat, szamla

WHERE szamla.palyazatId=palyazat.id

GROUP BY palyazat.id;

SELECT

palyazat.id AS palyazat, tervezetA+tervezetC AS keret, cast(sum(szamla.ertek) as float)/(tervezetA+tervezetC)*100 AS allapot FROM palyazat, szamla

WHERE szamla.palyazatId=palyazat.id

GROUP BY palyazat.id, tervezetA, tervezetC

ORDER BY palyazat.id

select p.id as palyazat, (tervezetA+tervezetC) as keret, (sum(ertek)*1.0) / (tervezetA+tervezetC) * 100 as ‘allapot’

from palyazat as p, szamla as s

where s.palyazatId=p.id

group by p.id,tervezetA, tervezetC

order by p.id

(((( select cast(5.768455 as decimal(18,4) )))))

Jelenítse meg a szállásra költött havi összegeket és azt, hogy hány alkalomból adódott össze, de csak azokat, amelyeknél a havi összeg meghaladta a 120.000Ft-ot! Az eredményt az összes költség alapján csökkenően rendezze!

SELECT year(datum) as ‘év’,month(datum) as ‘hónap’, sum(ertek) as ‘összes költség’, count(ertek) as db–, ertek, megnevezes FROM szamla, koltsegtipus

WHERE szamla.koltsegtipusId=koltsegtipus.id and megnevezes=’Szállás’

GROUP BY year(datum),month(datum)

HAVING sum(ertek)>120000

ORDER BY sum(ertek) desc

Készítsen lekérdezést, amelynek segítségével kiíratja az 1000 Ft-nál drágább áruk nevét és árát!

SELECT nev, ar FROM aru WHERE ar > ‘1000’

Listázza ki lekérdezés segítségével az üdítőitalok nevét, árát, egységét és az eladott mennyiségét!

Select nev,egyseg, ar, mennyiseg From aru, eladas, kategoria

WHERE eladas.aru_kod = aru.aru_kod and kategoria.kat_kod = aru.kat_kod and kat_nev = ‘Üditőitalok’

Hány olyan áru van az adatbázisban, amelynek az egysége liter?

Select Count(egyseg) As ‘Összesen ennyi van’ From aru Where egyseg = ‘liter’

Készítsen lekérdezést, amely kiírja, hogy árunként mekkora volt a bevétel! A lista (áru név, bevétel) az áruk neve szerint növekvő sorrendben jelenjen meg!

SELECT nev,(cast(mennyiseg as int)*ar) as ‘bevétel’ FROM aru, eladas

Where aru.aru_kod = eladas.aru_kod

Order by aru.nev

Írassa ki, hogy kategóriánként hány fajta termék van az adatbázisban! A kategória nevét és a termékek számát adja meg a lekérdezés.

Select kategoria.kat_nev as „Kategória neve”, count(aru.nev) as „Termékek száma” From kategoria, aru

Where kategoria.kat_kod = aru.kat_kod

Group by aru.kat_kod, kategoria.kat_nev

Összesítse árukategóriánként a bevételt! A listában a kategória neve mellett a hozzátartozó bevétel értéke jelenjen meg!

Select kat_nev, sum(cast(ar as int)*mennyiseg) From kategoria, aru, eladas

Where kategoria.kat_kod = aru.kat_kod and eladas.aru_kod=aru.aru_kod

Group by kat_nev

Adja meg a legdrágább áruk nevét és árát!

Select ar, nev From aru

where ar=(select max(ar) from aru)

order by ar desc

Melyek azok az árukategóriák amelyekben van olyan áru, amely drágább, mint 1000 Ft?

Select kat_nev From aru, kategoria

Where aru.kat_kod = kategoria.kat_kod and ar > ‘1000’

group by kat_nev

Jelenítse meg, hogy a vizsgált időszakban hány C1-es színtű nyelvvizsgát szerveztek! A megjelenített név „C1 nyelvvizsgák száma” legyen!

SELECT count(nyelvid) as ‘C1 nyelvvizsgák száma’ FROM vizsgak

WHERE szint=’C1′

Készítsen lekérdezést, amely kilistázza a vizsgált negyedév jelentkezői közül a legidősebb és legfiatalabb jelentkezők (2018-ban betöltött) életkorát! A számított mezők neve „legfiatalabb” és „legidosebb” legyen!

SELECT min(2018-szulev) AS legfiatalabb, max(2018-szulev) AS legidosebb FROM jelentkezesek;

Listázza ki azoknak a vizsgázóknak a nevét és mobilszámát név szerint rendezve, akik a február 16.-i vizsgára jelentkeztek és a vezetéknevük „V” betűvel kezdődik!

SELECT nev, mobil FROM vizsgak,jelentkezesek

WHERE month(idopont)=2 and day(idopont)=16 and vizsgak.sorsz=jelentkezesek.vizsga and nev like ‘V%’

ORDER BY nev

Egy vizsgaidőpontra maximum 25 fő jelentkezését fogadják el! listázza ki azokat a vizsgaidőpontokat, ahol telt házas volt a vizsga! Az eredményt rendezze úgy, hogy a legrégebbi időponttal záruljon a lista!

SELECT idopont FROM vizsgak, jelentkezesek

WHERE vizsgak.sorsz = jelentkezesek.vizsga

GROUP BY idopont

HAVING count(nev)=25

ORDER BY idopont DESC;

Lekérdezéssel listázza ki nyelvenként és szintenként a negyedévben nyelvvizsgára jelentkezők számát! A számított mező neve „vizsgazo” legyen! A listát rendezze számított mező szerint csökkenő sorrendben!

SELECT nyelv, szint, count(nev) AS vizsgazo

FROM vizsgak INNER JOIN jelentkezesek ON vizsgak.sorsz = jelentkezesek.vizsga INNER JOIN nyelvek ON vizsgak.nyelvid=nyelvek.id

GROUP BY nyelv, szint

ORDER BY vizsgazo DESC

Jelenítse meg az informatika szakra 1. helyen jelentkezők számát, de csak azokét, akik nem nyelvi előkészítőre jelentkeztek! A megjelenített név „InfoDB” legyen!

SELECT count(hely) as ‘InfoDB’ FROM jelentkezesek

WHERE hely=1 and tag=4

Készítsen lekérdezést, amely kilistázza azon felvételizők nevét, akik maximális pontszámú központi felvételit írtak mindkét központi felvételi tárgyból, és a hozott pontjuk az általános iskolából legalább 40 pont! A listát a felvételizők neve szerint ábécé rendben jelenítse meg!

SELECT nev

FROM diakok

WHERE kpmagy=50 AND kpmat=50 AND hozott>=40

ORDER BY nev ASC;

Az iskola szeretné elkészíteni a jelentkezők előzetes rangsorát. listázza ki a felvételizők nevét, a jelentkezésben megjelölt ágazatot, a nyelvi előkészítő jelleget, a jelentkezés sorszámát és a felvételiző összesített pontszámát! A számított mező címkéje „osszpont” legyen! A listát rendezze az agazat mező szerint növekvő sorrendbe, azon belül pedig az osszpont mező szerint csökkenő sorrendbe! Ha a jelentkezők összpontszáma azonos, akkor pedig a hely mező szerint növekvő sorrendben jelenjenek meg a felvételizők adatai!

SELECT nev, agazat, nyek, hely, 2*hozott+kpmagy+kpmat AS osszpont

FROM diakok INNER JOIN jelentkezesek ON jelentkezesek.diak=diakok.oktazon INNER JOIN tagozatok ON tagozatok.akod=jelentkezesek.tag

ORDER BY agazat ASC, osszpont DESC, hely ASC;

Listázza ki ágazatonként, első helyen a Jószakma Szakgimnázium nyelvi előkészítő osztályába jelentkezők számát! A lekérdezésben jelenítse meg a jelentkezők hozott pontjainak terjedelmét is! (Terjedelem alatt a legtöbb és a legkevesebb hozott ponttal jelentkező pontszámkülönbségét értjük.) A számított mező címkéje „jelentkezoszam” és „terjedelem” legyen! A listát rendezze a jelentkezőszám szerint csökkenő sorrendbe!

SELECT agazat, count(diak) AS jelentkezoszam, max(hozott)-min(hozott) AS terjedelem

FROM diakok INNER JOIN jelentkezesek ON jelentkezesek.diak=diakok.oktazon INNER JOIN tagozatok ON tagozatok.akod=jelentkezesek.tag

WHERE hely=1 AND nyek=1

GROUP BY agazat

ORDER BY jelentkezoszam DESC;

Határozza meg ágazatonként az első helyen oda jelentkezők átlagos összesített pontszámát! A megjelenítés „ágazat” és „átlag” oszlopnevekkel történjen! A listát pontszám alapján csökkenően rendezze!

SELECT agazat as ‘ágazat’ , avg(2.0*hozott+kpmagy+kpmat) as ‘átlag’

FROM jelentkezesek,diakok, tagozatok

WHERE hely=1 and oktazon=diak and tag=akod

GROUP BY agazat

ORDER BY ‘átlag’ DESC

A 2015-ös versenynaptárból hivatalosan törölték a „Német Nagydíj”-at, ezért törölje a versenyek táblából ennek a futamnak a rekordját!

DELETE FROM versenyek

WHERE vnev = ‘Német Nagydíj’;

Az adatbázisban a „Brazil Nagydíj” esetén a helyszín neve hibásan szerepel. Javítsa a versenyek táblában a vonatkozó rekordban a hely mező értékét „Sao Paulo”-ra!)

UPDATE versenyek

SET hely = ‘Sao Paulo’

WHERE vnev = ‘Brazil Nagydíj’;

Készítsen lekérdezést, amely kilistázza a minta szerint annak a versenyzőnek a nevét és győzelmeinek számát, aki az évadban a legtöbbször nyert futamot! A számított mező címkéje „gyozelmek” legyen!

SELECT TOP 1 pnev, count(celpoz) AS gyozelmek

FROM eredmenyek INNER JOIN pilotak ON eredmenyek.pilota=pilotak.pazon

WHERE celpoz=1

GROUP BY pnev

ORDER BY count(celpoz) DESC

Az egyes nagydíjakon a versenyzők különböző távokon versenyeznek. Listázza ki versenyenként a nagydíj nevét és hogy hány kilométert tesznek meg a versenyzők (kor * hossz / 1000)! A számított mező címkéje „tav” legyen! A listát rendezze a tav mező szerint csökkenően!

SELECT vnev, cast(kor as float)*hossz/1000 AS tav FROM versenyek

ORDER BY tav DESC;

Készítsen lekérdezést, amely kilistázza a Forma-1 három legfiatalabb pilótájának a nevét, születési évét, csapatának nevét és az évadban elért legjobb helyezését! A legjobb helyezés oszlopának címkéje „legjobb” legyen! A listát rendezze a pilóták életkora szerint növekvő sorrendbe!

SELECT TOP 3 pilotak.pnev, pilotak.szev, csapatok.csnev, min(eredmenyek.celpoz) AS legjobb

FROM (pilotak INNER JOIN csapatok ON pilotak.csapat=csapatok.csazon) INNER JOIN eredmenyek ON eredmenyek.pilota=pilotak.pazon

GROUP BY pilotak.pazon, pilotak.pnev, pilotak.szev, csapatok.csnev

ORDER BY pilotak.szev DESC

Melyik kerületben a legnagyobb a lakosságszám? Az oszlop neve Kerület legyen!

SELECT top 1 kerulet_megnev AS ‘Kerület’ FROM keruletek

ORDER BY lak_szam DESC

Mennyien szavaztak országosan a természetvédőkre? Az eredmény oszlop neve legyen Összesen!

SELECT SUM(szav_szam) AS ‘Összesen’ FROM eredmenyek

WHERE part=’VTP’

A szavazásra jogosultak hány százaléka szavazott a liberális pártra? Az eredmény oszlop neve Százalék legyen!

SELECT CAST(SUM(szav_szam) AS float) / (SELECT SUM(jog_szam) FROM keruletek) * 100 AS ‘Százalék’

FROM eredmenyek

WHERE part=’VLP’

Készítsen lekérdezést, amiben a párt megnevezése (part_megnev) és az adott pártra szavazók összlétszáma jelenik meg, és a párt kódja (part_kod) szerint van emelkedő sorrendbe rendezve!

SELECT part_megnev AS ‘Párt’, SUM(szav_szam) AS ‘Szavazat’ FROM eredmenyek, partok

WHERE part=part_kod

GROUP BY part_kod, part_megnev

ORDER BY part_kod

Jelenítse meg azoknak a pártoknak a neveit és elért százalékos eredményeit, amelyek az összes szavazatok 15%-nál kevesebbet értek el! A lista a százalék szerint csökkenő sorrendbe legyen rendezve!

SELECT part_megnev AS ‘Párt’, CAST(SUM(szav_szam) AS FLOAT) / (SELECT SUM(szav_szam) FROM eredmenyek) * 100 AS ‘Százalék’ FROM eredmenyek, partok

WHERE part=part_kod

GROUP BY part_megnev

HAVING CAST(SUM(szav_szam) AS FLOAT) / (SELECT SUM(szav_szam) FROM eredmenyek) *100 <15

ORDER BY ‘Százalék’ DESC

powershell parancsok vegyesen
Powershell, Powershell ISE, Windows Terminal külön telepíthető

http://www.powershellkonyv.hu

dir, ls

dir /s

Get-Command

Get-Command -CommandType alias

Get-Alias

Get-Alias dir

cmd /c dir c:\

New-Alias -Name wh Value „write-host”

wh ggg

wh “ablak”

wh ‘ablak’

wh “ab”lak””

Remove-Item Alias:wh

gin

Get-ComputerInfo

New-Item alma.txt

Get-Item alma.txt

Get-Item alma.txt | Get-Member

(Get-Item alma.txt).BaseName

Add-Content alma.txt “Blabla…”

Get-Content alma.txt (type alma.txt —> Get-Alias type)

(Get-Item alma.txt).Delete()

1+1

2*5

7-12

$a=5

$a

$b=3

$a*$b

$a.GetType()

$c.GetType()

$a+$c

$c+$a

$c.ToInt32($null) + $a

Help

Get-Help

Help echo

2023.04.20 – eddig

ISE

valami.ps1

./valami.ps1

Get-Process

Get-Process total*

(Get-Process total*).Kill()

Get-Service

Get-Service | Get-Member

| – csővezeték – pipeline

=========================================================

PSDrive, PSProvider

PSmeghajtó lett így a fájlrendszeren kívül a registry, a tanúsítványtár, de a függvényeinket és a környezeti és saját változóinkat is ilyen PSDrive -okon keresztül is megnézhetjük.

Ezekhez a különböző PSDrive-okhoz tartozik egy-egy provider (ami egy .NET alapú program), ami biztosítja az egységes felületet,

Get-PSDrive

dir hkcu:

Get-PSProvider

New-PSDrive -Name MSReg -PSProvider Registry -Root HKEY_CURRENT_USER\Software\Microsoft

Remove-PSDrive MSReg

New-PSDrive -name munka -PSProvider FileSystem -Root ‘C:\munka’

(Resolve-Path munka:\szöveg.txt).ProviderPath

notepad (Resolve-Path munka:\szöveg.txt).ProviderPath

New-PSDrive -Name P -PSProvider FileSystem -Scope Global -Root \dc2016

\PowerShell -Persist

A meghajtó neve csak egybetűs lehet, ami nem ütközhet már meglevő meghajtó betűjelével

A -Root és a -Persist csak hálózati megosztás lehet

Csak a Global PSDrive-ok lesznek ténylegesen állandóra létrehozva

A felcsatolt meghajtó csak azt létrehozó felhasználó számára lesz látható

New-PSDrive -Name X -PSProvider FileSystem -Scope Global “C:\XXX”

(Hiába Global, nem globál :P, adminként sem)

notepad.exe (Resolve-Path .\alma.tyt).ProviderPath

notepad.exe (get-item .\alma.tyt).FullName

Változók, konstansok

Értékadás

$valtozoneve = “érték”

$valtozoneve = “újérték”

Használat

echo $valtozoneve

$valtozoneve

Write-Host $valtozoneve

Write-Output $valtozoneve

echo “A változó értéke: $valtozoneve”

echo ‘A változó értéke: $valtozoneve’

echo “A változó értéke: $valtozoneve”

echo ‘A változó neve: $valtozoneve’,”A változó értéke: $valtozoneve”

echo „A változó neve: `$valtozoneve / A változó értéke: $valtozoneve”

echo „`$valtozoneve=$valtozoneve”

$sz=@”

első sör, : ) “ + “

második, ‘

“@

$o=(get-item .\alma.txt)

$o.GetType() → FileInfo

Érvényesség (Scope)

Hol érhető el? Csak az adott shellben, addig, amíg be nem zárjuk!

Egyéb változó kezelő parancsok

Get-Variable valtozoneve

Get-Variable $valtozoneve — az érték nevű változó adatait adná!

(Get-Variable valtozoneve).Name

(Get-Variable valtozoneve).Value

(Get-Variable valtozoneve).Visibility

(Get-Variable valtozoneve).GetType()

New-Variable -Name x -Value 33

$x

New-Variable -Name xx -Value 33 -Visibility Private → nem elérhető a shellből sem

Set-Variable -Name x -Value 55

$x

$a = get-alias a*

$a.GetType()

Clear-Variable a

$a

$a.GetType()

Remove-Variable x

$x

$x.GetType()

New-Variable -Name co -Option Constant -Value „Konstans”

$co

$co.Get-Type()

$co=”Új” —> hiba

$_ (Output és láncolás , ha nincs külön kimenet, akkor alapesetben a teljes objektum átadódik a következő parancsnak, amire $_ -al tudunk hivatkozni)

„szöveg” | ForEach-Object{$_.Length}

Változók jellemzői:

• név

• érték

• típus (szám, szöveg, object, …)

• hatókör (public, privát)

• láthatóság (locale, global)

• írhatóság (variable,constant, read-only)

• leírás (description)

Kifejezés / parancs üzemmód

Kifejezés üzemmódba vált a PowerShell, ha a beírt szöveg számmal (vagy egy pont karaktert követő számmal), idézőjelek közé tett karakterlánccal, vagy $ jellel kezdődik.

Parancs üzemmódba vált a PowerShell, ha a beírt szöveg bármilyen betűvel, a & karakterrel, egy pont utáni szóközzel, vagy pont utáni betűvel kezdődik.

A két üzemmód vegyes használatát zárójelezéssel érhetjük el, a zárójelek közötti szövegre minden esetben újra megtörténik az üzemmód meghatározása a fenti szempontok szerint.

2+2

Write-Host 2+2

Write-Host (2+2)

Formázás

Alapban is lehet formázva

Get-Service w*

Format-Table = ft

Format-List = fl

Get-Service w* | ft

Get-Service w* | Format-Table Name, Status, CanStop

Get-Service w* | Format-Table -GroupBy Status

HTML output

Get-Service w* | ft | ConvertTo-Html -Property Name,Status -Head “Szolgáltatások” > services.html

“a={0}, b={1}, a+b={2}” -f $a, $b, $a+$b 1.4.16 a könyvben

“Összesen: {0, 5} Ft” -f 1200

“Összesen: {0, 5} Ft” -f 10

„Ez most az óra: {0:hh}” -f (get-date)

Átirányítás: > ( < – linux)

Hozzáfűzés: >>

Beolvasás

$a=Read-Host “Írj be egy számot”

Adattípusok

Eddig: szám, szöveg, objektum, objektum lista

$a=12 → szám

$b=”alma” → szöveg

$c=Get-Location

$d=Get-Alias a*

[int] $f=34

$f=”asd” ->hiba

Számtípusok

• [int]

• [long]

• [double]

• [decimal]

0x1a -> 26

char – ‘m’

bool (0 v 1) [bool]$bl=0

$bl=10 >5 $bl=(10 >5) → kifejezések eredménye szokott lenni!

$bl=$true

$bl

Dátum, Idő

Get-Date

Set-Date

$d=[DateTime]::Parse(„2009. november 18.”)

$d

Get-Date -f yyMMdd_HHmmss

Tömbök – adatsorozatok, az elemek indexelhetőek

$szamtomb=1,2,3,4

$szovegtomb=”egy”,”ketto”,”harom”,”negy”

$vegyestomb=1,”ketto”,3,”negy”

$szamtomb ->külön sorban az elemek

$szamtomb.GetType() -> Object[]

$egyelemu=,”elem”

$urestomb=@()

$szamtomb.Count = .Length

$szamtomb.Rank (dimenzió)

$szamtomb[0] -> első elem

$szamtomb[1..2] -> 2. és 3. elem

1..10 🙂

$szamtomb[-1] -> végétől indul

$b = 1..100

$b[2..4 + 56..58]

$szamtomb += 5 (új elem, de a háttérben új tömbbe másolódik az előző, az eredmény azonos név)

$szamtomb | get-member

gm -InputObject $szamtomb

count, add, clear, indexof, insert, remove, removeat,

Többdimenziós tömbök

$tábla = (1,2,3,4),(„a”,”b”,”c”,”d”) — 2 dim: sorok, oszlopok – mátrix

$tábla[0][0] -> 1

$tábla[1][0] -> a

$igazi = new-object -TypeName ‘object[,]’ -ArgumentList 3,2

$igazi[2,1]=”kakukk”

Típusos tömbök

$t = New-Object int[] 20

$ttdt = New-Object ‘int[,]’ 5,2

$ttdt[0,0] = 12

Gyűjtemények(collections), listák

ArrayList

$intlist = New-Object System.Collections.ArrayList

$intlist.gettype() -> ArrayList

$intlist.Add(2)

$intlist |getmember

gm -InputObject $intlist

addrange, insertrange, removerange, reverse, sort, capacity

$scal = system.collections.arraylist

Sor (Queue)

$sor = [System.Collections.Queue] @()

Enqueue, Dequeue, Peek, ToArray

Verem (Stack)

$verem = [System.Collections.Stack] @()

Push, Pop, Peek, ToArray

Generic – paraméterezhető típusos tömb

$genlist = New-Object collections.generic.list[string]

get-member -i $genlist

Szótárak, hash tábla

$szotar = @{ Név = „Soós Tibor”; Cím = „Budapest”; „e-mail”=”soostibor@citromail.hu”}

$szotar

Összetartozó adatok = rekord, mezőkből áll, akár különböző típusok

Kulcs=Érték párokból áll

Az értékekre a kulcs nevével lehet hivatkozni!

$szotar[“Név”]

$szotar.Keys

$szotar.Values

Szótártömb

$névjegyek = New-Object system.collections.arraylist

$névjegyek.Add(@{Név=”Soós Tibor”;”e‑mail”=”soostibor@citromail.hu”;Cím=”Budapest”})

$névjegyek.Add(@{Név=”Fájdalom Csilla”;”e‑mail”=”fcs@citromail.hu”;Cím=”Zamárdi”})

$névjegek

Típuskonverzió

$a=12

$a

$a.GetType()

$b=[string]$a

$b

$b.GetType()

$c=”46”

$c

$c.GetType()

$d=[int]$c

$d

$d.GetType()

$sz=”Alma”

$cc=[char[]]$sz

$cc

$cc[0]

[int]$cc[0]

Operátorok

+, -, *, /, %, ++, — ($a=10, $b=$a++, $b, $c=++$a, $c)

+=, -=, *=, /=

Operátor

Leírás

Kis-nagybetű érzékeny operátor

Leírás

-eq

egyenlő

-ceq

egyenlő

-ne

nem egyenlő

-cne

nem egyenlő

-gt

nagyobb

-cgt

nagyobb

-ge

nagyobb egyenlő

-cge

nagyobb egyenlő

-lt

kisebb

-clt

kisebb

-le

kisebb egyenlő

-cle

kisebb egyenlő

1 -eq 1

1 -eq 2

“alma” -gt “korte”

“alma” -lt “korte”

Tartalmaz (-contains, -notcontains, -ccontains, -cnotcontains)

1,2,3,4,1,2,3,1,2 -contains 3

Van benne, nincs benne (-in, -notin, -cin, -cnotin)

Dzsóker 🙂 – *, ?, -like … -notlike …

„ablak” -like „[a-f]lak”

„ablak” -like „[a-f]?lak”

Logikai és bit (-not, -and, -or, -xor, -bnot, -band, -bor, -bxor, -shl, -shr) -not === !

(5 -eq 1) -and $true

(5 -gt 1) -and $true

0 -and 1

1 -and 1

12 -band 5 (1100 and 0101 —> 0100 = 4)

12 -and 5 0-tól eltérő az True

12 -shl 1

12 -shr 1

Típusvizsgálat (-is, -isnot)

“szam” -is [string] – “szam” -is [object] – “szam” -is [array]

Csoportosítás – (), $(), @(), {}, ${}

$a=12, ($a=22)

$($a =”ab”; $b=”lak”; $a+$b).length

$tömb = „egy”, @($tömb).length

$script = {$dátum = get-date; $dátum}, $script, $script.invoke()

${ilyen név nem lehetne} = 1

Tartomány ( .. )

1..5, 3..-2

Szöveges operátorok (-join, -split, -csplit)

„egy”, „kettő”, „három” -join „-„

-join („egy”, „kettő”, „három”)

„egy-kettő-három” -split „-„

‘1.2.3.4.5.6.7.8’ -split „.”, 3

Parancsok feltételes összefűzése (&& és ||)

Test-Path C:\Windows && Write-Host „Success”

remove-item C:\kakukk || Write-Host „Failure”

Vezérlési szerkezetek

Feltételes végrehajtás (if/then/else, ?:)

if($a -gt 10) {“Nagyobb, mint 10”}

if($a -gt 10) {“Nagyobb, mint 10”}else{“Kisebb egyenlő mint 10”}

if($a -gt 10) {“Nagyobb, mint 10”} elseif($a -eq 10) {“Pontosan 10”} else {“Kisebb mint 10”}

(Get-Command -CommandType alias | Where-Object {$_.Name -eq „wh”}).Length

?:

$true ? „Igaz” : „Hamis”

Esetszétválasztás (switch)

switch($a){ 1 {„egy”} 2 {„kettő”} 3 {„három”} 10 {„tíz”} default {„egyéb”}}

Ciklusok (for, foreach, while, do-while, do-until)

Menü: 1.7.5

do

{

 Write-Host "========================================================="

 Write-Host "0 - Folyamatok listázása"

 Write-Host "1 - Szolgáltatások listázása"

 Write-Host "2 - Folyamat indítása"

 Write-Host "3 - Folyamat leállítása"

 Write-Host "9 - Kilépés"

 $v = Read-Host

 Write-Host "========================================================="

 switch ($v)

 {

      "0" {Get-Process}

      "1" {Get-Service}

      "2" {&(Read-Host "Folyamat neve")}

      "3" {Stop-Process -name (&Read-Host "Folyamat neve")}

      "9" {break}

      default {Write-Host "Érvénytelen billentyű!";break  }

 }

} while ($v -ne „9”)

Véletlenszám gen

Get-Random

Get-Random 100

Get-Random -Minimum 50 -Maximum 100

5..15 | Get-Random -Count 3

„Aladár”, „Bence”, „Csaba”, „Dénes”, „Ferenc”, „Hugó”, „István” | Get-Random -Count 3

Függvények

function függvény1 {„első”}

függvény1

———————————————-

function körterület ($sugár)

{

 $sugár*$sugár*[math]::Pi

}

körterület 12

———————————————-

function üdvözlet ($név = „Tibi”) {“üdv $nev” }

üdvözlet

üdvözlet(“Pisti”)

———————————————-

function körterület ([double] $sugár)

{

 $sugár*$sugár*[math]::Pi

}

———————————————-

$a=1

„a=$a”

function fv1($par=2)

{

"fv1 - a=$a"

"fv1 - par=$par"

$b=$par+1

"fv1 - b=$b"

}

fv1

„b=$b”

„par=$par”

fv1(4)

„b=$b”

„par=$par”

———————————————-

function fv1($p1, $p2=3)

{

„p1=$p1”

„p2=$p2”

}

fv1

fv1(4)

fv1 5 6

———————————————-

function fv2 ($par1, [ref]$par2)

{

$par1++

$par2.Value++

„par1=$par1”

Write-Host(„par2={0}” -f $par2.Value)

}

$a=10

$b=20

fv2 $a ([ref]$b)

„a=$a”

„b=$b”

———————————————-

function fv5 ($par1, $par2)

{

return ($par1+$par2)

}

$c=fv5 11 22

$c

$c.gettype()

Kiírás fájlba

10..20 > adatok.txt

30..50 >> adatok.txt

$file=”adatok.txt”

$sorok=”Első sor”, „Második sor”

Set-Content -Path $file -Value $sorok

Add-Content -Path $file -Value „Harmadik sor”

Get-ChildItem | Out-File c:\dir.txt #1.8.13

Beolvasás fájlból

$file=”adatok.txt”

$sorok=Get-Content $file

$sorok

$sorok.GetType()

$sorok[1]

$sorok[1].GetType()

Táblázatok kezelése (import, export, convertfrom, convertto)

Excel 2016 export CSV – Adatok.csv

Get-Content Adatok.csv

Import-Csv .\Adatok.csv -Encoding Default

Get-Content .\Adatok.csv | ConvertFrom-Csv -Delimiter „;”

Import-Csv .\Adatok.csv -Encoding Default -Delimiter „;”

Get-Process -Name A* > proclist.txt

Get-Process -Name A* | ConvertTo-Csv -Delimiter “;” > proclist.csv

Get-Process -Name A* | Export-Csv -Delimiter „;” proclist2.csv

Változók láthatósága 1.6.4

get-variable a -scope 0 #0 -local, 1-szülő, 2-nagyszülő

$a=”valami”

function fv3{$a=”másvalami”;$a; (get-variable a -scope 1).value; set-variable a -scope 1 -value „változás”}

$c=1

function kie{$c=2; „Én c-m:$local:c”;”Te c-d:$global:c”}

kie

Hibakezelés 2.4

terminating, nonterminating error

„Eleje”; 15/0; „Vége”

„Eleje”; throw „kakukk”; „Vége”

„Eleje”; get-content blabla.txt -ErrorAction SilentlyContinue; „Vége”

$error[0]

function deletefile ($path){

try {remove-item -Path $path -ErrorAction Stop}

catch {

        "Nincs ilyen fájl!"

        return -1

    }

finally {"Itt a vég!"}

"Ez a normális vég"

}

Remove-Item nemlétezőfájl.txt 2> $null

filter bulk-remove

{

if (-not (Test-Path $_))

    { Write-Warning "Nincs ilyen file: $_!" }

else

    { Remove-Item $_ }

}

„nincs.txt”, „file.txt” | bulk-remove

filter bulk-remove

{

remove-item $_ -ErrorAction silentlycontinue

 if (!$?)

      { $Error[0].categoryinfo.reason}

}

Futtatás háttérben és távol 1.11

Get-Command -noun job

Get-Job, Start-Job, Stop-Job, Wait-Job, Receive-Job, Remove-Job, Suspend-Job

start-job -ScriptBlock { for($i=0; $i -lt 60; $i++){$i; Start-Sleep -Seconds 1}}

Enable-PSRemoting

Enable-PSRemoting -force

New-PSSession -ComputerName dc, member

New-PSSession -ComputerName server -Credential VZ\Administrator

New-PSSession -ComputerName 192.168.56.200 -Credential VZ\Administrator

Invoke-Command -Session (Get-PSSession) -ScriptBlock {get-service g*}

Enter-PSSession 1

Exit-PSSession

Disconnect-PSSession 2

Remove-PSSession 2

Környezeti változók (env: PSDrive) 2.1.5

CMD-ben: echo %USERNAME%

cd env:

dir

$env:USERNAME

(Get-Item USERNAME).Value

Szűrők 1.8

ForEach-Object 1.5.5

1,2,3 | ForEach-Object {$_ * 3}

1,2,3 | ForEach-Object {“-eleje-”} {$_ * 3} { “-vége-”}

get-date; 10..1|ForEach-Object -Parallel {Start-Sleep $_; Write-Host $_}; Get-Date

7.0-tól van csak -Paralell

Where-Object 1.5.6

$tömb = 1,2,”szöveg”, 3

$tömb | Where-Object {$_ -is [int]} | ForEach-Object {$_*2}

Get-Process | Where-Object -Property Ws -GE 130mb

Get-Process | Where WS -ge 130mb

Sort-Object 1.8.3

3,32,1,6,24 | Sort-Object

3,32,1,6,24 | Sort-Object -Descending

get-process | sort-object -property workingset -Descending

Get-ChildItem C:\Windows -File | Sort-Object -Property extension, name

Get-ChildItem . | Sort-Object -Property {$_.name.length}

Select-Object 1.8.5

Format-Table, Format-Wide 1.8.6

Out-String 1.8.16

Group-Object 1.8.4

Compare-Object 1.8.7

Measure-Object 1.8.8

Tee-Object 1.8.9

Server Core-n nincs ISE, nem is telepíthető!!!

De van lehetőség Remote ISE-re!

http://mctexpert.blogspot.com/2015/08/can-you-add-powershell-ise-to-server.html

De tűzfal nem engedi távolról, csak helyi hálón!

“ Alapértelmezés szerint a Rendszerfelügyeleti webszolgáltatások tűzfalkivétele a

nyilvános profilok esetében ugyanazon helyi alhálózaton található távoli számítógépekre korlátozza a hozzáférést.”

https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_remote_troubleshooting?view=powershell-7.3
https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/enable-psremoting?view=powershell-7.3

AWS-en engedni az 5985/TCP portot

Enable-PSRemoting

Enable-PSRemoting -Force

Set-NetFirewallRule -Name „WINRM-HTTP-In-TCP-PUBLIC” -RemoteAddress Any

2019-en intellisence is megy, a 2022-n is megy! 🙁 Várni kell, lassan éled! Illetve kapcsolgatni kell! Picit lassúúúúúúúúúúúúúúú 🙁

Rendszerkezelési lehetőségek

Számítógép kezelés 2.10

Get-Command *-computer

Restart-Computer / Restart-Computer -Force

Stop-Computer / Stop-Computer -ComputerName member (Távoli gép leállítása)

Rename-Computer -NewName azújnév -Force

Add-Computer -WorkGroupName WG (Munkacsoport beáll.)

$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist r2\administrator”, ( Convertto-SecureString ‘Password123’ -force -asplaintext) (Tartományba léptetés)

Test-Connection member / Test-Connection member -Quiet (Kapcsolat ell.)

Test-ComputerSecureChannel -Server member (Tartományi komm. ell.)

Processzek kezelése 2.15

Get-Command *-process

Start-Process notepad.exe

Start-Process notepad.exe -ArgumentList C:\fájl.txt -PassThru

A -PassThru paraméterrel visszakapjuk az elindított processz adatait.

stop-process -name „notepad”

Invoke-Command -ComputerName member -ScriptBlock {start-process notepad} (Távoli gépen háttérben)

(Get-WmiObject -Class Win32_process -Filter „Name = ‘notepad.exe'”).getowner().user (Ki indította)

(Get-Process notepad).CloseMainWindow() (Szelíd leállás)

(Get-Process notepad).Kill() (Get-Process notepad).Close() (Erőszakos leállítás)

whoami /priv

Start-Process -FilePath notepad -Verb runas (Futtatás emelt jogokkal – -Verb)

Szolgáltatások kezelése 2.15.3

Get-Command *-service

get-service | where-object {$_.CanStop}

get-service | where-object {$_.CanStop} | Stop-Service

get-service audiosrv | get-member -MemberType properties

$service=[WMI] „Win32_Service.Name="Alerter„” – hiba

$service.StartMode

get-help Set-Service

Set-Service -Name „SERVICE-NAME” -Status stopped -StartupType disabled

New-Service -Name „YourServiceName” -BinaryPathName .exe

Szerveren

Install-WindowsFeature …

Remove-WindowsFeature …

Registry 2.8

New-PSDrive -Name Uninstall -PSProvider Registry -Root HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

cd Uninstall:

Get-ItemProperty 7-Zip

New-ItemProperty . -Name DumpsterAlwaysOn -Value 1 -type DWORD

Set-ItemProperty . -Name DumpsterAlwaysOn -Value 0

New-Item Valami

Fájlkezelés 2.6

Get-Location

(Get-Location).GetType() — PathInfo

(Get-Location).ToString()

pwd

Get-Alias pwd -> Get-Location

Get-Item .

Get-Item ..

(Get-Item .).GetType() — DirectoryInfo

(Get-Item .).GetType() | gm

(Get-Item .).Name

(Get-Item .).FullName

Get-Alias dir -> Get-ChildItem

Get-ChildItem

Get-ChildItem -Force (Rejtetteket is)

Get-ChildItem -Directory

Get-ChildItem -File

Get-ChildItem -Attributes “h”

Get-ChildItem -Filter *.txt

Get-ChildItem C:\PSKönyv -Exclude *.txt -Recurse -Attributes !directory

New-Item -Path . -Name szöveg.txt -type file -Value „Ez egy szöveg”

New-Item -Path . -Name „Alkönyvtár” -type Directory

New-Item uresfile

New-Item -ItemType Directory ujmappa

Test-Path ujmappa

Test-Path uresfile

Test-Path C:\scripts\ -OlderThan 2016.01.01

(Get-Item C:\scripts\alice.txt).attributes = „Archive, hidden”

Copy-Item C:\PowerShell\20150923* -Destination C:\PowerShell\másolat\

Get-Command *-Item

Move-Item

Rename-Item

Remove-Item

Jogosultságok kezelése – ACL 2.6.11

Get-Command *-acl

Get-Acl

Get-Acl | fl

Set-Acl —> FELEJTŐS!!!! Megoldás icacls!

icacls . #nem powershell!

Aktuális jogok:

icacls mappa

Öröklés tiltása:

icacls mappa /inheritancelevel:d

Users csoport törlése:

icaclsmappa/remove:g:d Users /t

Subfolder and files only Full:

icacls mappa /grant „csoport:(OI)(CI)(IO)(F)”

This folder RX,W:

icacls mappa /grant „csoport:(RX,W)”

Csak olvasási jog

icacls mappa /grant „masikcsoport:(OI)(CI)(RX)

Írási jog

icacls mappa /grant „harmadikcsoport:(OI)(CI)(RX,W)

Lokális felhasználók és csoportok 2.22

Get-Command -Local

Get-LocalUser

Get-LocalGroup

New-LocalUser -Name „felhasználóneve”-Password (ConvertTo-SecureString -AsPlainText `

„Password123” -Force) `

-PasswordNeverExpires `

-AccountNeverExpires `

-UserMayNotChangePassword

New-LocalGroup “Újcsoport”

Add-LocalGroupMember -Group „Újcsoport” -Member „felhaszn1”, “felhaszn2”

Get-LocalGroupMember -Group „Újcsoport”

Megosztások

Get-ChildItem \asus\powershell

Get-Command share Get-Command -Smb

Get-SmbShare

New-SmbShare -Name „megosztásneve” -Path „mappa” -FullAccess „Everyone”

New-SmbMapping -LocalPath ‘S:’ -RemotePath ‘\ServerCoreGyak\12A’

New-SmbMapping -LocalPath ‘K:’ -RemotePath ‘\ServerCoreGyak\Kozos’ -Persistent

Get-SmbMapping

net #nem powershell!

net share #nem powershell!

net

Hálózati beállítások

Get-NetAdapter

Get-NetIPInterface

Get-NetIPAddress

Get-NetIPInterface -AddressFamily IPv4

Set-NetIPInterface -InterfaceIndex 6 -Dhcp Disabled

New-NetIPAddress -InterfaceIndex 6 -AddressFamily IPv4 -IPAddress „192.168.0.110” -PrefixLength 24 -DefaultGateway „192.168.0.254”

Set-DnsClientServerAddress -InterfaceIndex 6 -ServerAddresses „8.8.8.8” -PassThru

Remove-NetIPAddress -Confirm -DefaultGateway 192.168.111.254 -IPAddress 192.168.111.200 -PassThru

Get-NetAdapterBinding | Where-Object ComponentID -EQ ‘ms_tcpip6’

Disable-NetAdapterBinding -Name ‘Ethernet’ -ComponentID ‘ms_tcpip6’ #IPv6 tiltás

ipconfig /all #nem powershell!

Tűzfal

Get-Command -NetFirewall

Get-NetFirewallRule

Get-NetFirewallRule -DisplayName „ICMPv4

Get-NetFirewallRule -Name „FPS-ICMP4-ERQ-In”

Enable-NetFirewallRule -Name „FPS-ICMP4-ERQ-In” #ping engedélyezés

New-NetFirewallRule -Name ‘ICMPv4’ -DisplayName ‘ICMPv4’ -Description ‘Allow ICMPv4’ -Profile Any -Direction Inbound -Action Allow -Protocol ICMPv4 -Program Any -LocalAddress Any -RemoteAddress Any

Enable-NetFirewallRule -Name ‘ICMPv4’

DHCP

Install-WindowsFeature DHCP –IncludeManagementTools

Restart-Computer –Force

Get-Command -DhcpServer

Add-DhcpServerv4Scope -Name „Internal Network” `

-StartRange 192.168.20.71 -EndRange 192.168.20.90 `

-SubnetMask 255.255.255.0 `

-LeaseDuration 0.08:00:00 `

-State Active `

-PassThru

Set-DhcpServerv4OptionValue -ScopeId 192.168.20.0 `

-DnsServer 192.168.20.1,192.168.20.2 `

-Router 192.168.20.254 `

-DnsDomain ‘test.com’

Set-DhcpServerv4Reservation -IPAddress 192.168.111.10 -ClientId 08-00-27-F1-73-59 -Name W10

Restart-Service DHCPServer

Get-DhcpServerv4Scope

Get-DhcpServerv4Reservation 192.168.111.0 //a 192.168.111.0 a scope id

Get-DhcpServerv4Binding

Get-DhcpServerv4DnsSetting

Get-DhcpServerv4Lease 192.168.111.0

DNS

Install-WindowsFeature DNS –IncludeManagementTools

Restart-Computer –Force

Get-Command -DnsServer

Add-DnsServerPrimaryZone -Name „tartománynév” -ZoneFile „tartománynév.dns” -DynamicUpdate None –PassThru

Add-DnsServerPrimaryZone -NetworkID 192.168.111.0/24 -ZoneFile „111.168.192.in-addr.arpa.dns” -DynamicUpdate None -PassThru

Remove-DnsServerZone „tartománynév.nev” –PassThru

Get-DnsServerZone

Add-DnsServerResourceRecordA -Name „rx-8” -ZoneName „srv.world” -IPv4Address „10.0.0.110” -TimeToLive 01:00:00 -CreatePtr -PassThru

Add-DnsServerResourceRecordCName -Name „fd3s” -HostNameAlias „rx-7.srv.world” -ZoneName „srv.world” -PassThru

Get-DnsServerResourceRecord -ZoneName „srv.world” | Format-Table -AutoSize -Wrap

Add-DnsServerForwarder -IPAddress 10.0.0.10 -PassThru

Web

Install-WindowsFeature Web-Server -IncludeManagementTools

Get-Command -WebSite

Stop-Website ‘Default Web site’

New-WebSite -Name „NewSite” -Port 20080 -HostHeader „RX-8.srv.world” -PhysicalPath „C:\inetpub\newsite”

NAT

Rename-NetAdapter -Name „Ethernet” -NewName „Belso”

Install-WindowsFeature Routing -IncludeManagementTools

Install-RemoteAccess -VpnType RoutingOnly

netsh routing ip nat install

netsh routing ip nat add interface InterfaceNeve (Ez itt a belső)

netsh routing ip nat add interface ‘InterfaceNeve’ mode=full

AD 2.19

Install-WindowsFeature -name AD-Domain-Services –IncludeManagementTools

Restart-Computer –Force

Install-ADDSForest -DomainName „domain.neved ” -ForestMode WinThreshold -DomainMode WinThreshold -DomainNetbiosName FD3S01 -SafeModeAdministratorPassword (ConvertTo-SecureString -AsPlainText „Password123” -Force) -InstallDNS

Get-ADDomain -Server SzerverNeve

Get-ADDomainController -Server SzerverNeve

Get-ADForest -Server SzerverNeve

Get-ADUser -Filter *

Get-ADGroup -Filter *

Get-ADOrganizationalUnit -Filter *

New-ADOrganizationalUnit -Name valami

New-ADOrganizationalUnit -Name alvalami -Path OU=VALAMI,DC=XY,DC=LOCAL”

New-ADGroup -GroupScope Global -Name csoport -Path „OU=ALVALAMI,OU=VALAMI,DC=XY,DC=LOCAL”

New-ADUser -Name valaki -AccountPassword (ConvertTo-SecureString -AsPlainText „Password123” -Force) -Path „OU=ALVALAMI,OU=VALAMI,DC=XY,DC=LOCAL”

Add-ADGroupMember -Identity csoport -Members valaki

Felhasználók .csv fájlból: 2.19.3

GPO 2.23

https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ee461027(v=technet.10)?redirectedfrom=MSDN

Windows Update

Install-Module PSWindowsUpdate

Get-WindowsUpdate

Install-WindowsUpdate

Get-WindowsUpdate -AcceptAll -Install -AutoReboot

Azure

Tulajdonos weboldalon mindent csinálhat, de powershellben nem.

Weben új felhasználó felvétele, szerepkörét tekintve Globális rendszergazda -> weben dolgozhat.

Azure előfizetésnél (Subscription) a felvett felhasználót classic administrátorhoz is hozzá kell tenni, ekkor tud erőforrásokkal dolgozni és ekkor tudja a get-azsubscription-al lekérdezni az előfizetési infókat!

Get-AzSubscription

Set-AzContext -Subscription „Azure-előfizetés 1”

Nem kizárt, hogy ezt csak akkor kell elvégezni, ha az ingyenes hozzáférésről váltottunk fizetősre!

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Install-Module -Name Az -Scope CurrentUser -Repository PSGallery -Force (Online és Adminként)

Get-Module

Uninstall-Module -Name Az

Connect-AzAccount (Online – böngésző)

Disconnect-AzAccount (egymás után kétszer kell futtatni – csak másodikra megy)

Get-AzContext

Get-AzTenant

$tenantId = (Get-AzContext).Tenant.Id

Get-AzADUser

https://learn.microsoft.com/en-us/powershell/module/az.resources/get-azaduser?view=azps-9.3.0

Get-AzADUser -DisplayName „Walaki” |fl

Get-AzADGroup

New-AzADUser -DisplayName „Új felhasználó” -Password (ConvertTo-SecureString -AsPlainText -Force „Password123”) -AccountEnabled $true -MailNickname „ujfelh” -UserPrincipalName „ujfelh@gwalakigmail.onmicrosoft.com”

Update-AzADUser -UPNOrObjectId $upn -City $city

New-AzADGroup -DisplayName „Új csoport” -MailNickname „ujcsop”

Update-AzADGroup -ObjectId $objectid -Description $description

Add-AzADGroupMember -TargetGroupObjectId (Get-AzADGroup -DisplayName „Új csoport”).Id -MemberObjectId (Get-AzADUser -DisplayName „Új felhasználó”).Id

Get-AzADGroupMember -GroupDisplayName „Új csoport”

Remove-AzADGroupMember -GroupDisplayName „Új csoport” -MemberObjectId (Get-AzADUser -DisplayName „Új felhasználó”).Id

Remove-AzADGroup -DisplayName „Új csoport”

Get-AzResourceGroup

https://learn.microsoft.com/en-us/powershell/module/az.resources/get-azresourcegroup?view=azps-9.3.0

Get-AzLocation

New-AzResourceGroup -Name „ujfelh-rg” -Location „North Europe”

Remove-AzResourceGroup -Name „ujfelh-rg” -Force

https://learn.microsoft.com/en-us/azure/storage/common/storage-account-create?toc=%2Fpowershell%2Fazure%2Ftoc.json&tabs=azure-powershell&view=azps-9.3.0

New-AzStorageAccount -ResourceGroupName „ujfelh-rg” -Name „ujfelhsa” -Location „North Europe” -SkuName Standard_RAGRS -Kind StorageV2

Remove-AzStorageAccount -Name „ujfelhsa” -ResourceGroupName „ujfelh-rg” -Force

Get-AzStorageAccount

https://learn.microsoft.com/en-us/azure/storage/blobs/blob-containers-powershell

$ctx = New-AzStorageContext -StorageAccountName -UseConnectedAccount

New-AzStorageContainer -Name $containerName -Context $ctx

Get-AzStorageContainer -Name $containerName

Remove-AzStorageContainer -Name $containerName -Context $ctx

https://learn.microsoft.com/en-us/azure/storage/blobs/blob-powershell

$path = „C:\temp\”

$containerName = „myContainer”

$filename = „demo-file.txt”

$imageFiles = $path + „*.png”

$file = $path + $filename

Set-AzStorageBlobContent -File $file -Container $containerName -Context $ctx

Get-AzStorageBlob -Container $namedContainer -Context $ctx

Get-AzStorageBlobContent -Container $containerName -Blob $blobName -Destination $path -Context $ctx

Copy-AzStorageBlob -SrcContainer „photos” `

-SrcBlob $blobname -DestContainer "archive" `

-DestBlob $("photos/$blobname") -Context $ctx

Create VM

https://learn.microsoft.com/en-us/powershell/azure/azureps-vm-tutorial?view=azps-9.3.0

$vmParams = @{

ResourceGroupName = ‘TutorialResources’

Name = ‘TutorialVM1’

Location = ‘eastus’

ImageName = ‘Win2016Datacenter’

PublicIpAddressName = ‘tutorialPublicIp’

Credential = $cred

OpenPorts = 3389

Size = ‘Standard_D2s_v3’

}

$newVM1 = New-AzVM @vmParams

Get-AzVM -ResourceGroupName „ResourceGroup11” -Name „VirtualMachine07”

Stop-AzVM -ResourceGroupName „ResourceGroup11” -Name „VirtualMachine07”

Start-AzVM -ResourceGroupName „ResourceGroup11” -Name „VirtualMachine07”

Restart-AzVM -ResourceGroupName „ResourceGroup11” -Name „VirtualMachine07”

Remove-AzVM -ResourceGroupName „ResourceGroup11” -Name „VirtualMachine07”