Как выполнить код PowerShell удаленно с моей рабочей станции ISE без установки и загрузки модуля? - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть один выделенный сервер с именем PRODAZAD01-VM, на котором выполняется синхронизация Azure Active Directory с Office 365.

[CmdletBinding()]
Param(
    [Parameter(position = 0, mandatory = $true)]
    [ValidateSet('Delta', 'Full')]
    [String]$Type,
    [string]$ComputerName = 'PRODAZAD01-VM'
)
Invoke-Command -ComputerName $ComputerName -ArgumentList $type -ScriptBlock {
    Param($Type)
    If ($Type -eq 'Full') {$Type = 'Initial'}
    Import-Module adsync
    Start-ADSyncSyncCycle -PolicyType $Type
}

Как мне выполнить PowerShell, чтобы принудительно синхронизировать его с моим PowerShell ISE на моем ноутбуке, не устанавливая модуль и не загружая его каждый раз?

1 Ответ

0 голосов
/ 08 ноября 2018

На что указывает Drew, это использование PowerShell Implicit Remoting на машине с этим командлетом, таким образом, эти командлеты передаются на рабочую станцию ​​для сеанса так же, как и с другими командлетами, скажем ADDS. Например -

См .: Как использовать командлеты AD * Обновление для OP *

[CmdletBinding()]

Param
(
    [Parameter(position = 0, mandatory = $true)]
    [ValidateSet('Delta', 'Initial')]
    [String]$Type,
    [string]$ComputerName = 'PRODAZAD01-VM',
    [string]$Creds = 'YourAdminCreds' #(Get-Credential -Credential 'YourAdminCreds')
)

$ADSession = New-PSSession -Authentication Kerberos -ComputerName $ComputerName 

Invoke-Command -Session $ADSession -ScriptBlock { 
    'ADSync','AzureADPreview','MSOnline' | 
    %{ Import-Module -Name $_ -Force } 
}

Import-PSSession -Session $ADSession
Get-Module -Name 'ADSync','AzureADPreview','MSOnline'

Connect-MsolService -Credential $Creds
Connect-AzureAD -Credential $Creds

If ($Type -eq 'Delta') { Start-ADSyncSyncCycle -PolicyType $Type }
Else { Start-ADSyncSyncCycle -PolicyType $Type }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...