将 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) 直接使用它们。
PowerShell Implicit Remoting: Never Install a Module Again
此外,查看 Invoke-Command 本地或远程的 运行ning 命令。
我正在使用我的机器 运行 使用 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) 直接使用它们。
PowerShell Implicit Remoting: Never Install a Module Again
此外,查看 Invoke-Command 本地或远程的 运行ning 命令。