我正在使用我的机器通过Enter-PSSession
在域控制器服务器上运行脚本。除我无法将脚本的输出保存在本地计算机上之外,所有其他方法均有效。
我想以csv格式(不在域控制器服务器上)将脚本的输出保存为本地计算机中的对象。
我想做的是保存运行Get-ADDomainController
等命令的结果。
有人可以帮我吗?
答案 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或更高版本上,只需运行download和install(Win 7- 8)/ enable the RSAT tools(Win 10)直接使用它们。
PowerShell Implicit Remoting: Never Install a Module Again
另外,请查看Invoke-Command,以在本地或远程运行命令。