Tag: Tips

  • How to stop (terminate) processes on a remote server using PowerShell and CIM / WMI?

    My friends asked me simple question: How to stop (terminate) processes on a remote server? Of course you can use: Invoke-Command -ComputerName RemoteServer or Invoke-Command -Session $existingSessionToRemoteServer But in this case my friends had established CIM session in their script. I wrote a few simple examples how to stop process using WMI and CIM and…

  • PowerShell Tip – How to install Windows Server roles and features and see parent / child relations as results?

    It is very simple… Install-WindowsFeature -Name AD-Domain-Services, DNS -IncludeManagementTools -OutVariable result -Verbose Get-WindowsFeature -Name $result.FeatureResult.Name Note: GUIs are not recommended for the server. Install only AD-Domain-Services, DNS and RSAT-AD-PowerShell on your Windows Server Core and RSAT on your management server. Display Name Name Install State ———— —- ————- [X] Active Directory Domain Services AD-Domain-Services Installed [X]…

  • PowerShell Tip – Convert Script Block to string or string to Script Block

    It is very simple. You just need to create a new instance of System.Management.Automation.ScriptBlock and use Create() method. PowerShell code $scriptBlock1 = { Get-ChildItem } Write-Verbose -Message $scriptBlock1.GetType().FullName -Verbose $scriptBlockString = $scriptBlock.ToString() Write-Verbose -Message $scriptBlockString.GetType().FullName -Verbose $scriptBlock2 = [ScriptBlock]::Create($scriptBlockString) Write-Verbose -Message $scriptBlock2.GetType().FullName -Verbose # Execute& $scriptBlock2 Output VERBOSE: System.Management.Automation.ScriptBlock VERBOSE: System.String VERBOSE: System.Management.Automation.ScriptBlock

  • How to copy values of variables into PowerShell Script Block and keep it intact (remember it)?

    There are situations where you need to create a script block, save it into variable and then execute it once or multiple times. Simply said, [ScriptBlock] is just an anonymous function so if you do this: $scriptBlock = { $someVar } & $scriptBlock Then you will get someVar variable from the current scope or from the…

  • PowerShell Tip – How to set permissions that applies to folder, subfolder and files without iCacls?

    It is very simple… $path = ‘C:\Temp’ New-Item -Path $path -ItemType directory $acl = Get-Acl -Path $path $permission = ‘Everyone’, ‘FullControl’, ‘ContainerInherit, ObjectInherit’, ‘None’, ‘Allow’ $rule = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList $permission $acl.SetAccessRule($rule) $acl | Set-Acl -Path $path