Přejít k obsahu webu
23.2.2019 / kaldy123

Výpis disků – ConvertTo-Html …

Příkaz:

Get-Volume|Select-Object DriveLetter,`
@{n='Total GB';e={'{0,0:n2}' -f($_.Size/1GB)}},`
@{n='Remains GB';e={'{0,0:n2}' -f($_.SizeRemaining/1GB)}},DriveType|`
Sort driveletter| ConvertTo-Html -Head `
"<title>Vypisy disku</title><style>`
table {border: #00ff00 3px ridge; border-collapse:collapse} `
th {background-color:#C0FFC0;padding:3px} `
td {border:#00ff00 1px solid; text-align:center}</style>" `
-Body '<h1>Vypisy disku</h1>' |`
Out-File c:\getvolume.html

Vytvoří:

Poznámky:

  1. Chce to PS 5.0 – na W7 bez dalších úprav systému to nepoběží….
  2. Přímo na C-čko bez privilegíí (run as administrator) to neuložíte. Tak třeba n C:\X\….
  3. Ten styl by selbstverstandlich šel i přes externí css soubor …

Klíčová slova: powershell, formátování, ConvertTo-Html, Out-File

===

Reklamy
22.2.2019 / kaldy123

Něco z MOC 10961

**********************
Windows PowerShell transcript start
Start time: 20190222214004
Configuration Name: 
Machine: . (Microsoft Windows NT 10.0.17134.0)
Host Application: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
Process ID: 14696
PSVersion: 5.1.17134.590
PSEdition: Desktop
PSCompatibleVersions: 1.0, 2.0, 3.0, 4.0, 5.0, 5.1.17134.590
BuildVersion: 10.0.17134.590
CLRVersion: 4.0.30319.42000
WSManStackVersion: 3.0
PSRemotingProtocolVersion: 2.3
SerializationVersion: 1.1.0.1
**********************
Transcript started, output file is c:\transcript4.txt
PS C:\WINDOWS\system32> Invoke-Command -ComputerName hvHost `
 -ScriptBlock {Get-Vm|? state -eq running|`
 ft name,cpuusage,`
 @{n='memoryassigned';e={'{0,10:n2}' -f($_.memoryassigned/1GB)}},`
 @{n='days';e={'{0,3}' -f($_.uptime.days)}},`
 @{n='hours';e={"{0,0:hh}:{0,0:mm}" -f($_.uptime)}}}

Name       CPUUsage memoryassigned days hours
----       -------- -------------- ---- -----
BE20-BE           4       7,81       0  10:42
BE20-DC1          0       1,52       0  10:51
BE20-W2019        0       1,00       0  01:45
nanoQuorum        0       0,50      34  10:16
R420-W10          0       1,24       0  12:20
UBU-SRV2          0       1,28       7  10:57


PS C:\WINDOWS\system32> Invoke-Command -ComputerName comp `
 -ScriptBlock {Get-Volume|sort driveletter|`
 ft @{n='drive';e={'{0,3}'-f($_.driveletter)}},` 
 @{n='Size GB';e={'{0,7:n3}' -f($_.size/1GB)}},` 
 @{n='Remain GB';e={'{0,9:n3}' -f($_.SizeRemaining/1GB)}},`
 @{n='   type  ';e={'{0,7}' -f($_.drivetype)}}}

drive Size GB Remain GB    type
----- ------- --------- ---------
        0,536     0,160   Fixed
  C    44,176    29,184   Fixed
  D   839,813   115,741   Fixed
  E   488,281   461,619   Fixed
  F     0,000     0,000  CD-ROM
  H   465,759   465,526   Fixed


PS C:\WINDOWS\system32> Stop-Transcript
**********************
Windows PowerShell transcript end
End time: 20190222214225
**********************

klíčová slova: powershell , formátování , výpis VM , Výpis volumes

19.2.2019 / kaldy123

Visual Basic: File System File Object

The FSO File Object

The following uses some of the FSO File’s properties to display information about a file.

 

Private Sub displayFileInfo(ByVal fileName As String)
Dim fso As New FileSystemObject
Dim fileSpec As File
Dim strInfo As String
Set fileSpec = fso.GetFile(fileName)
strInfo = fileSpec.Name & vbCrLf
strInfo = strInfo & „Created: “
strInfo = strInfo & fileSpec.DateCreated & vbCrLf
strInfo = strInfo & „Last Accessed: “
strInfo = strInfo & fileSpec.DateLastAccessed & vbCrLf
strInfo = strInfo & „Last Modified: “
strInfo = strInfo & fileSpec.DateLastModified
MsgBox strInfo, vbInformation, „File Information“
Set fileSpec = Nothing
End Sub
10.1.2019 / kaldy123

Virtual machine move na w2016 core

Poznámka: Článek má obecnější platnost: Nastavení Firewallu pro File Sharing za pomocí Group Policy.

Přesun (move) virtuální mašiny na W2016 jsme si sice popsali minule, ale když jsem to zkusil na „core“ instalaci, akosi som něpochodil. Ta hláška „credential cannot be used“ mě mátla – delegace byla nastavena – tak co ještě chce?!

Došlo mi to za chvíli: credentials byly v pořádku, ale celkem na nic, pokud na firewallu nemáte povoleny porty pro sdílení. Byl jsem na mrtvici: server v instalaci core, GUI veškeré žádné, vymyslet porty nutné pro SMB a napsat cca 5 net-shell příkazů bylo doopravdy nad mé morálně volné vlastnosti.

Vhodné řešení (pro mne) bylo nastavení group policy. Fór je v tom, že politiky si napíšu v pohodlí GUI mých W10 přes RSAT. Tu eleganci vidím v tom, že si napíši malou politiku a budu ji používat pro všechny mašiny, kde sdílení potřebuji. GPO přiřadím na úrovni domény a provedu security filtering na „security global group“. Asi takto:

  1. Vytvoření security global group:
    Práce s AD Users and Computers by neměl být problém, zrouna tak naplnění skupiny (potřebujeme tam mít cílový server – virtuálního hostitele)
  2. Vytvoříme GPO (v Group Policy Management konzole a rovnou pravým tlačítkem na doménu):

    … pokračujeme OK
  3. a vytvořenou politiku zeditujeme (klik pravým na novou politiku):

    otevře se nám editor, v levém panelu rozvineme cestu dle obrázku:
    a v pravém panelu klikem pravého tlačítka v prázdné oblasti vyvoláme dialog „New Rule“, ve kterém nastavíme:
    Odsouhlasíme 2x NEXT a 1xFinish a měli bychom obdržet:
    Editor GPO můžeme nyní zavřít – a navrátíme se ke Group Policy Managementu.
  4. Zbývá nám poslední: nastavit Security Filtering, tj. politika se provede jen pro členy vybrané global security group:
    V levém panelu vybereme právě vytvořenou politiku (EnableFWFileSharing) a v pravém panelu tlačítkem ADD vyvoláme dialog, ve kerém zadáme jméno skupiny, kterou jsme vytvořili v bodě 1 (GroupEnableFWFileSharing) a odsouhlasíme OK.
    Myší označíme identitu Authenticated Users a tlačítkem REMOVE ji odstraníme. Odsouhlasíme několik Warning hlášek a měli bychom obdržet:
  5. Servery, které přesuneme do skupiny GroupEnableFWFileSharing, musíme restartovat, aby politika zabrala a nastavil se Firewall (GpUpdate nestačí!)

Poznámka k nastavení Firewalu pro povolení File Sharing:
Nastavení je ponecháno „na hrubo“ kvůli jednoduchosti.

  •  Ti pokročilejší mohou následně vymazat všechny pravidla (Rules), které se týkají profilu Private (popřípadě Public – objeví-li se). Pracujeme v doméně (používáme Group Policy).
  • Dále: pro účely uvedené v nadpisu (přesun VM), jsou zcela nepotřebná pravidla pro „Echo Request“ a „Spooler Service“ – a lze je tedy vyhodit. Pokud ale chete širší využití politiky – ponechte je.
17.12.2018 / kaldy123

Přihlášení k W10 v doméně pomocí Windows Hello

Bez nastavení v Group Policy to nejde – protože (zřejmě asi) jde o firemní politiku: zda Windows Hello nebo Windows Hello for Business (což je jiný kalibr, kde se řeší i připojení na Azure Active Directory, SSO, PIN recovery a podobné „lahůdky“ – do kterých adminům není moc radno kecat).

Pro adminy jednoduchá kuchařka pro Windows Hello (nikoliv for Business!):

Computer ->Administrative Templates -> System -> Logon -> Turn on convenience PIN sign-in : Enabled

V komentáři, který vám vypisuje GP editor se dočtete, že „is valid for“ W8, W8.1 a servery W2012 a W2012R2. No, já to dělal pro W10 (1803) a ty admx-y jsem vytahal z těch W10!

Protože Administrative Templates, doporučuji centrální úložiště (Policy Definitions na SYSVOL) a ty templates najdete na lokálu W10 na cestě C:\windows\Policy Definitions…

9.12.2018 / kaldy123

Vytvoření důvěryhodného certifikátu pro RDP

Ten podstatný trik jsem vybrowsil na
https://www.darkoperator.com/blog/2015/3/26/rdp-tls-certificate-deployment-using-gpo
https://www.derekseaman.com/2013/01/creating-custom-remote-desktop-services.html
https://www.derekseaman.com/2018/12/trusted-remote-desktop-services-ssl-certs-for-win10-2019.html

V čem tkví problém:
Při navázání spojení přes RDP si cílový počítač vytvoří selfsigned certifikát – se všemi důsledky. Pokud vytvoříte certifikát přes certifikační autoritu – obyčejný „computer“ certifikát nevyhovuje, a šablonu „certificate template“ pro Remote Desktop Connection – alespoň ve Windows (10, 2016) budete hledat marně. Nezbývá, než si ji vytvořit.
Článek předpokládá znalosti práce s Active Directory Certificate Services. Pro odvážné – nechte si někým nainstalovat „Enterprise CA“ – a zkuste si to „naklikat“ dle návodu…

Krok 1 – vytvoříme kopii Computer šablony.
Samozřejmě, jsme v konzoli enterprise certifikační autority, kde si přes Certificate Templates -> Management vyvoláme editor šablon:
a vytvoříme kopii „computer“ šablony:
Šablonu upravíme následně:

Pro novou šablonu autor výšeuvedeného pramene výslovně doporučuje stejné Template name i Template display name – nevím, nezkoušel jsem. Validity period a renewal period nastavte dle svých bezpečnostních zásad – pro účely článku nejsou podstatné.
Dále autor doporučuje ponechat kompatibilitu Windows XP/2003:

Krok 2 -vytvoření nové zásady aplikace
Hlavní fór při vytváření nové šablony je vytvoření „new application policy“ – a je to trochu alchymie, protože identifikátor objektu – Object indentifier – podle mne nejdůležitejší část procesu – je Pischweitzova konstanta, kterou autor vyhrabal bůhví kde.

Ještě jednou: Object identifier je: 1.3.6.1.4.1.311.54.1.2
Šablonu uložíme.

Krok 3 – šablonu vypublikujeme pro použití v rámci CA:

Krok 4 – pomocí Group Policy změníme implicitní způsob tvoření certifikátu (vytvoření selfsigned certifikátu nechceme!)

Computer Policy -> Administrative templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Security:


kde nastavíme Server Authentication Certificate Template:
a když jsem v tom, tak i Require use of specific security layer for …..
Politiku si naaplikujte na počítače dle svých bezpečnostních pravidel a zásad.

Závěr:
Po tomto nastavení jsem provedl jak na RDP host (hostiteli!!!) tak na RDP client gpupdate, vyzkoušel – a hláška o nedůvěryhodném serveru zůstává! Sice certifikát je správně vydaný CA, ale RDP jej identifikuje jako nedůvěryhodný!

Až na druhý den: Já byl zvyklý zadávat do RDP klienta pouze název serveru. A v certifikátu je FQDN…. Bože – to zabolí :-)))

(Ale dokud blbnu, jsem alespoň na živu.)