Számítógépek és a hálózati kapcsolatok cmdletei

A rendszergazdák egyik gyakori tevékenysége a számítógépekkel, számítógép-fiókokkal kapcsolatos. Erre a PowerShell 2.0-ban már rendelkezésre állnak cmdletek.

A számítógép tartományba vagy munkacsoportba való léptetéséhez az Add-Computer  cmdletet használhatjuk. Munkacsoportba léptetése esetén:

PS C:\Users\Administrator> Add-Computer -WorkGroupName WG

WARNING: The changes will take effect after you restart the computer MEMBER.

Maga a parancs nem indítja újra a gépet, de figyelmeztet, hogy a változások csak újraindítás után jutnak érvényre. Újraindítani a Restart-Computer  cmdlettel lehet:

PS C:\Users\Administrator> Restart-Computer

Tartományba léptetéshez ugyancsak az Add-Computer használatos, de természetesen más paraméterezéssel:

PS C:\> Add-Computer -DomainName "r2.dom" -Credential r2\administrator -OUPath

"ou=managed users,dc=r2,dc=dom"

WARNING: The changes will take effect after you restart the computer MEMBER.

Látható, hogy megadható a szervezeti egység, ahol a tartományi számítógépfiók létrejön. Menet közben még a megadott rendszergazda fiók jelszavát is bekéri a parancs. Ha nem akarjuk a grafikus felületen interaktívan megadni a jelszót, akkor a hitelesítési adatokat külön objektumként létre kell hozni. Ehhez nézzük a tartományból kiléptetés példáját a remove-computer  cmdlet példáján:

PS C:\Users\Administrator> $cred = new-object -typename System.Management.Autom

