= Windows/PowerShell Notes = * [[Windows/PowerShell/AddCsvEmailToAdGroup]] * Load context {{{ foreach($server in (get-content 'C:\Downloads\pilot_dev_servers.txt')){Get-ADComputer -Identity $server | select -ExpandProperty DistinguishedName} }}} == Missing powershell commands == * e.g. get-content missing, search https://docs.microsoft.com/en-us/powershell/module/Microsoft.PowerShell.Management/Get-Content?view=powershell-7 * its in {{{ Import-Module Microsoft.PowerShell.Management }}} * Get info on a machine by id {{{ #Powershell > import-module activedirectory Get-ADComputer -Identity "abcd" | select -ExpandProperty DistinguishedName }}} * test tcp connectivity to port {{{ PS C:\Users\Administrator> tnc 10.233.1.47 -port 443 ComputerName : 10.23.1.47 RemoteAddress : 10.23.1.47 RemotePort : 443 InterfaceAlias : Ethernet 2 SourceAddress : 10.23.8.186 TcpTestSucceeded : True }}} * Err {{{ > Get-ADComputer -Identity "abcd" | select -ExpandProperty DistinguishedName Get-ADComputer : The term 'Get-ADComputer' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. At line:1 char:1 }}} * Reason missing admin module {{{ get-module -listavailable }}} * Fix * http://blog.technotesdesk.com/active-directory-module-and-cmdlet-missing-upon-patching * RSAT tool https://www.microsoft.com/en-us/download/details.aspx?id=45520 * After install still got import error {{{ > import-module activedirectory WARNING: Error initializing default drive: 'Unable to find a default server with Active Directory Web Services running.'. }}} = PowerShell view user certificates = * {{{ > Get-ChildItem -Path "Cert:\CurrentUser\My" PSParentPath: Microsoft.PowerShell.Security\Certificate::CurrentUser\My Thumbprint Subject ---------- ------- ... }}} = PowerShell windows update on remote computer = * Have to do it through a job {{{ ServerData = "" invoke-WUJob -ComputerName $ServerData.Value -Script { Import-Module PSWindowsUpdate ; Install-WindowsUpdate -AcceptAll -SendReport -IgnoreReboot -PSWUSettings @{From='xy';Port=25;SmtpServer='xy';To='xy'} | Out-File C:\install\PSWindowsUpdateLog.txt -Append} -Confirm:$false -verbose -RunNow }}} == PowerShell add admin user == {{{ net user mylocaladmin p@ssw0rd! /add /expires:never net localgroup administrators mylocaladmin /add }}} == PowerShell unlock user == {{{ Set-LocalUser -name '' -PasswordNeverExpires $true }}} == PowerShell reset user password e.g. Administrator == {{{ net user USERNAME NEWPASS }}} == PowerShell update host file with dns entry == {{{ Add-Content -Path $env:windir\System32\drivers\etc\hosts -Value "`n127.0.0.1`tlocalhost" -Force # }}} * Scripts to manipulate host files https://github.com/TomChantler/EditHosts