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

时间:2019-04-14 05:35:32

标签: powershell active-directory domaincontroller

我正在使用我的机器通过Enter-PSSession在域控制器服务器上运行脚本。除我无法将脚本的输出保存在本地计算机上之外,所有其他方法均有效。

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

我想做的是保存运行Get-ADDomainController等命令的结果。

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

至此……

  

我无法将脚本的输出保存在本地计算机上。

…确定可以。只需在会话中创建一个日志文件,然后将该文件复制回工作站以进行查看,或者使用* -Transcript cmdlet即可自动创建一个可以复制的文件。成绩单将记录会话中发生的一切。

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 Remoting)。使用New-PSSession使用隐式PSRemoting会话,并将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

然后,您可以运行ADDS cmdlet,就像它们实际在您的计算机上,而结果在您的计算机上一样,或者如果您在Window 8或更高版本上,只需运行downloadinstall(Win 7- 8)/ enable the RSAT tools(Win 10)直接使用它们。

Remoting the Implicit Way

PowerShell Implicit Remoting: Never Install a Module Again

另外,请查看Invoke-Command,以在本地或远程运行命令。