ation.PSCredential -argumentlist "r2\administrator", ( Convertto-SecureString '

Pa$$w0rd' -force -asplaintext)

PS C:\Users\Administrator> Remove-Computer -Credential $cred

 

Confirm

After you leave the domain, you will need to know the password of the local

Administrator account to log onto this computer. Do you want to remove this

computer from the domain?

[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): y

WARNING: The changes will take effect after you restart the computer MEMBER.

A fenti példában látszik, hogy egy $cred változóba létrehozok egy System.Management.Automation.PSCredential objektumot, a konstruktor paramétereként megadom a felhasználó nevét és a jelszavát SecureString formátumban, amit a ConvertTo-SecureString cmdlet végez el.

Megjegyzés

A SecureString-et vissza is vissza lehet alakítani „sima” szöveggé a következő módon:

PS C:\> $pwd = ConvertTo-SecureString "kakukk1" -AsPlainText -Force

PS C:\> (New-Object System.Management.Automation.PSCredential('dummy',$pwd)).Ge

tNetworkCredential().password

kakukk1

Egy másik módszer a visszafordításra:

PS C:\> [Runtime.InteropServices.Marshal]::PtrToStringAuto( [Runtime.InteropSer

vices.Marshal]::SecureStringToBSTR( $pwd ))

kakukk1

Számítógépet leállítani a Stop-Computer  cmdlettel lehet:

[89] PS C:\> Stop-Computer -ComputerName member

Itt most ennek a parancsnak azt a változatát mutattam, amellyel távoli futtatást alkalmaztam. A fenti parancsok ilyen paraméterezéssel futtathatók távoli módon és akár háttérfolyamatként is.

Bár a főnevében nem számítógép, hanem kapcsolat, de azért mégis a számítógépekhez köthető leggyakrabban a Test-Connection  cmdlet, mely az ősi „ping” segédprogram PowerShelles megfelelője. Nézzük, mit tud:

[36] PS C:\> Test-Connection member

 

WARNING: 2 columns do not fit into the display and were removed.

 

Source        Destination     IPV4Address      IPV6Address

------        -----------     -----------      -----------

DC            member          192.168.1.11     {}

DC            member          192.168.1.11     {}

DC            member          192.168.1.11     {}

DC            member          192.168.1.11     {}

(Sajnos a könyv méretadottságai miatt 2 oszlop lemaradt: az átküldött bájtok száma és a válaszidő.) Eddig ez egy ping eredményére hasonlít. Miben tud ez többet? Például abban, hogy ha csak a kapcsolat meglétét akarjuk ellenőrizni, nincs szükségünk részletes statisztikára, akkor kérhetünk egy nagyon tömör visszatérési értéket is:

[38] PS C:\> Test-Connection member -Quiet

True

Ilyenkor csak egy True/False választ kapunk. De még ennél is többet tud ez! Egyrészt több gépet is meg lehet „pingelni” egyszerre:

[39] PS C:\> Test-Connection -ComputerName member, dc

 

WARNING: 2 columns do not fit into the display and were removed.

 

Source        Destination     IPV4Address      IPV6Address

------        -----------     -----------      -----------

DC            dc              192.168.1.10     fe80::f9d9:a919:495d:a8fb%11

DC            member          192.168.1.11     {}

DC            dc              192.168.1.10     fe80::f9d9:a919:495d:a8fb%11

DC            member          192.168.1.11     {}

DC            dc              192.168.1.10     fe80::f9d9:a919:495d:a8fb%11

DC            member          192.168.1.11     {}

DC            dc              192.168.1.10     fe80::f9d9:a919:495d:a8fb%11

DC            member          192.168.1.11     {}

Másrészt nem feltétlenül kell, hogy az a gép legyen a forrás, ahol épp ülünk, távoli gépről még távolabbi gépre is kezdeményezhetjük a pinget:

[48] PS C:\> Test-Connection -Source Member -ComputerName "192.168.1.200"

 

WARNING: 2 columns do not fit into the display and were removed.

 

Source        Destination     IPV4Address      IPV6Address

------        -----------     -----------      -----------

MEMBER        192.168.1.200   192.168.1.200    {}

MEMBER        192.168.1.200   192.168.1.200    {}

MEMBER        192.168.1.200   192.168.1.200    {}

MEMBER        192.168.1.200   192.168.1.200    {}

A fenti példában én a DC nevű gépen dolgozom, de a Member nevű gép kapcsolatát szeretném ellenőrizni a 192.168.1.200-as címen található eszközzel. Ebben az esetben a mélyen az én gépem felvette a kapcsolatot a Member gép WMI interfészével, és azt kérte meg a ping kiadására. Ilyen esetben szükséges lehet autentikáltatni magunkat ezzel a géppel, ha az éppen belépett felhasználó nem jogosult a WMI felület elérésére. Erre a –Credential paraméter megadása biztosít lehetőséget.

Még „szorosabb” kapcsolatot tesztel a Test-ComputerSecureChannel  cmdlet. Ezzel a tartományi gépek közti biztonságos, titkosított adatcsatorna meglétét és működőképességét lehet tesztelni:

[49] PS C:\> Test-ComputerSecureChannel -Server member

True

Ha esetleg ez a kapcsolat sérült lenne, akkor ezen cmdlet –repair kapcsolójával lehet megjavítani azt.

Még talán ebbe a fejezetbe sorolható a gépre telepített javítások listázását végző Get-HotFix  cmdlet:

[7] PS C:\> Get-HotFix | Sort-Object installedon -Descending

 

Source        Description      HotFixID      InstalledBy          InstalledOn

------        -----------      --------      -----------          -----------

TIBI-PC       Update           KB978637      NT AUTHORITY\SYSTEM  2010.02.2...

TIBI-PC       Update           KB977863      NT AUTHORITY\SYSTEM  2010.02.2...

TIBI-PC       Update           KB976662      NT AUTHORITY\SYSTEM  2010.02.2...

TIBI-PC       Update           KB979306      NT AUTHORITY\SYSTEM  2010.02.2...

TIBI-PC       Update           KB976264      NT AUTHORITY\SYSTEM  2010.02.2...

TIBI-PC       Security Update  KB978251      NT AUTHORITY\SYSTEM  2010.02.1...

Ezt távoli gépre is tudjuk futtatni.

Szintén ide tartozik a Reset-ComputerMachinePassword  cmdlet, mellyel a számítógép jelszavának módosítását lehet kezdeményezni. Ez a parancs csak helyi gépre működik.



Word To HTML Converter