Blah
Day 4
$Voice = New-Object -ComObject SAPI.SPVoice $Voice.Speak("blah") $voice.Rate = -10 $Voice.Speak("hello from powershell") $voice.Rate = 10 $Voice.Speak("hello from powershell")
Get-Module -ListAvailable import-module ActiveDirectory -verbose cd AD: cd DC=blah,DC=local New-PSDrive -Name BLAH -PSProvider ActiveDirectory -Root "DC=Blah,DC=Local" -Credential (get-credential) Get-ADUser -Filter { samaccountname -like "*admin*"} Get-ADUser -Filter { memberof -recursiveMatch $(grp.DistinguishedName) Get-ADObject -Filter { ServicePrincipalName -like "*"} -Properties ServicePrincipalName | select Name, ServicePrincipalName Get-ADUser Kevin | set-ADUser -Replace @{ physicalDeliveryOfficeName = "Boise" } $user = get-ADUser Kevin - Properties * $user.office = "Blah" Set-AdUser -Instance $User
Active Directory Explorer sysinternals
ACLs
gci $HOME -Recurse | ? { ($_ | get-acl).owner -eq "$env:UserDomain\$env:Username"}
$acl = gci C:\config.sys | Get-Acl $acl | fl * $acl.AddAccessRule # returns an error of what you need $ace=New-Object system.security.accesscontrol.FileSystemAccessRule "Domain\User","FullControl","Allow" $acl.AddAccessRule($ace) Set-Acl -Path C:\config.sys -AclObject $acl
XML
Get-Content blah.xml $xml=[xml] (get-content blah.xml) $xml | gm $xml. get-command *xml* -CommandType cmdlet
select-xml -Xml $xml -XPath "//site" select-xml -Xml $xml -XPath "//site" |% { $_.Node} select-xml -Xml $xml -XPath "//site" | Select-Object -ExpandProperty Node
Type Adaptation
Module 3 page 235
Get-Process explorer | Get-Member -View Extended Get-Process explorer | Get-Member -View Base Get-Process explorer | Get-Member -View Adapted Get-Process explorer | Get-Member -View Adapted,Extended get-help Get-Member -Parameter view (Get-Process explorer).psobject $Process = Get-Process explorer $Process.psbase $Process.psobject $Process.psextended $Process | Add-Member -MemberType ScriptProperty -Name CurrentTime -Value { Get-Date } $Process.CurrentTime $Process.CurrentTime $Process | Add-Member -MemberType ScriptMethod -Name GetCurrentTime -Value { Get-Date } $Process.GetCurrentTime()
types.ps1xml c:\Windows\System32\WindowsPowerShell\v1.0\types.ps1xml
<Type>
<Name>System.Management.Automation.PSDriveInfo</Name>
<Members>
<ScriptProperty>
<Name>Used</Name>
<GetScriptBlock>
## Ensure that this is a FileSystem drive
if($this.Provider.ImplementingType -eq
[Microsoft.PowerShell.Commands.FileSystemProvider])
{
$driveRoot = ([System.IO.DirectoryInfo] $this.Root).Name.Replace('\','')
$drive = Get-WmiObject Win32_LogicalDisk -Filter "DeviceId='$driveRoot'"
$drive.Size - $drive.FreeSpace
}
</GetScriptBlock>
</ScriptProperty>
<ScriptProperty>
<Name>Free</Name>
<GetScriptBlock>
## Ensure that this is a FileSystem drive
if($this.Provider.ImplementingType -eq
[Microsoft.PowerShell.Commands.FileSystemProvider])
{
$driveRoot = ([System.IO.DirectoryInfo] $this.Root).Root.Name.Replace('\','')
$drive = Get-WmiObject Win32_LogicalDisk -Filter "DeviceId='$driveRoot'"
$drive.FreeSpace
}
</GetScriptBlock>
</ScriptProperty>
</Members>
</Type>
Get-PSDrive | gm Update-TypeData .\NewTypeDat.ps1xml Module 3 Exercise 2
Heading foo
ddd
PS Code Here
$To = "Kevin Curran <kcurran@blah.com>"
|
|