среда, 27 января 2016 г.

Function for view directory/es access rights
Функция возвращает хэш в котором ключ - имя директории, значение - массив AccessRights

function get-diraccess
{
 param(
  [string]$path, 
  [switch] $recurse,
  [switch] $verbose
  )
if($recurse){
 $dirs=get-childitem $path -Recurse | ?{ $_.PSIsContainer }}
else{$dirs=get-childitem $path | ?{ $_.PSIsContainer }}

if(!$dirs){return}
$result=@{}
foreach($dir in $dirs)
 {
  $result.add($dir.fullname,@($dir.getAccessControl().Access))
 }

 if($verbose)
 {
  foreach($i in $result.keys)
   {$msg+=$i+"`n";
   foreach($j in $result[$i]){
   $msg+="`t"+($j.IdentityReference)+" - "+($j.filesystemrights)+"`n"}
   }
   Write-Host $msg
 }

 return $result
}

С возвращенным хэшем удобно работать используя Enumerator поша


$a=get-diraccess -path "c:\temp\" -verbose
$enum=$a.keys.getenumerator()
$enum.movenext()
$enum.key
$enum.value

четверг, 14 января 2016 г.

Узнать кто сейчас залогинен на удаленном компе (logged user)
(gwmi Win32_ComputerSystem -ErrorAction SilentlyContinue -ComputerName COMPNAME001).UserName

Старт службы
(get-wmiobject win32_service -filter "name='WinRM'" -computername COMPNAME001).StartService()

Если вылетает ошибка WinRM
$winrmservice=Get-WmiObject Win32_Service -ComputerName COMPNAME001 -filter "name='winrm'"
$winrmservice.startservice()

wbemtest  --- отличная утилита windows для WMI