Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 从脚本中的临时文件中删除动态文本_Powershell - Fatal编程技术网

Powershell 从脚本中的临时文件中删除动态文本

Powershell 从脚本中的临时文件中删除动态文本,powershell,Powershell,好吧,我知道这将是基本的,但我似乎无法理解。我试图建立一个工具,使我们能够获得完整的广告组名称的用户。目前的问题是,我们的广告组名称很长,因此网络用户MrSmith/domain最终会截断完整的广告组名称。我尝试使用一个gpresult-user MrSmith/r,但由于某种原因,它并没有返回所有的广告组 所以我决定创建一些新的东西,以后还会有其他的应用程序。我想先做一个net group/domain来拉取DC中的所有广告组。第二步,为域中的每个广告组运行net group$ADGroup/

好吧,我知道这将是基本的,但我似乎无法理解。我试图建立一个工具,使我们能够获得完整的广告组名称的用户。目前的问题是,我们的广告组名称很长,因此
网络用户MrSmith/domain
最终会截断完整的广告组名称。我尝试使用一个
gpresult-user MrSmith/r
,但由于某种原因,它并没有返回所有的广告组

所以我决定创建一些新的东西,以后还会有其他的应用程序。我想先做一个
net group/domain
来拉取DC中的所有广告组。第二步,为域中的每个广告组运行
net group$ADGroup/domain
,并使用该输出搜索指定的用户ID,并创建一个新输出,显示用户ID所属的每个广告组的全名。我将把它放在一个下拉式GUI中,以便将来添加一些功能

现在我已经完成了第一步的大部分工作,但显然我遇到了一个问题。当我执行
网络组/域
时,我得到的输出如下

The request will be processed at a domain controller for domain MyComapny.com.


Group Accounts for \\Server.MyComapny.com

-------------------------------------------------------------------------------
*AD_Group_1
*AD_Group_2
*AD_Group_3
*AD_Group_4
.....
我将其添加到一个temp.txt文件中以供使用

我遇到的问题是,它没有对从下拉列表中选择的广告组执行
net group$Choice/domain
,我不知道为什么

任何建议都是欢迎的,我知道我在这方面不是最好的,所以我的格式和风格可能不是标准的

Clear-Variable DropDownList

$RawADGroups = Net Group /domain >> 'C:\script_out\RawADList1.txt'

(get-content -path 'C:\script_out\RawADList1.txt') | ForEach-Object {$_ -replace '\*',''} >> 'C:\script_out\RawADList2.txt'

[string[]]$DropDownList = Get-Content -Path 'C:\script_out\RawADList2.txt'


Remove-Item 'C:\script_out\RawADList1.txt'
Remove-Item 'C:\script_out\RawADList2.txt'

function Return-DropDown {
    $Choice = $DropDown.SelectedItem.ToString()
    if ($Choice)
        {net group $Choice /domain
        }

}

