将 Active Directory 配置设置保存到文件

Saving Active Directory Configuration settings to a file

我正在使用我的机器 运行 使用 Enter-PSSession 的域控制器服务器上的脚本。一切正常,除了我无法将脚本的输出保存在本地计算机上。

我想以 csv 格式将脚本的输出作为对象保存在我的本地计算机中(不在域控制器服务器上)。

我想做的是保存来自 运行ning 命令的结果,例如 Get-ADDomainController 等。

有人可以帮我解决这个问题吗?

至于这个……

I can't save the outputs from the script on my local machine.

…当然可以。只需创建一个日志文件作为 session 的一部分,然后将该文件复制回您的工作站以供查看,或者只需使用 *-Transcript cmdlet 即可自动创建一个您可以复制的文件。成绩单将记录sessions.

中发生的一切
Get-Command -Name '*transcript*' | ft -a

CommandType Name             Version Source                   
----------- ----             ------- ------                   
Cmdlet      Start-Transcript 3.0.0.0 Microsoft.PowerShell.Host
Cmdlet      Stop-Transcript  3.0.0.0 Microsoft.PowerShell.Host


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

或者,不要使用直接将您置于 DC 上的交互式 Enter-PSSession(显式 PowerShell 远程处理)。使用隐式 PSRemoting session,使用 New-PSSession 并将 AD cmdlet 代理到您的计算机以供使用。

$SessionAD = New-PSSession -ComputerName ''dc01.contoso.com
Invoke-Command $SessionAD -Command {Import-Module ActiveDirectory}
Import-PSSession $SessionAD -Module ActiveDirectory | Out-Null

$ADUSers = Get-ADuser -Filter *
$var = $ADUSers | Select-Object -Property Name, SamaccountName | Out-GridView -OutputMode Single 

$GroupsMember = Get-ADUser -Filter ('Name -eq "' + $var.Name + '"') -Property MemberOf |
                Select -ExpandProperty MemberOf |
                Get-ADGroup -Property MemberOf |
                Select Name

$GroupsMember
Get-PSSession | Remove-PSSession

然后您可以 运行 添加 cmdlet,就好像它们实际上在您的机器上并且结果在您的机器上一样,或者如果您使用的是 Window 8 或更高版本,则只需 download and install (Win 7 - 8) / enable the RSAT tools (Win 10) 直接使用它们。

Remoting the Implicit Way

PowerShell Implicit Remoting: Never Install a Module Again

此外,查看 Invoke-Command 本地或远程的 运行ning 命令。