I was trying to automate the run of a PowerShell script that used the ActiveDirectory module to access the Get-ADUsers commandlet in order to get a list of all users for reporting purposes. However, in attempting to automate the run of this script, I realized that I need to enable the Microsoft Remote Server Administration Tools (RSAT) on the server where the script is run.

I am not able to get approval to enable RSAT for security reasons.

I was looking into instead setting up a command line script to be run using the Command line utility Comma Separated Value Data Exchange (CSVDE), of which I have never used before.

Are there any differences in the data that is pulled when using one method or the other? Such as a variation in the columns?


CSVDE has no relationship to PowerShell. It has been around well before PowerShell and is a completely stand alone executable. Can you use external executables in PowerShell scripts, sure, but each have their particulars unrelated to PowerShell.

You do not need to install or even enable RSAT on yours or any system to use the AD cmdlets.

You just need to be able to establish a remoting session to a server that has it (a domain controller or backup domain controller or why server / workstation that has RSAT installed). There are a few ways to use AD cmdlets without installing / enabling RSAT tools on a system.

This is fully documented in the built-in help files and on the web... It's call PowerShell Remoting. To use it, it must be allowed on the server that has the cmdlets enabled in most remoting scenarios, you must be a local admin on a remote host.


Describes how to run remote commands in PowerShell.


You can run remote commands on a single computer or on multiple computers by using a temporary or persistent connection. You can also start an interactive session with a single remote computer.

This topic provides a series of examples to show you how to run different types of remote command. After you try these basic commands, read the Help topics that describe each cmdlet that is used in these commands. The topics provide the details and explain how you can modify the commands to meet your needs.

Note: To use PowerShell remoting, the local and remote computers must be configured for remoting. For more information, see about_Remote_Requirements.

Enter-PSSession # This is called using explicit PowerShell remoting, used for normal interactive stuff

New-PSSession # This is called using implicit PowerShell remoting used in scripts and normal interactive stuff

see the examples from the help files.

# get function / cmdlet details
(Get-Command -Name Enter-PSSession).Parameters
Get-help -Name Enter-PSSession -Full
Get-help -Name Enter-PSSession -Online
Get-help -Name Enter-PSSession -Examples

(Get-Command -Name New-PSSession).Parameters
Get-help -Name New-PSSession -Full
Get-help -Name New-PSSession -Online
Get-help -Name New-PSSession -Examples

Use PowerShell Active Directory Cmdlets Without Installing Any Software

The third way is using ADSI directly

Active Directory PowerShell with ADSI

Or using ADSI search namespace

Use the PowerShell adsiSearcher Type Accelerator to Search Active Directory

#user properties
$san = 'user'
($getad = (([adsisearcher]"(&(objectCategory=User)(samaccountname=$san))").findall()).properties)

#Computer properties
$pc = 'computername'
($getad = (([adsisearcher]"(&(objectCategory=Computer)(name=$pc))").findall()).properties)
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.