[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
[System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")

$Form = New-Object System.Windows.Forms.Form
$Form.width = 340
$Form.height = 150
$Form.Text = "ADGroup"

$DropDown = new-object System.Windows.Forms.ComboBox
$DropDown.Location = new-object System.Drawing.Size(10,10)
$DropDown.Size = new-object System.Drawing.Size(300,30)

ForEach ($Line in $DropDownList) {
    $DropDown.Items.Add($Line)
}

$Form.Controls.Add($DropDown)

$DropDownLabel = new-object System.Windows.Forms.Label
$DropDownLabel.Location = new-object System.Drawing.Size(10,10)
$DropDownLabel.size = new-object System.Drawing.Size(200,20)
$Form.Controls.Add($DropDownLabel)

$Button = new-object System.Windows.Forms.Button
$Button.Location = new-object System.Drawing.Size(100,50)
$Button.Size = new-object System.Drawing.Size(100,20)
$Button.Text = "Pick One"
$Button.Add_Click({Return-DropDown})
$form.Controls.Add($Button)

$Form.Add_Shown({$Form.Activate()})
$Form.ShowDialog()

当我点击“选择一个”按钮时,什么都没有发生,它没有反映任何东西。

我明白了这一点,我认为这很简单,只是忘记了让命令对输出执行任何操作。希望这能帮助其他人

Clear-Variable DropDownList

$RawADGroups = Net Group /domain >> 'C:\script_out\RawADList1.txt'

(get-content -path 'C:\script_out\RawADList1.txt') | ForEach-Object {$_ -replace '\*',''} >> 'C:\script_out\RawADList2.txt'

[string[]]$DropDownList = Get-Content -Path 'C:\script_out\RawADList2.txt'


Remove-Item 'C:\script_out\RawADList1.txt'
Remove-Item 'C:\script_out\RawADList2.txt'

function Return-DropDown {
    $Choice = $DropDown.SelectedItem.ToString()
    if ($Choice)
        {
        net group $Choice /domain >> C:\script_out\output.txt
        }

}

[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
[System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")

$Form = New-Object System.Windows.Forms.Form
$Form.width = 340
$Form.height = 150
$Form.Text = "ADGroup"

$DropDown = new-object System.Windows.Forms.ComboBox
$DropDown.Location = new-object System.Drawing.Size(10,10)
$DropDown.Size = new-object System.Drawing.Size(300,30)

ForEach ($Line in $DropDownList) {
    $DropDown.Items.Add($Line)
}

$Form.Controls.Add($DropDown)

$DropDownLabel = new-object System.Windows.Forms.Label
$DropDownLabel.Location = new-object System.Drawing.Size(10,10)
$DropDownLabel.size = new-object System.Drawing.Size(200,20)
$Form.Controls.Add($DropDownLabel)

$Button = new-object System.Windows.Forms.Button
$Button.Location = new-object System.Drawing.Size(100,50)
$Button.Size = new-object System.Drawing.Size(100,20)
$Button.Text = "Pick One"
$Button.Add_Click({Return-DropDown})
$form.Controls.Add($Button)

$Form.Add_Shown({$Form.Activate()})
$Form.ShowDialog()

我发现了这一点,正如我认为的那样,很简单,我只是忘记了让命令对输出执行任何操作。希望这能帮助其他人

Clear-Variable DropDownList

$RawADGroups = Net Group /domain >> 'C:\script_out\RawADList1.txt'

(get-content -path 'C:\script_out\RawADList1.txt') | ForEach-Object {$_ -replace '\*',''} >> 'C:\script_out\RawADList2.txt'

[string[]]$DropDownList = Get-Content -Path 'C:\script_out\RawADList2.txt'


Remove-Item 'C:\script_out\RawADList1.txt'
Remove-Item 'C:\script_out\RawADList2.txt'

function Return-DropDown {
    $Choice = $DropDown.SelectedItem.ToString()
    if ($Choice)
        {
        net group $Choice /domain >> C:\script_out\output.txt
        }

}

[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
[System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")

$Form = New-Object System.Windows.Forms.Form
$Form.width = 340
$Form.height = 150
$Form.Text = "ADGroup"

$DropDown = new-object System.Windows.Forms.ComboBox
$DropDown.Location = new-object System.Drawing.Size(10,10)
$DropDown.Size = new-object System.Drawing.Size(300,30)

ForEach ($Line in $DropDownList) {
    $DropDown.Items.Add($Line)
}

$Form.Controls.Add($DropDown)

$DropDownLabel = new-object System.Windows.Forms.Label
$DropDownLabel.Location = new-object System.Drawing.Size(10,10)
$DropDownLabel.size = new-object System.Drawing.Size(200,20)
$Form.Controls.Add($DropDownLabel)

$Button = new-object System.Windows.Forms.Button
$Button.Location = new-object System.Drawing.Size(100,50)
$Button.Size = new-object System.Drawing.Size(100,20)
$Button.Text = "Pick One"
$Button.Add_Click({Return-DropDown})
$form.Controls.Add($Button)

$Form.Add_Shown({$Form.Activate()})
$Form.ShowDialog()

如果您试图获取广告用户所属的所有组,则可以执行以下操作:
get ADUser userName-Properties Memberof
。如果您需要
名称
而不是
区分名称
,那么您必须使用DNs并执行
Get-ADGroup
我们不能使用
Get-AD*
cmdlet,因为它们不在基本包中,我们不允许在系统上安装mods。
$RawADGroups.Count
的值是多少您是否尝试执行
修剪
?提示:我相信您会发现它是0,如果是这样,那么关于填充
$RawADGroups
的部分没有按预期工作,这就是我们现在需要查看的地方。我已经了解了这一部分,现在的问题是让它执行
net group$Choice/domain
。如果您试图获取广告用户所属的所有组,您可以执行以下操作:
get ADUser userName-Properties Memberof
。如果您需要
名称
而不是
区分名称
,那么您必须使用DNs并执行
Get-ADGroup
我们不能使用
Get-AD*
cmdlet,因为它们不在基本包中,我们不允许在系统上安装mods。
$RawADGroups.Count
的值是多少您是否尝试执行
修剪
?提示:我相信你会发现它是0,如果是这样的话,填充
$RawADGroups
的部分没有按预期工作,这就是我们现在需要查看的地方。我已经找到了这一部分,让它执行
净组$Choice/domain
现在的问题。